{
  "info": {
    "_postman_id": "f5424c40-c7da-4b64-8a1f-6a5450db2de2",
    "name": "agorum core REST API - basic services",
    "description": "The basic services of the classic agorum core REST API under `/api/rest`.\n\nFor most integrations the **agorum core High-level API** (`/api/rest/custom/...`) is the recommended entry point; it has a collection of its own. Use the services in this collection for what the High-level API does not offer, for example the metaDb, users and groups, listing ACLs, notes, mails, data handlers or the check-out/check-in cycle.\n\n## Base URL\n\nSet the collection variable `url` to the server, for example `https://my-server.example.com`. Every request is built as `{{url}}/api/rest/...`.\n\n## JSON instead of XML\n\nThe API answers in **XML** by default. This collection therefore sends `Accept: application/json` on every request. Appending `.json` to the path - `/api/rest/object.json` - has the same effect.\n\n## Authentication\n\nThree ways work:\n\n1. **HTTP Basic** - the default of this collection. Fill the collection variables `username` and `password`. Every request authenticates on its own.\n2. **Session** - `POST /session` returns a `sessionId` that is passed along as a parameter. The requests in the *session* folder store it in the collection variable `sessionId`; all other requests carry a disabled `sessionId` parameter you can switch on.\n3. **Bearer** - a JWT in the `Authorization` header. Switch the authorization type of the collection to *Bearer Token* and enter the token there. A token for a user is created with the JWT generator in the agorum core administration (see the agorum core documentation, topic *JWT-Generator*).\n\n**Transactions only work with the session flow.** A transaction belongs to a server session, and Basic auth opens a fresh one per request, so a transaction started in one request is already gone in the next.\n\n## How the services are addressed\n\nMost services share a handful of endpoints and dispatch on a parameter instead of on the path:\n\n- reading: `GET /object` with `provider=...`, or `GET /object/{id}` with `handler=...`\n- creating: `POST /object` with `handler=...`\n- updating: `PUT /object/{id}` with `updatehandler=...`\n- deleting: `DELETE /object/{id}` with `deletehandler=...`\n\nRequests are named after that dispatch value, for example *object (search)* for `GET /object?provider=search`.\n\nParameters typed as a model - `data`, `parameters`, `sort`, `filter` - are sent as JSON inside a single form field or query parameter.\n\n## Object ids\n\nWherever an id is expected these forms are accepted: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`.\n\nPostman passes **path variables** through unchanged, so an id that contains `/` or `://` has to be entered URL encoded there: `user%3A%2F%2Froi`, `%2Fagorum%2Froi%2FFiles`. Numeric ids need no encoding, and in query parameters Postman encodes on its own.\n\n## Response envelope\n\nEvery response carries `success`, `errorClass`, `errorCode`, `errorKey` and `message`. Reading services add `total`, `data` and `meta`, single-object services just `data`.\n\n| errorClass | errorCode | meaning |\n|---|---|---|\n| 1 | 1 | authentication needed |\n| 1 | 2 | access denied (errorKey 1: quota reached) |\n| 2 | 1 | object not found |\n| 2 | 2 | object has the wrong type |\n| 2 | 3 | parameter missing |\n| 2 | 4 | invalid parameter |\n| 2 | 5 | conflict |\n| 2 | 6 | timeout |\n| 3 | 1 | internal server error |\n| 3 | 2 | not implemented |\n| 3 | 3 | unknown error |\n| 3 | 4 | bad gateway |\n| 3 | 5 | gateway timeout |\n\n## Things to know\n\nThe affected requests carry the details in their own description.\n\n- `object (search, cached)` needs `cacheid` in lower case plus a mandatory `duration`.\n- `object/preview/{ticket}` expects the **object id** plus an image extension, not the `ticket` value that the preview service returns.\n- The restore services address a trash entry by its `uuid://...` only; the numeric id that the trashcan provider reports cannot be resolved.\n- The metaDb provider ignores `query`, and `parameters.mode=tree` returns nothing for an ordinary bundle.\n- The handler for reading an app user profile is `appuserprofile`, with a double \"p\". `apuserprofile` answers \"Handler not found\".\n- `object (relations)` loads the whole relation set before applying `start` and `limit`. A broad relation class on a heavily linked object can exhaust the server heap.\n\n## Reading the content of an object\n\n`object/download/{id}` and `object/embed/{id}` deliver the content of an object, optionally converted into another format. They are in the *object / content* folder, next to the upload services.\n",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "session",
      "item": [
        {
          "name": "session (login)",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "var body = pm.response.json();",
                  "if (body.sessionId) {",
                  "    pm.collectionVariables.set(\"sessionId\", body.sessionId);",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "username",
                  "value": "{{username}}",
                  "description": "required unless \"token\" is used",
                  "type": "default"
                },
                {
                  "key": "password",
                  "value": "{{password}}",
                  "description": "required unless \"token\" is used",
                  "type": "default"
                },
                {
                  "key": "token",
                  "value": "{{loginToken}}",
                  "description": "server token from POST /session/token, used instead of username/password",
                  "type": "default",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{url}}/api/rest/session",
              "host": ["{{url}}"],
              "path": ["api", "rest", "session"]
            },
            "description": "For the use of most of agorum api services, you need to be in a user context. Therefore you need to login to get access permission. You can login with your username and password. If your login is successful, a sessionId will be returned. This sessionId must be added as parameter value of the parameter \"sessionId\" of most api services for user context mapping of the services. Instead of using a user name and password as login credentials, a token can be used. A token can be added manually in metadb or created with the api service /session/token (POST). After an inactivity of ten minutes (no service calls) the system will terminate the session. An easy way of revalidating a session is to execute this service after a time period < 10 minutes. So the session will be refreshed.\n\nReturns a `sessionId`. Only needed for the session based flow - with the collection default (HTTP Basic) every request authenticates on its own. You do need it for transactions, because Basic auth opens a fresh server session per request and a transaction started in one request is then gone in the next.\n\nThe test script of this request stores the sessionId in the collection variable `sessionId`."
          },
          "response": []
        },
        {
          "name": "session (logout)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "required",
                  "type": "default"
                }
              ]
            },
            "url": {
              "raw": "{{url}}/api/rest/session",
              "host": ["{{url}}"],
              "path": ["api", "rest", "session"]
            },
            "description": "Terminate the session."
          },
          "response": []
        },
        {
          "name": "session/transaction (start)",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "var body = pm.response.json();",
                  "if (body.transactionId) {",
                  "    pm.collectionVariables.set(\"transactionId\", body.transactionId);",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "timeout",
                  "value": "600",
                  "description": "timeout in seconds, 0: no timeout, -1: server default (initially 3600)",
                  "type": "default"
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "required",
                  "type": "default"
                }
              ]
            },
            "url": {
              "raw": "{{url}}/api/rest/session/transaction",
              "host": ["{{url}}"],
              "path": ["api", "rest", "session", "transaction"]
            },
            "description": "Start a transaction. Returns a transactionId, that can be set as value of the \"transactionId\" parameter of api services. All api services with the same transactionId will be executed in calling order, when the transaction is committed through the api service /session/transaction/{id} (Delete). All api service calls, where the transactionId is set as parameter value, will be rolled back, when a transaction timed out.\n\nA transaction belongs to the server session, so this only works together with a `sessionId` from POST /session - not with HTTP Basic auth.\n\nThe test script stores the transactionId in the collection variable `transactionId`."
          },
          "response": []
        },
        {
          "name": "session/transaction/{id} (commit or rollback)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "rollback",
                  "value": "false",
                  "description": "required. true: roll back, false: commit",
                  "type": "default"
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "required",
                  "type": "default"
                }
              ]
            },
            "url": {
              "raw": "{{url}}/api/rest/session/transaction/:id",
              "host": ["{{url}}"],
              "path": ["api", "rest", "session", "transaction", ":id"],
              "variable": [
                {
                  "key": "id",
                  "value": "{{transactionId}}",
                  "description": "id of the transaction to close"
                }
              ]
            },
            "description": "Commit or rollback all api service calls, where this transaction id was set as value of the \"transactionId\" parameter. Api service calls will be rolled back, when parameter \"rollback\" is set to true or the transaction is timed out."
          },
          "response": []
        },
        {
          "name": "session/token (create)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "doAs",
                  "value": "roi",
                  "description": "name or id of the user the token acts as",
                  "type": "default"
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "type": "default",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "type": "default",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{url}}/api/rest/session/token",
              "host": ["{{url}}"],
              "path": ["api", "rest", "session", "token"]
            },
            "description": "An administrator can generate tokens. With the parameter \"doAs\" the administrator defines the user whose access permissions apply when the token is used as login credential.\n\nThe result is a login credential for POST /session (form field `token`), not a bearer token."
          },
          "response": []
        }
      ],
      "description": "Session and transaction handling. Needed only for the session based authentication flow and for transactions; all other folders work with the collection default (HTTP Basic)."
    },
    {
      "name": "object",
      "item": [
        {
          "name": "read",
          "item": [
            {
              "name": "object (search)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=search&query=*&properties=name&properties=id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "search",
                      "description": "required"
                    },
                    {
                      "key": "query",
                      "value": "*",
                      "description": "the search query"
                    },
                    {
                      "key": "properties",
                      "value": "name",
                      "description": "response property; repeat the parameter for more than one"
                    },
                    {
                      "key": "properties",
                      "value": "id"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"cache\":true,\"getmainobject\":false,\"accessibleonly\":false,\"noLookup\":false}",
                      "description": "JSON object, see SearchParameters",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Search for objects with the agorum core full text search engine. The search text is set in the parameter \"query\". Its syntax is described in the agorum core documentation on the search syntax."
              },
              "response": []
            },
            {
              "name": "object (search, cached)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=searchcached&query=*&parameters={\"cacheid\":\"my-cache-1\",\"duration\":60000}&properties=name",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "searchcached",
                      "description": "required"
                    },
                    {
                      "key": "query",
                      "value": "*",
                      "description": "required"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"cacheid\":\"my-cache-1\",\"duration\":60000}",
                      "description": "required: cacheid (lower case) and duration in ms"
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Search for objects with the agorum core full text search engine and cache the search. Cache a search inside RAM for a defined duration. Advantage: need to be searched only once, further parts of the result sets of this search returned faster in comparison to the normal search. The normal search must query the database for each request. The disadvantage is, you need more RAM for this search as for the normal search and the result set can become out of date.\n\n`parameters` must carry `cacheid` (all lower case - `cacheId` is ignored) **and** `duration` (in ms, mandatory). Without either of them the call fails with \"cacheid is not defined\" / \"duration is not defined\". `query` is mandatory as well."
              },
              "response": []
            },
            {
              "name": "object (folder items)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=folder&source=/agorum/roi/Files&properties=name&properties=id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "folder",
                      "description": "required"
                    },
                    {
                      "key": "source",
                      "value": "/agorum/roi/Files",
                      "description": "id of the folder. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    },
                    {
                      "key": "query",
                      "value": "",
                      "description": "name pattern of the item, or path + name pattern in mode \"autocomplete\"",
                      "disabled": true
                    },
                    {
                      "key": "parameters",
                      "value": "{\"mode\":\"flat\",\"deleted\":false}",
                      "description": "JSON object: mode is \"autocomplete\" or \"flat\"",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "properties",
                      "value": "id"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get items and folders of a defined folder. When the value of the key \"mode\" of the parameter \"parameters\" equals \"autocomplete\" the value of the parameter \"query\" must be a path to the folder started from the server root folder. The value after the folder path and the last backslash will be treated as the query. If the folder path is set only, all items and folders of the folder will be returned. If a value after the path and the last backslash is set, only items and folders starting with the same syntax pattern will be returned. When the value of the key \"mode\" equals \"flat\", then the folder must be defined in \"source\". In \"query\" you can define a syntax pattern of the to be returned items. No folders will be returned, instead the folders will be replaced by their items and these items will be returned. When none mode is defined, the items and folders of the in \"source\" defined folder will be returned."
              },
              "response": []
            },
            {
              "name": "object/tree/{source}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object/tree/:source?provider=folder&depth=2",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "tree", ":source"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "folder",
                      "description": "required"
                    },
                    {
                      "key": "query",
                      "value": "",
                      "description": "name pattern of the object",
                      "disabled": true
                    },
                    {
                      "key": "parameters",
                      "value": "{\"expand\":[\"123456\"]}",
                      "description": "JSON object: expand the tree down to these objects",
                      "disabled": true
                    },
                    {
                      "key": "depth",
                      "value": "2",
                      "description": "tree depth, default 2"
                    },
                    {
                      "key": "properties",
                      "value": "name",
                      "description": "response property; repeat for more than one",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "only inside a transaction",
                      "disabled": true
                    }
                  ],
                  "variable": [
                    {
                      "key": "source",
                      "value": "1002330",
                      "description": "id of the root object of the tree. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Get the in \"source\" defined folder as root node and child objects recursively as child nodes till a in \"depth\" defined tree depth. For each node you will get the node path, its children and if it is a leaf.\n\nPostman passes path variables through unchanged. An id that contains `/` or `://` therefore has to be entered URL encoded - `user://roi` becomes `user%3A%2F%2Froi`, `/agorum/roi/Files` becomes `%2Fagorum%2Froi%2FFiles`. A numeric object id needs no encoding. In query parameters Postman encodes on its own, so the plain form works there."
              },
              "response": []
            },
            {
              "name": "object/{id} (get object)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object/:id?properties=name&properties=classname",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", ":id"],
                  "query": [
                    {
                      "key": "handler",
                      "value": "",
                      "description": "the handler; empty for the default object handler",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "name",
                      "description": "response property; repeat the parameter for more than one"
                    },
                    {
                      "key": "properties",
                      "value": "classname"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "only inside a transaction",
                      "disabled": true
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "1002330",
                      "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Get properties of requested object.\n\nPostman passes path variables through unchanged. An id that contains `/` or `://` therefore has to be entered URL encoded - `user://roi` becomes `user%3A%2F%2Froi`, `/agorum/roi/Files` becomes `%2Fagorum%2Froi%2FFiles`. A numeric object id needs no encoding. In query parameters Postman encodes on its own, so the plain form works there."
              },
              "response": []
            },
            {
              "name": "object/{id} (get folder)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object/:id?handler=folder&properties=folderinfo&properties=name",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", ":id"],
                  "query": [
                    {
                      "key": "handler",
                      "value": "folder",
                      "description": "required"
                    },
                    {
                      "key": "properties",
                      "value": "folderinfo",
                      "description": "folderinfo returns foldercount, filecount, filesize and maxdepth"
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "only inside a transaction",
                      "disabled": true
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "1002330",
                      "description": "id of the folder. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Get information about a folder.\n\nPostman passes path variables through unchanged. An id that contains `/` or `://` therefore has to be entered URL encoded - `user://roi` becomes `user%3A%2F%2Froi`, `/agorum/roi/Files` becomes `%2Fagorum%2Froi%2FFiles`. A numeric object id needs no encoding. In query parameters Postman encodes on its own, so the plain form works there."
              },
              "response": []
            },
            {
              "name": "object (parent folders)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=parent&source=/agorum/roi/Files&properties=name&properties=id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "parent",
                      "description": "required"
                    },
                    {
                      "key": "source",
                      "value": "/agorum/roi/Files",
                      "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "properties",
                      "value": "id"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get the parent folders of a in \"source\" defined object."
              },
              "response": []
            },
            {
              "name": "object (history)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=history&source=1002330&properties=name&properties=versionnumber",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "history",
                      "description": "required"
                    },
                    {
                      "key": "source",
                      "value": "1002330",
                      "description": "required: id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    },
                    {
                      "key": "parameters",
                      "value": "{\"includecurrent\":true}",
                      "description": "JSON object: includecurrent also returns the current version",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "properties",
                      "value": "versionnumber"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get information about old versions of a in \"source\" defined object, when old versions of the object exists."
              },
              "response": []
            },
            {
              "name": "object (relations)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=relation&source=1002330&query=NoteRelationObject&properties=name",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "relation",
                      "description": "required"
                    },
                    {
                      "key": "source",
                      "value": "1002330",
                      "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    },
                    {
                      "key": "query",
                      "value": "NoteRelationObject",
                      "description": "required: name of the relation class"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"direction\":\"r\"}",
                      "description": "JSON object: direction \"r\" (default, rightward) or \"l\" (leftward)",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get all relation objects rightward or leftward of a in \"source\" defined object.\n\nName the relation class as narrowly as possible. The service loads the complete relation set of the object before it applies `start` and `limit`, so a broad class such as `RelationObject` on a heavily linked object can run the server out of heap - `limit` does not protect against that."
              },
              "response": []
            },
            {
              "name": "object (content hash)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=contenthash&source=MD5&query=the hash code&properties=name",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "contenthash",
                      "description": "required"
                    },
                    {
                      "key": "source",
                      "value": "MD5",
                      "description": "required: the hash code identifier"
                    },
                    {
                      "key": "query",
                      "value": "the hash code",
                      "description": "required: the hash code"
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get all objects that fit the given hash code and identifier This service returns GlobalObjects."
              },
              "response": []
            },
            {
              "name": "object (content hash queue)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=contenthashqueue&properties=name",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "contenthashqueue",
                      "description": "required"
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get all objects that are in the content hash queue, and are about to be hashed. This service returns GlobalObjects."
              },
              "response": []
            }
          ],
          "description": "Reading objects. GET /object dispatches on the `provider` query parameter, GET /object/{id} on the `handler` parameter."
        },
        {
          "name": "create, update, delete",
          "item": [
            {
              "name": "object (create folder)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "folder",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "data",
                      "value": "{\"name\":\"test-folder\",\"target\":\"/agorum/roi/Files\"}",
                      "contentType": "application/json",
                      "description": "required: FolderData as JSON",
                      "type": "default"
                    },
                    {
                      "key": "source",
                      "value": "",
                      "description": "id of the target folder; use only when \"target\" is not set inside \"data\". Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`.",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "id",
                      "description": "response property; repeat for more than one",
                      "type": "default"
                    },
                    {
                      "key": "properties",
                      "value": "name",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"]
                },
                "description": "Create a new folder. Returns the id of the successfully created folder by default."
              },
              "response": []
            },
            {
              "name": "object (create object)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "data",
                      "value": "{\"classname\":\"FileObject\",\"name\":\"test.txt\",\"target\":\"/agorum/roi/Files/test-folder\",\"createtarget\":false}",
                      "contentType": "application/json",
                      "description": "required: ObjectCreateData as JSON",
                      "type": "default"
                    },
                    {
                      "key": "properties",
                      "value": "id",
                      "type": "default"
                    },
                    {
                      "key": "properties",
                      "value": "name",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"]
                },
                "description": "Create an object. The target object must be a FolderObject or a subtype of it. When \"createtarget\" is set true, in \"target\" defined folder, that is not created till now, will be created, too. An object with the equal name of an existing object of the target folder can not be created."
              },
              "response": []
            },
            {
              "name": "object/{id} (update object)",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "updatehandler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "data",
                      "value": "{\"name\":\"renamed.txt\",\"description\":\"changed over REST\"}",
                      "contentType": "application/json",
                      "description": "required: properties to set, as JSON",
                      "type": "default"
                    },
                    {
                      "key": "properties",
                      "value": "name",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object",
                      "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Update an object."
              },
              "response": []
            },
            {
              "name": "object/{id} (delete object)",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "deletehandler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"trash\":true}",
                      "contentType": "application/json",
                      "description": "ObjectDeleteData as JSON: trash, wipe, parent, itemsonly, removefromallparents",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object to delete",
                      "description": "id of the object to delete. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Delete an object. When no parent object is set, sub items and linked sub items of the to be deleted object will be deleted, too. When a parent object is set, only sub items and references to subitems will be deleted, too. Moving an object to trash instead of deleting is only possible, when no other parameter than \"trash\" in \"parameters\" is set."
              },
              "response": []
            }
          ],
          "description": "Creating, changing and removing objects."
        },
        {
          "name": "content",
          "item": [
            {
              "name": "object/download/{id}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object/download/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "download", ":id"],
                  "query": [
                    {
                      "key": "rawmime",
                      "value": "true",
                      "description": "deliver as application/octet-stream instead of the real content type, default false",
                      "disabled": true
                    },
                    {
                      "key": "mimeType",
                      "value": "text/plain",
                      "description": "content type to declare in the response instead of the real one",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object",
                      "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Download the content of an object. The response carries `Content-Disposition: attachment`, so a browser offers it as a file.\n\nAn object without content - a folder, for example - is delivered as a zip of its items.\n\nA target format appended as a further path segment converts the content on the fly, for example `.../16472271/pdf` for a Word document. Which conversions are possible depends on the installed converters.\n\nThis service falls back to the guest session when no credentials are sent, so a publicly readable object can be fetched without logging in. It answers 403 rather than 401 in that case.\n\nPostman passes path variables through unchanged. An id that contains `/` or `://` therefore has to be entered URL encoded - `user://roi` becomes `user%3A%2F%2Froi`, `/agorum/roi/Files` becomes `%2Fagorum%2Froi%2FFiles`. A numeric object id needs no encoding. In query parameters Postman encodes on its own, so the plain form works there."
              },
              "response": []
            },
            {
              "name": "object/download/{id}/{format}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object/download/:id/:format",
                  "host": ["{{url}}"],
                  "path": [
                    "api",
                    "rest",
                    "object",
                    "download",
                    ":id",
                    ":format"
                  ],
                  "query": [
                    {
                      "key": "mimeType",
                      "value": "text/plain",
                      "description": "content type to declare in the response instead of the real one",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object",
                      "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    },
                    {
                      "key": "format",
                      "value": "pdf",
                      "description": "target format, e.g. pdf"
                    }
                  ]
                },
                "description": "Download the content of an object converted into another format.\n\nA target format appended as a further path segment converts the content on the fly, for example `.../16472271/pdf` for a Word document. Which conversions are possible depends on the installed converters.\n\nPostman passes path variables through unchanged. An id that contains `/` or `://` therefore has to be entered URL encoded - `user://roi` becomes `user%3A%2F%2Froi`, `/agorum/roi/Files` becomes `%2Fagorum%2Froi%2FFiles`. A numeric object id needs no encoding. In query parameters Postman encodes on its own, so the plain form works there."
              },
              "response": []
            },
            {
              "name": "object/download (several objects as zip)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object/download?ids=id of an object to include, repeatable&id=download.zip",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "download"],
                  "query": [
                    {
                      "key": "ids",
                      "value": "id of an object to include, repeatable",
                      "description": "id of an object to include, repeatable. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    },
                    {
                      "key": "ids",
                      "value": "",
                      "description": "id of a further object to include",
                      "disabled": true
                    },
                    {
                      "key": "id",
                      "value": "download.zip",
                      "description": "name of the resulting zip file. Without any \"ids\" this is read as the id of the single object to download"
                    },
                    {
                      "key": "rawmime",
                      "value": "true",
                      "description": "deliver as application/octet-stream instead of the real content type, default false",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    }
                  ]
                },
                "description": "Download more than one object as a single zip file. Repeat the `ids` parameter once per object; `id` names the resulting zip file.\n\nWith a single `ids` value the object is still zipped. To get the plain content of one object use object/download/{id} instead, or pass the id in `id` and leave `ids` out."
              },
              "response": []
            },
            {
              "name": "object/embed/{id}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object/embed/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "embed", ":id"],
                  "query": [
                    {
                      "key": "mimeType",
                      "value": "text/plain",
                      "description": "content type to declare in the response instead of the real one",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object",
                      "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Deliver the content of an object for display in place. Same content as object/download/{id}, but with `Content-Disposition: inline`, so a browser renders it instead of offering a download.\n\nA target format appended as a further path segment converts the content on the fly, for example `.../16472271/pdf` for a Word document. Which conversions are possible depends on the installed converters.\n\nUnlike download this service has no guest fallback: without credentials it answers 401.\n\nPostman passes path variables through unchanged. An id that contains `/` or `://` therefore has to be entered URL encoded - `user://roi` becomes `user%3A%2F%2Froi`, `/agorum/roi/Files` becomes `%2Fagorum%2Froi%2FFiles`. A numeric object id needs no encoding. In query parameters Postman encodes on its own, so the plain form works there."
              },
              "response": []
            },
            {
              "name": "object/embed/{id}/{format}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object/embed/:id/:format",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "embed", ":id", ":format"],
                  "query": [
                    {
                      "key": "mimeType",
                      "value": "text/plain",
                      "description": "content type to declare in the response instead of the real one",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object",
                      "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    },
                    {
                      "key": "format",
                      "value": "pdf",
                      "description": "target format, e.g. pdf"
                    }
                  ]
                },
                "description": "Deliver the content of an object converted into another format, for display in place.\n\nA target format appended as a further path segment converts the content on the fly, for example `.../16472271/pdf` for a Word document. Which conversions are possible depends on the installed converters.\n\nPostman passes path variables through unchanged. An id that contains `/` or `://` therefore has to be entered URL encoded - `user://roi` becomes `user%3A%2F%2Froi`, `/agorum/roi/Files` becomes `%2Fagorum%2Froi%2FFiles`. A numeric object id needs no encoding. In query parameters Postman encodes on its own, so the plain form works there."
              },
              "response": []
            },
            {
              "name": "object/upload (new file)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "body",
                      "description": "required: the file to upload",
                      "type": "file",
                      "src": []
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/upload?target=/agorum/roi/Files/test-folder&renameifrequired=true",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "upload"],
                  "query": [
                    {
                      "key": "target",
                      "value": "/agorum/roi/Files/test-folder",
                      "description": "required: target folder of the uploaded file"
                    },
                    {
                      "key": "renameifrequired",
                      "value": "true",
                      "description": "rename automatically when the name already exists, default false"
                    },
                    {
                      "key": "forceHistory",
                      "value": "true",
                      "description": "force a history entry while uploading",
                      "disabled": true
                    },
                    {
                      "key": "preventHistory",
                      "value": "true",
                      "description": "prevent a history entry while uploading",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "only inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Uploading a new file into a target folder. After a successful upload the file exists as a child object of the target folder. The file must be added as a value of the parameter \"body\". The data type of this parameter is \"multipart/form-data\" and the parameter type is form.\n\nThe file goes into the multipart form field `body`. Pick the file in the \"Body\" tab before sending. The response carries `id` and `uuid` of the new object at the top level, not inside `data`."
              },
              "response": []
            },
            {
              "name": "object/upload/{id} (new version)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "body",
                      "description": "required: the file to upload",
                      "type": "file",
                      "src": []
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/upload/:id?target=/agorum/roi/Files/test-folder",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "upload", ":id"],
                  "query": [
                    {
                      "key": "target",
                      "value": "/agorum/roi/Files/test-folder",
                      "description": "target folder"
                    },
                    {
                      "key": "renameifrequired",
                      "value": "true",
                      "description": "rename automatically when the name already exists, default false",
                      "disabled": true
                    },
                    {
                      "key": "forceHistory",
                      "value": "true",
                      "description": "force a history entry while uploading",
                      "disabled": true
                    },
                    {
                      "key": "preventHistory",
                      "value": "true",
                      "description": "prevent a history entry while uploading",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "only inside a transaction",
                      "disabled": true
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object that gets the new version",
                      "description": "id of the object that gets the new version. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Uploading a file and updating an existing object. When an id of an object is defined as value of the parameter \"id\", the uploaded file will be the newest version of this object. The file must be added as a value of the parameter \"body\". The data type of the parameter \"body\" is a multipart/form-data and the parameter type is form.\n\nThe file goes into the multipart form field `body`. Pick the file in the \"Body\" tab before sending."
              },
              "response": []
            },
            {
              "name": "object/copyContent/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "target",
                      "value": "id of the object that receives the content",
                      "description": "required: id of the object that receives the content. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`.",
                      "type": "default"
                    },
                    {
                      "key": "forceHistory",
                      "value": "true",
                      "description": "force a history object while copying",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "preventHistory",
                      "value": "true",
                      "description": "prevent a history object while copying",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/copyContent/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "copyContent", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the source object",
                      "description": "id of the source object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Copy content from a source object, whose id is set as value of the parameter \"id\", to another object, whose id is set as value of the parameter \"target\". FileObjects or objects implementing the ContentInterface interface have copyable content. You can use the forceHistory/preventHistory boolean parameters to control history creation."
              },
              "response": []
            }
          ],
          "description": "Reading and writing the content of an object."
        },
        {
          "name": "versions",
          "item": [
            {
              "name": "object/checkout/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/checkout/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "checkout", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object",
                      "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Check out the given object (a private working copy is created), it may not be checked out before\n\nThe response contains `privateWorkingCopyId` and `privateWorkingCopyUuid`."
              },
              "response": []
            },
            {
              "name": "object/checkin/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"checkinComment\":\"changed over REST\",\"majorVersion\":true}",
                      "contentType": "application/json",
                      "description": "CheckinModel as JSON: checkinComment, majorVersion, versionNumber",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/checkin/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "checkin", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object or of the private working copy",
                      "description": "id of the object or of the private working copy. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Check in the given object (or private working copy), it has to be checked out by this user, to check it in"
              },
              "response": []
            },
            {
              "name": "object/cancelCheckout/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/cancelCheckout/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "cancelCheckout", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object",
                      "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Cancel a checked out document (delete the private working copy)"
              },
              "response": []
            }
          ],
          "description": "The check-out/check-in cycle. Checking out creates a private working copy; checking in turns it into a new version."
        },
        {
          "name": "structure and relations",
          "item": [
            {
              "name": "object/move/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "target",
                      "value": "id of the target folder, repeatable",
                      "description": "required: id of the target folder, repeatable. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`.",
                      "type": "default"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"parent\":[\"/agorum/roi/Files\"],\"inheritAcl\":false,\"inheritScopeAcls\":false}",
                      "contentType": "application/json",
                      "description": "required: ObjectMoveParams as JSON. \"parent\" names the folders the object is moved out of",
                      "type": "default"
                    },
                    {
                      "key": "id",
                      "value": "",
                      "description": "id of a further object to move, repeatable",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/move/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "move", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object to move",
                      "description": "id of the object to move. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Move objects from parent folders to a in \"target\" defined folder. In addition to the path parameter \"id\" exists the form parameter \"id\". When more than one object should be moved to the target folder, each object must be defined as a value of one \"id\" parameter.\n\nRepeat the form parameter `target` for more than one target folder."
              },
              "response": []
            },
            {
              "name": "object/copy/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "target",
                      "value": "id of the target folder, repeatable",
                      "description": "required: id of the target folder, repeatable. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`.",
                      "type": "default"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"renameIfRequired\":true,\"linkLinks\":false,\"inheritAcl\":false,\"inheritScopeAcls\":false}",
                      "contentType": "application/json",
                      "description": "ObjectCopyParameters as JSON",
                      "type": "default"
                    },
                    {
                      "key": "id",
                      "value": "",
                      "description": "id of a further object to copy, repeatable",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/copy/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "copy", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object to copy",
                      "description": "id of the object to copy. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Copy one or more objects into \"target\" defined folders. Setting the id of an object in the url path is optional. Copying additional objects can be done through adding for each of the to be copied objects an additional form parameter \"id\" with the id of the object as parameter value. For each target folder an additional \"target\" parameter with the folder id as parameter value must be added."
              },
              "response": []
            },
            {
              "name": "object/link/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "target",
                      "value": "id of the folder to link into, repeatable",
                      "description": "id of the folder to link into, repeatable. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`.",
                      "type": "default"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"inheritAcl\":false}",
                      "contentType": "application/json",
                      "description": "LinkModel as JSON",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/link/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "link", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the object to link",
                      "description": "id of the object to link. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Link an object to one or more folders. Repeat the form parameter \"target\" once per folder. Setting the id of the object as path parameter is optional."
              },
              "response": []
            },
            {
              "name": "object/relate/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "data",
                      "value": "{\"relationclassname\":\"RelationObject\"}",
                      "contentType": "application/json",
                      "description": "required: RelateModel as JSON",
                      "type": "default"
                    },
                    {
                      "key": "targets",
                      "value": "id of the right hand object, repeatable",
                      "description": "id of the right hand object, repeatable. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`.",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/relate/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "relate", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the left hand object",
                      "description": "id of the left hand object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Create relations between an object, whose id is set as value of the parameter \"id\" and objects, whose ids are set as values of the parameters \"targets\". The defined object of the \"id\" parameter is the left object of the relation and the objects of the parameters \"targets\" are the right objects. The type of relation class must be specified in the \"data\" property. To relate more than one right hand object, repeat the parameter \"targets\" once per object.\n\nThe response contains `createdRelationIds` and `createdRelationUuids`."
              },
              "response": []
            },
            {
              "name": "object/unrelate/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "data",
                      "value": "{\"relationclassname\":\"RelationObject\"}",
                      "contentType": "application/json",
                      "description": "required: UnRelateModel as JSON",
                      "type": "default"
                    },
                    {
                      "key": "targets",
                      "value": "id of the right hand object, repeatable",
                      "description": "id of the right hand object, repeatable. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`.",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/unrelate/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "unrelate", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "id of the left hand object",
                      "description": "id of the left hand object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                    }
                  ]
                },
                "description": "Remove relations between an object, whose id is set as value of the parameter \"id\" and objects, whose ids are set as values of the parameters \"targets\". The defined object of the \"id\" parameter is the left object of the relation and the objects of the parameters \"targets\" are the right objects. The type of relation class must be specified in the \"data\" property. To remove the relations to more than one right hand object, repeat the parameter \"targets\" once per object."
              },
              "response": []
            }
          ],
          "description": "Moving, copying and linking objects and maintaining relations between them."
        },
        {
          "name": "trash and restore",
          "item": [
            {
              "name": "object (trash can)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=trashcan&properties=uuid&properties=name&properties=deletedate",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "trashcan",
                      "description": "required"
                    },
                    {
                      "key": "query",
                      "value": "",
                      "description": "optional name query, e.g. %.doc",
                      "disabled": true
                    },
                    {
                      "key": "parameters",
                      "value": "{\"deleteUser\":\"user://roi\",\"fromTime\":0,\"toTime\":0}",
                      "description": "TrashcanParameters as JSON; fromTime/toTime are unix timestamps",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "uuid"
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "properties",
                      "value": "deletedate"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get information of objects, that have been deleted and are still existing in the server side trash can. This service returns FolderDeleteRelationObjects. To restore an object use object/restore2/{id}.\n\nRequest `uuid` as a response property - the restore calls need it."
              },
              "response": []
            },
            {
              "name": "object/restore2/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "target",
                      "value": "",
                      "description": "id of the target folder; without it the object goes back to its original place. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`.",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "parameters",
                      "value": "{\"solveConflict\":\"rename\",\"inheritAcl\":false}",
                      "contentType": "application/json",
                      "description": "Restore2Model as JSON: solveConflict is unset (abort), \"merge\" or \"rename\"",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/restore2/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "restore2", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "uuid://",
                      "description": "uuid of the FolderDeleteRelationObject from the trashcan provider"
                    }
                  ]
                },
                "description": "Restore a deleted object to either the original place or to a specified folder. If the target folder is given, the object is restored to that new target folder. If no target is given, the object will be restored to its original place (if possible). If a conflict is arising, the restore process stops, when no solve parameter is set. (See solve parameter for details)\n\nThe trash entry has to be addressed by its `uuid://...`. The numeric id that the trashcan provider reports cannot be resolved and the call answers \"Object <id> not found\"."
              },
              "response": []
            },
            {
              "name": "object/restore/{id}",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "object",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "target",
                      "value": "id of the folder to restore into",
                      "description": "required: id of the folder to restore into. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`.",
                      "type": "default"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"solveConflict\":\"source\",\"inheritAcl\":false}",
                      "contentType": "application/json",
                      "description": "RestoreModel as JSON: solveConflict is unset (abort), \"source\" or \"destination\"",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/restore/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", "restore", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "uuid://",
                      "description": "uuid of the FolderDeleteRelationObject from the trashcan provider"
                    }
                  ]
                },
                "description": "Restore a deleted object to one folder. If the target folder is the folder where the object has been deleted before, the information, that it has been deleted there is removed. If the object is restored to another folder, the information about the previous deletion remains. In both cases the expiration date is reset. If a complete folder structure has been deleted, it will be completely restored.\n\nThe trash entry has to be addressed by its `uuid://...`. The numeric id that the trashcan provider reports cannot be resolved and the call answers \"Object <id> not found\".\n\nSuperseded by object/restore2/{id}, which also handles versions and offers \"merge\" as a conflict strategy."
              },
              "response": []
            }
          ],
          "description": "Listing the server side trash can and restoring objects from it."
        }
      ],
      "description": "Manipulation and searching of objects, folders and files. Reading goes through GET /object with a `provider`, writing through POST/PUT/DELETE with a `handler`, `updatehandler` or `deletehandler`."
    },
    {
      "name": "administration",
      "item": [
        {
          "name": "users and groups",
          "item": [
            {
              "name": "object/{id} (get user)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object/:id?handler=user&properties=familyname&properties=givenname&properties=admin",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", ":id"],
                  "query": [
                    {
                      "key": "handler",
                      "value": "user",
                      "description": "required"
                    },
                    {
                      "key": "properties",
                      "value": "familyname",
                      "description": "response property; repeat for more than one. familyname, givenname, admin, emailaddresses, language"
                    },
                    {
                      "key": "properties",
                      "value": "givenname"
                    },
                    {
                      "key": "properties",
                      "value": "admin"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "only inside a transaction",
                      "disabled": true
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "user%3A%2F%2Froi",
                      "description": "id of the user, e.g. 123456 or the URL encoded user%3A%2F%2Froi"
                    }
                  ]
                },
                "description": "Get information about a user.\n\nPostman passes path variables through unchanged. An id that contains `/` or `://` therefore has to be entered URL encoded - `user://roi` becomes `user%3A%2F%2Froi`, `/agorum/roi/Files` becomes `%2Fagorum%2Froi%2FFiles`. A numeric object id needs no encoding. In query parameters Postman encodes on its own, so the plain form works there."
              },
              "response": []
            },
            {
              "name": "object (create user)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "user",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "data",
                      "value": "{\"username\":\"testuser\",\"password\":\"secret\",\"emailaddresses\":\"testuser@example.com\",\"givenname\":\"Test\",\"familyname\":\"User\",\"language\":\"de\",\"admin\":false}",
                      "contentType": "application/json",
                      "description": "required: UserCreateData as JSON. username and one email address are mandatory; without \"targetfolder\" the account lands in /agorum/roi/Administration/User",
                      "type": "default"
                    },
                    {
                      "key": "properties",
                      "value": "id",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"]
                },
                "description": "Create a new user account. The username and one email address are required. When no \"targetfolder\" is defined, the user will be saved in \"/agorum/roi/Administration/User\". The id of the created user will be returned by default."
              },
              "response": []
            },
            {
              "name": "object/{id} (update user)",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "updatehandler",
                      "value": "user",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "data",
                      "value": "{\"description\":\"changed over REST\"}",
                      "contentType": "application/json",
                      "description": "UserUpdateData as JSON: password, passwordnt, emailaddresses, givenname, familyname, username, admin, description, language, defaultrolename, mandatoridentifier, quotaallocatedstorage",
                      "type": "default"
                    },
                    {
                      "key": "properties",
                      "value": "name",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object/:id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", ":id"],
                  "variable": [
                    {
                      "key": "id",
                      "value": "user%3A%2F%2Froi",
                      "description": "id of the user, e.g. 123456 or the URL encoded user%3A%2F%2Froi"
                    }
                  ]
                },
                "description": "Update data of a user.\n\nPostman passes path variables through unchanged. An id that contains `/` or `://` therefore has to be entered URL encoded - `user://roi` becomes `user%3A%2F%2Froi`, `/agorum/roi/Files` becomes `%2Fagorum%2Froi%2FFiles`. A numeric object id needs no encoding. In query parameters Postman encodes on its own, so the plain form works there."
              },
              "response": []
            },
            {
              "name": "object (list users and groups)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=usergroupsearch&query=roi&properties=name&properties=id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "usergroupsearch",
                      "description": "required"
                    },
                    {
                      "key": "query",
                      "value": "roi",
                      "description": "name pattern of the user or group"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"onlyusers\":false,\"onlygroups\":false,\"hidelockedusers\":false}",
                      "description": "UserGroupSearchParameters as JSON: onlyusers, onlygroups, hidelockedusers, checkobject, include",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "properties",
                      "value": "id"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get all users/groups. With the value \"objectvisible\" of parameter \"properties\" it shows if a group/user has access to a in \"checkobject\" defined object."
              },
              "response": []
            },
            {
              "name": "object (group members)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=groupmember&source=group://Demo&properties=name",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "groupmember",
                      "description": "required"
                    },
                    {
                      "key": "source",
                      "value": "group://Demo",
                      "description": "required: group id or name, e.g. group://Demo"
                    },
                    {
                      "key": "query",
                      "value": "",
                      "description": "name pattern of the members",
                      "disabled": true
                    },
                    {
                      "key": "parameters",
                      "value": "{\"directmembers\":true,\"resulttype\":\"user\"}",
                      "description": "GroupMemberParameters as JSON: directmembers, resulttype (\"user\" or \"group\")",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get all direct users and groups members of a in \"source\" defined group. With the parameter \"parameters\" the return can be limited."
              },
              "response": []
            },
            {
              "name": "object (app settings of a user)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=appuserprofile&source=webui&properties=appkeyword&properties=appvalue",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "appuserprofile",
                      "description": "required"
                    },
                    {
                      "key": "source",
                      "value": "webui",
                      "description": "required: <application>[.<keyword>], e.g. webui.agorum.roiwebui.ShowHighlighting"
                    },
                    {
                      "key": "properties",
                      "value": "appkeyword"
                    },
                    {
                      "key": "properties",
                      "value": "appvalue"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get the attributes and values of AppUserProfileObject and ExtendedUserProfileObject of a in \"source\" defined application. Possible applications are for example roiwebui, EventAssistance or desk4web. Applications settings can not be accessed through a front end, like desk4web. You get only the application settings for the session user. Example: Logged in as roi source: webui.agorum.roiwebui.ShowHighlighting (application: webui, keyword: agorum.roiwebui.ShowHighlighting (highlighting searched characters in the result)) properties: appkeyword properties: appvalue Response: { ... data: [ { \"appkeyword\": \"agorum.roiwebui.ShowHighlighting\" \"appvalue\": true } ], ... } (Searched characters are highlighted in the search result)"
              },
              "response": []
            },
            {
              "name": "object/{id} (get app user profile)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object/:id?handler=appuserprofile&properties=app&properties=key&properties=value",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object", ":id"],
                  "query": [
                    {
                      "key": "handler",
                      "value": "appuserprofile",
                      "description": "required"
                    },
                    {
                      "key": "properties",
                      "value": "app",
                      "description": "id, app, key or value"
                    },
                    {
                      "key": "properties",
                      "value": "key"
                    },
                    {
                      "key": "properties",
                      "value": "value"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only for the session based flow",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "only inside a transaction",
                      "disabled": true
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "webui.agorum.roiwebui.TreeSize",
                      "description": "id of the app entry, <application>.<keyword>"
                    }
                  ]
                },
                "description": "Get an appuserprofile.\n\nThe handler is `appuserprofile`, with a double \"p\". The spelling `apuserprofile` answers \"Handler not found: apuserprofile\"."
              },
              "response": []
            },
            {
              "name": "object (create app user profile)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "appuserprofile",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "data",
                      "value": "{\"app\":\"webui\",\"key\":\"agorum.roiwebui.ShowHighlighting\",\"value\":\"true\"}",
                      "contentType": "application/json",
                      "description": "required: AppUserProfileDatas as JSON",
                      "type": "default"
                    },
                    {
                      "key": "properties",
                      "value": "id",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"]
                },
                "description": "Create an app user profile for the user of the session. If an app with the same name already exists, this app will be updated. Returns the id of the successfully created app by default. Example: { \"app\": \"webui\" \"value\": \"false\" \"key\": \"agorum.roiwebui.ShowHighlighting\" } (The application and parameter already exists, so it will be updated.)"
              },
              "response": []
            }
          ],
          "description": "User accounts, groups and their profiles."
        },
        {
          "name": "acls, metaDb and configuration",
          "item": [
            {
              "name": "object (list ACLs)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=acl&properties=name&properties=id",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "acl",
                      "description": "required"
                    },
                    {
                      "key": "query",
                      "value": "",
                      "description": "name pattern of the ACL",
                      "disabled": true
                    },
                    {
                      "key": "parameters",
                      "value": "{\"all\":false}",
                      "description": "AclParameters as JSON: all=true also lists the internal ACLs",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "properties",
                      "value": "id"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get all ACLs matching the query pattern. With the parameter \"parameters\" you can limit the returned ACLs."
              },
              "response": []
            },
            {
              "name": "object (list metaDb bundle)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=metadb&source=/MAIN_MODULE_MANAGEMENT&properties=name&properties=value",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "metadb",
                      "description": "required"
                    },
                    {
                      "key": "source",
                      "value": "/MAIN_MODULE_MANAGEMENT",
                      "description": "required: metaDb path of the bundle"
                    },
                    {
                      "key": "parameters",
                      "value": "{\"mode\":\"entries\"}",
                      "description": "MetaDbParameters as JSON: \"entries\", \"bundles\" or \"tree\"",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "properties",
                      "value": "value"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get all elements of a in \"source\" defined metaDb bundle.\n\nNote: `query` is accepted but never applied, and `parameters.mode=tree` returns an empty result for an ordinary bundle. Use no mode (all elements), \"entries\" or \"bundles\"."
              },
              "response": []
            },
            {
              "name": "object (create metaDb entry)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "handler",
                      "value": "metadb",
                      "description": "required",
                      "type": "default"
                    },
                    {
                      "key": "data",
                      "value": "{\"key\":\"MAIN_MODULE_MANAGEMENT/myBundle/Entry\",\"value\":\"hello\"}",
                      "contentType": "application/json",
                      "description": "required: MetaDbData as JSON",
                      "type": "default"
                    },
                    {
                      "key": "properties",
                      "value": "id",
                      "type": "default"
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "type": "default",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "type": "default",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/api/rest/object",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"]
                },
                "description": "Create a new metaDb entry. When a non existing bundle in the metaDb path of the \"key\" is defined, it will be created, too. Returns the id of the successfully created metaDb entry by default.\n\nThere is no counterpart for deleting: the metaDb delete handler answers \"Not implemented\" for entries and fails with a ClassCastException for bundles."
              },
              "response": []
            },
            {
              "name": "object (quick search configuration)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=quicksearch&source=/MAIN_MODULE_MANAGEMENT/mobileclient/control/quicksearch/[ Default ]",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "quicksearch",
                      "description": "required"
                    },
                    {
                      "key": "source",
                      "value": "/MAIN_MODULE_MANAGEMENT/mobileclient/control/quicksearch/[ Default ]",
                      "description": "metaDb path of the bundle holding the quick searches"
                    },
                    {
                      "key": "properties",
                      "value": "name",
                      "description": "default response properties: name, query, text",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "query",
                      "disabled": true
                    },
                    {
                      "key": "properties",
                      "value": "text",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "List configuration information of an in metaDb bundle stored quicksearches. The path to the metaDb bundle in which the quicksearches settings are stored must be set as value of the parameter \"source\". Example: source: /MAIN_MODULE_MANAGEMENT/mobileclient/control/quicksearch/[ Default ] properties: name properties: text The response is: { ... data: [ { name: Files text: Files }, { name: AllButNoMail text: AllButNoMail }, ... } ] }"
              },
              "response": []
            },
            {
              "name": "object (area configuration)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=area&source=/MAIN_MODULE_MANAGEMENT/mobileclient/control/areas",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "area",
                      "description": "required"
                    },
                    {
                      "key": "source",
                      "value": "/MAIN_MODULE_MANAGEMENT/mobileclient/control/areas",
                      "description": "required: metaDb path of the bundle holding the areas"
                    },
                    {
                      "key": "properties",
                      "value": "name",
                      "description": "default response properties: id, name, text, description",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "List configuration information of stored areas in a metaDb bundle. The path to the metaDb bundle in which the areas settings are stored must be specified in \"source\"."
              },
              "response": []
            },
            {
              "name": "object (list charsets)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{url}}/api/rest/object?provider=charset&query=UTF&properties=name",
                  "host": ["{{url}}"],
                  "path": ["api", "rest", "object"],
                  "query": [
                    {
                      "key": "provider",
                      "value": "charset",
                      "description": "required"
                    },
                    {
                      "key": "query",
                      "value": "UTF",
                      "description": "required: name pattern of the charsets"
                    },
                    {
                      "key": "properties",
                      "value": "name"
                    },
                    {
                      "key": "sort",
                      "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                      "description": "JSON array of object attributes to sort by",
                      "disabled": true
                    },
                    {
                      "key": "filter",
                      "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                      "description": "JSON array of properties to filter the result by",
                      "disabled": true
                    },
                    {
                      "key": "start",
                      "value": "0",
                      "description": "start offset, default 0",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "number of items to return",
                      "disabled": true
                    },
                    {
                      "key": "sessionId",
                      "value": "{{sessionId}}",
                      "description": "only needed when authenticating via POST /session instead of Basic auth",
                      "disabled": true
                    },
                    {
                      "key": "transactionId",
                      "value": "{{transactionId}}",
                      "description": "set when the call has to run inside a transaction",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get all supported charsets of the server JVM."
              },
              "response": []
            }
          ],
          "description": "ACLs and the configuration store (metaDb)."
        }
      ],
      "description": "Administration of ACLs, users, the metaDb and internal configuration."
    },
    {
      "name": "note",
      "item": [
        {
          "name": "object (list notes)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=note&source=/agorum/roi/Files&properties=name&properties=id",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "note",
                  "description": "required"
                },
                {
                  "key": "source",
                  "value": "/agorum/roi/Files",
                  "description": "id of the object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                },
                {
                  "key": "properties",
                  "value": "name"
                },
                {
                  "key": "properties",
                  "value": "id"
                },
                {
                  "key": "sort",
                  "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                  "description": "JSON array of object attributes to sort by",
                  "disabled": true
                },
                {
                  "key": "filter",
                  "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                  "description": "JSON array of properties to filter the result by",
                  "disabled": true
                },
                {
                  "key": "start",
                  "value": "0",
                  "description": "start offset, default 0",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "number of items to return",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "disabled": true
                }
              ]
            },
            "description": "Get all notes of an object. The id of the object must be set as the value of the parameter \"source\"."
          },
          "response": []
        },
        {
          "name": "object (create note)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "handler",
                  "value": "note",
                  "description": "required",
                  "type": "default"
                },
                {
                  "key": "data",
                  "value": "{\"target\":\"/agorum/roi/Files/test-folder/test.txt\",\"content\":\"a note\",\"recipients\":\"roi\",\"noteFormat\":\"text/plain\"}",
                  "contentType": "application/json",
                  "description": "required: NoteCreateData as JSON. recipients is a \";\" separated list of user or group names or ids; noteFormat is \"text/plain\" or \"text/html\"",
                  "type": "default"
                },
                {
                  "key": "properties",
                  "value": "id",
                  "type": "default"
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "type": "default",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "type": "default",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{url}}/api/rest/object",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"]
            },
            "description": "Create a note (\"content\"), set its recipients (parameter \"recipients\") and attach it to an existing object (\"target\"). Returns the id of the successfully created note by default."
          },
          "response": []
        },
        {
          "name": "object/{id} (update note)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "updatehandler",
                  "value": "note",
                  "description": "required",
                  "type": "default"
                },
                {
                  "key": "data",
                  "value": "{\"recipients\":\"roi;Demo\"}",
                  "contentType": "application/json",
                  "description": "properties of the NoteObject plus \"recipients\", as JSON",
                  "type": "default"
                },
                {
                  "key": "properties",
                  "value": "id",
                  "type": "default"
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "type": "default",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "type": "default",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{url}}/api/rest/object/:id",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object", ":id"],
              "variable": [
                {
                  "key": "id",
                  "value": "id of the note",
                  "description": "id of the note"
                }
              ]
            },
            "description": "Update a note. The id of the note will be returned by default."
          },
          "response": []
        }
      ],
      "description": "Notes handling."
    },
    {
      "name": "mail",
      "item": [
        {
          "name": "object (create mail)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "handler",
                  "value": "mail",
                  "description": "required",
                  "type": "default"
                },
                {
                  "key": "data",
                  "value": "{\"from\":\"roi@example.com\",\"to\":\"someone@example.com\",\"subject\":\"test\",\"content\":\"hello\",\"format\":\"text/plain\",\"priority\":\"normal\"}",
                  "contentType": "application/json",
                  "description": "required: MailData as JSON. Further fields: cc, bcc, replyto, attachments, inreplyto, target, type (\"draft\" saves to /Mail/Drafts, otherwise /Mail/outbox), notify, sensivity",
                  "type": "default"
                },
                {
                  "key": "properties",
                  "value": "id",
                  "type": "default"
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "type": "default",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "type": "default",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{url}}/api/rest/object",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"]
            },
            "description": "Create a new mail. When no folder id is set as value of the \"target\" attribute of the parameter \"data\" and no \"type\" is defined, the mail will be stored in the mail outbox. To store a mail in the mail drafts folder draft must be set as value of the attribute \"type\". With these parameters you define the storage folder of sent mails. MailObjects, FileObjects and D4wAppCalendarApps stored in agorum core can be attached to a mail. The id of the objects must be set as values of the attribute \"attachment\". These objects will be sent with the mail. To reply to a mail stored in agorum core, set its id in \"inreplyto\"."
          },
          "response": []
        },
        {
          "name": "object (mail relations)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=mailrelation&source=id of the mail object&properties=name",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "mailrelation",
                  "description": "required"
                },
                {
                  "key": "source",
                  "value": "id of the mail object",
                  "description": "id of the mail object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                },
                {
                  "key": "properties",
                  "value": "name"
                },
                {
                  "key": "sort",
                  "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                  "description": "JSON array of object attributes to sort by",
                  "disabled": true
                },
                {
                  "key": "filter",
                  "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                  "description": "JSON array of properties to filter the result by",
                  "disabled": true
                },
                {
                  "key": "start",
                  "value": "0",
                  "description": "start offset, default 0",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "number of items to return",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "disabled": true
                }
              ]
            },
            "description": "Get relations of a in \"source\" defined mailobject."
          },
          "response": []
        },
        {
          "name": "object (mail attachments)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=mailattachment&source=id of the mail object&properties=name&properties=id",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "mailattachment",
                  "description": "required"
                },
                {
                  "key": "source",
                  "value": "id of the mail object",
                  "description": "id of the mail object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                },
                {
                  "key": "properties",
                  "value": "name"
                },
                {
                  "key": "properties",
                  "value": "id"
                },
                {
                  "key": "sort",
                  "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                  "description": "JSON array of object attributes to sort by",
                  "disabled": true
                },
                {
                  "key": "filter",
                  "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                  "description": "JSON array of properties to filter the result by",
                  "disabled": true
                },
                {
                  "key": "start",
                  "value": "0",
                  "description": "start offset, default 0",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "number of items to return",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "disabled": true
                }
              ]
            },
            "description": "Get attachments of a in \"source\" defined mailobject."
          },
          "response": []
        },
        {
          "name": "object (search mail addresses)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=mailaddresssearch&query=a",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "mailaddresssearch",
                  "description": "required"
                },
                {
                  "key": "query",
                  "value": "a",
                  "description": "required: pattern of the mail address"
                },
                {
                  "key": "sort",
                  "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                  "description": "JSON array of object attributes to sort by",
                  "disabled": true
                },
                {
                  "key": "filter",
                  "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                  "description": "JSON array of properties to filter the result by",
                  "disabled": true
                },
                {
                  "key": "start",
                  "value": "0",
                  "description": "start offset, default 0",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "number of items to return",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "disabled": true
                }
              ]
            },
            "description": "Get all users mail addresses of agorum core which match with the in parameter \"query\" defined syntax pattern."
          },
          "response": []
        },
        {
          "name": "object (sender addresses of the user)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=mailsenderaddress",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "mailsenderaddress",
                  "description": "required"
                },
                {
                  "key": "query",
                  "value": "",
                  "description": "name pattern",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                  "description": "JSON array of object attributes to sort by",
                  "disabled": true
                },
                {
                  "key": "filter",
                  "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                  "description": "JSON array of properties to filter the result by",
                  "disabled": true
                },
                {
                  "key": "start",
                  "value": "0",
                  "description": "start offset, default 0",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "number of items to return",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "disabled": true
                }
              ]
            },
            "description": "Get all mail sender addresses of the session user."
          },
          "response": []
        }
      ],
      "description": "Mail handling."
    },
    {
      "name": "preview",
      "item": [
        {
          "name": "object (preview pages)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=preview&source=/agorum/roi/Files/Demo/Willkommen.pdf&parameters={\"size\":400,\"cached\":false,\"onlyCreated\":false}",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "preview",
                  "description": "required"
                },
                {
                  "key": "source",
                  "value": "/agorum/roi/Files/Demo/Willkommen.pdf",
                  "description": "id of the file object. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                },
                {
                  "key": "parameters",
                  "value": "{\"size\":400,\"cached\":false,\"onlyCreated\":false}",
                  "description": "PreviewSearchParameters as JSON: width, height, size, cached, onlyCreated"
                },
                {
                  "key": "start",
                  "value": "0",
                  "description": "first page to return, 0 based",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "number of pages to return",
                  "disabled": true
                },
                {
                  "key": "properties",
                  "value": "ticket",
                  "description": "response property; repeat for more than one",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only for the session based flow",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "only inside a transaction",
                  "disabled": true
                }
              ]
            },
            "description": "Get a ticket number for each page of a generated preview of an in \"source\" defined file object. The definition of the API service for downloading the generated previews can be found under: /object/preview/{ticket}. This API service can be used only when a master preview of the file object already exists! In addition to the ticket numbers other responses are masterWidth, masterHeight and the defined width and height from \"parameters\". When no height, width or size is defined, the masterWidth and masterHeight will be used for the preview images.\n\nReturns one entry per page with `masterWidth`, `masterHeight`, the resulting `width`/`height` and a `ticket`. The `ticket` is the page number within this response - it is *not* what object/preview/{ticket} expects."
          },
          "response": []
        },
        {
          "name": "object/preview/{ticket} (download)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object/preview/:ticket?page=1&size=400",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object", "preview", ":ticket"],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "page of the preview, default 1"
                },
                {
                  "key": "size",
                  "value": "400",
                  "description": "size of the longest side; default is the master image size"
                },
                {
                  "key": "width",
                  "value": "800",
                  "description": "width in pixels",
                  "disabled": true
                },
                {
                  "key": "height",
                  "value": "600",
                  "description": "height in pixels",
                  "disabled": true
                },
                {
                  "key": "cached",
                  "value": "true",
                  "description": "persist the newly created preview, default false",
                  "disabled": true
                },
                {
                  "key": "onlycreated",
                  "value": "true",
                  "description": "true: only return previews that already exist, default false",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only for the session based flow",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "only inside a transaction",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "ticket",
                  "value": "%2Fagorum%2Froi%2FFiles%2FDemo%2FWillkommen.pdf.jpg",
                  "description": "object id plus the image extension (jpg, jpeg or png)"
                }
              ]
            },
            "description": "Download the preview image of one page of a file object. This API service can be used only when a master preview of the file object already exists. With `size`, `width` or `height` the image is scaled; without them the master image size is used.\n\nThe path segment is not the `ticket` from the call above but the **id of the object** plus `.jpg`, `.jpeg` or `.png` - for example `1234567.jpg`. The page is selected with the `page` query parameter.\n\nPostman passes path variables through unchanged. An id that contains `/` or `://` therefore has to be entered URL encoded - `user://roi` becomes `user%3A%2F%2Froi`, `/agorum/roi/Files` becomes `%2Fagorum%2Froi%2FFiles`. A numeric object id needs no encoding. In query parameters Postman encodes on its own, so the plain form works there."
          },
          "response": []
        }
      ],
      "description": "Services for previewing file objects."
    },
    {
      "name": "datahandler",
      "item": [
        {
          "name": "object (data provider)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=data&source=/MAIN_MODULE_MANAGEMENT/myBundle/mydata",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "data",
                  "description": "required"
                },
                {
                  "key": "source",
                  "value": "/MAIN_MODULE_MANAGEMENT/myBundle/mydata",
                  "description": "required: metaDb path of the configuration"
                },
                {
                  "key": "query",
                  "value": "",
                  "description": "name pattern of the object",
                  "disabled": true
                },
                {
                  "key": "parameters",
                  "value": "{\"filter\":{\"column\":\"value\"}}",
                  "description": "DataProviderParameters as JSON",
                  "disabled": true
                },
                {
                  "key": "properties",
                  "value": "text",
                  "description": "response property; repeat for more than one",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                  "description": "JSON array of object attributes to sort by",
                  "disabled": true
                },
                {
                  "key": "start",
                  "value": "0",
                  "description": "start offset, default 0",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "number of items to return",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "disabled": true
                }
              ]
            },
            "description": "Get data of an external data source. The configuration for accessing external data source and handling its data must be stored in metadb. Metadb path of the property entry with the configuration must be set as value of parameter \"source\"."
          },
          "response": []
        },
        {
          "name": "object (JDBC data handler)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=data&source=/MAIN_MODULE_MANAGEMENT/myBundle/jdbc&query=replaces the ${query} placeholder in the select statement",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "data",
                  "description": "required"
                },
                {
                  "key": "source",
                  "value": "/MAIN_MODULE_MANAGEMENT/myBundle/jdbc",
                  "description": "required: metaDb path of the configuration"
                },
                {
                  "key": "query",
                  "value": "replaces the ${query} placeholder in the select statement",
                  "description": "replaces the ${query} placeholder in the select statement"
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only for the session based flow",
                  "disabled": true
                }
              ]
            },
            "description": "The configuration of a in metadb saved sql data handler. Get data through a in metaDb pre defined sql select statement. Following entries can/must be set: /Class: agorum.api.object.data.JdbcDataHandler /AllowedIdentity (optional): User or group (id or name) that is allowed to access this datasource /Query: the select statement /Driver: (optional): JDBC-Driver /Url: url of the database /Username: login user name for the database /Password: login password for the database /LowerCaseKeys: return the keys in lower case /LowerCaseValues: return the values in lower case Sample select statement: SELECT id as value,name as text, description as value1, UUID as value2 FROM globalobject $O[WHERE $P(name LIKE '%${query}%')$ $B(OR)$ $P(UUID like '%${query}%')$]$ LIMIT 1000"
          },
          "response": []
        },
        {
          "name": "object (CSV data handler)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=data&source=/MAIN_MODULE_MANAGEMENT/myBundle/csv&query=pattern for the value of the column named in /QueryColumn",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "data",
                  "description": "required"
                },
                {
                  "key": "source",
                  "value": "/MAIN_MODULE_MANAGEMENT/myBundle/csv",
                  "description": "required: metaDb path of the configuration"
                },
                {
                  "key": "query",
                  "value": "pattern for the value of the column named in /QueryColumn",
                  "description": "pattern for the value of the column named in /QueryColumn"
                },
                {
                  "key": "parameters",
                  "value": "{\"columnname\":\"columnvalue\"}",
                  "description": "JSON object of column name to column value",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only for the session based flow",
                  "disabled": true
                }
              ]
            },
            "description": "Get rows of a in metaDb defined csv file which column names equals with a parameter name and the related column value contains the related parameter value, or a in metaDb in /QueryColumn defined column contains the in query defined value. The csv data source must be defined in the property entry \"PathOrId\". A property entry with the name \"Class\" and value \"agorum.api.object.data.CsvDataHandler\" must be set. Following property entries can be set: /Class: agorum.api.object.data.CsvDataHandler /AllowedIdentity (optional): User or group (id or name) that is allowed to access this datasource /Delimiter: delimiter in the data source, default \";\" /Quote: quote character, default \" /Encoding: encoding type of the data source, default: UTF-8 /WithHeader: return the header of a column default: true /QueryColumn: name of the column that should be queried over the \"query\" parameter"
          },
          "response": []
        },
        {
          "name": "object (search engine terms data handler)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=data&source=/MAIN_MODULE_MANAGEMENT/myBundle/terms&query=pattern of the term value",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "data",
                  "description": "required"
                },
                {
                  "key": "source",
                  "value": "/MAIN_MODULE_MANAGEMENT/myBundle/terms",
                  "description": "required: metaDb path of the configuration"
                },
                {
                  "key": "query",
                  "value": "pattern of the term value",
                  "description": "pattern of the term value"
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only for the session based flow",
                  "disabled": true
                }
              ]
            },
            "description": "The configuration of a in metadb saved searchengine terms data handler. Get data through a in metaDb pre defined field. Following entries can/must be set: /Class: agorum.api.object.data.SearchEngineTermsDataHandler /AllowedIdentity (optional): User or group (id or name) that is allowed to access this data source /Field: the field from where to get the terms /MaxAmount: optional max amount of terms to return (if not set, the limit is 100)"
          },
          "response": []
        },
        {
          "name": "object (user data handler)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=data&source=/MAIN_MODULE_MANAGEMENT/myBundle/userdata&query=roi",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "data",
                  "description": "required"
                },
                {
                  "key": "source",
                  "value": "/MAIN_MODULE_MANAGEMENT/myBundle/userdata",
                  "description": "required: metaDb path of the configuration"
                },
                {
                  "key": "query",
                  "value": "roi",
                  "description": "pattern of the user name"
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only for the session based flow",
                  "disabled": true
                }
              ]
            },
            "description": "A data handler to get a list of users and their ids. The configuration of this data handler is saved in the metadb. A property entry with name \"Class\" and value \"agorum.api.object.data.UserDataHandler\" must be set. With the \"query\" parameter you can define the name syntax of the returning usernames. /Class: agorum.api.object.data.UserDataHandler /AllowedIdentity (optional): User or group (id or name) that is allowed to access this data source"
          },
          "response": []
        }
      ],
      "description": "Data of a source that is configured in the metaDb: a SQL statement, a CSV file, search engine terms or the user list. All four variants share the same endpoint - `provider=data` with the metaDb path in `source`. Which handler runs is decided by the `Class` entry of that bundle."
    },
    {
      "name": "genericmultiqueue",
      "item": [
        {
          "name": "object (list queue entries)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{url}}/api/rest/object?provider=genericmultiqueue&query=my.queue.identifier&properties=name&properties=id",
              "host": ["{{url}}"],
              "path": ["api", "rest", "object"],
              "query": [
                {
                  "key": "provider",
                  "value": "genericmultiqueue",
                  "description": "required"
                },
                {
                  "key": "query",
                  "value": "my.queue.identifier",
                  "description": "required: name of the queue"
                },
                {
                  "key": "parameters",
                  "value": "{\"sortId\":0}",
                  "description": "GenericMultiQueueParameters as JSON: sortId to start from",
                  "disabled": true
                },
                {
                  "key": "properties",
                  "value": "name"
                },
                {
                  "key": "properties",
                  "value": "id"
                },
                {
                  "key": "sort",
                  "value": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
                  "description": "JSON array of object attributes to sort by",
                  "disabled": true
                },
                {
                  "key": "filter",
                  "value": "[{\"property\":\"description\",\"value\":\"test\"}]",
                  "description": "JSON array of properties to filter the result by",
                  "disabled": true
                },
                {
                  "key": "start",
                  "value": "0",
                  "description": "start offset, default 0",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "number of items to return",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "disabled": true
                }
              ]
            },
            "description": "Get all entries of a generic multi queue, with the key defined in \"query\""
          },
          "response": []
        },
        {
          "name": "genericMultiQueue/add/{id}",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "ident",
                  "value": "my.queue.identifier",
                  "description": "required: the queue identifier",
                  "type": "default"
                },
                {
                  "key": "data",
                  "value": "",
                  "description": "optional payload stored with the queue entry",
                  "type": "default",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "type": "default",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "type": "default",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{url}}/api/rest/genericMultiQueue/add/:id",
              "host": ["{{url}}"],
              "path": ["api", "rest", "genericMultiQueue", "add", ":id"],
              "variable": [
                {
                  "key": "id",
                  "value": "id of the object to add",
                  "description": "id of the object to add. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                }
              ]
            },
            "description": "Add an object to the generic multi queue."
          },
          "response": []
        },
        {
          "name": "genericMultiQueue/remove/{id}",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "ident",
                  "value": "my.queue.identifier",
                  "description": "required: the queue identifier",
                  "type": "default"
                },
                {
                  "key": "sortId",
                  "value": "",
                  "description": "sortId of the entry, repeatable. Without it every entry of the object is removed",
                  "type": "default",
                  "disabled": true
                },
                {
                  "key": "sessionId",
                  "value": "{{sessionId}}",
                  "description": "only needed when authenticating via POST /session instead of Basic auth",
                  "type": "default",
                  "disabled": true
                },
                {
                  "key": "transactionId",
                  "value": "{{transactionId}}",
                  "description": "set when the call has to run inside a transaction",
                  "type": "default",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{url}}/api/rest/genericMultiQueue/remove/:id",
              "host": ["{{url}}"],
              "path": ["api", "rest", "genericMultiQueue", "remove", ":id"],
              "variable": [
                {
                  "key": "id",
                  "value": "id of the object to remove",
                  "description": "id of the object to remove. Accepted id formats: `123456` (object id), `9999|654321|123456` (object node id, used for trees), `/agorum/roi/Files` (folder path), `uuid://1111-2222-3333-4444`, `remoteid://remoteIdent;remoteId`, `user://roi`, `group://Demo`."
                }
              ]
            },
            "description": "Remove an object from the generic multi queue."
          },
          "response": []
        }
      ],
      "description": "A queue that holds objects, possibly more than once. Objects can be added, listed and removed."
    }
  ],
  "auth": {
    "type": "basic",
    "basic": [
      {
        "key": "username",
        "value": "{{username}}",
        "type": "string"
      },
      {
        "key": "password",
        "value": "{{password}}",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [""]
      }
    },
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "exec": [""]
      }
    }
  ],
  "variable": [
    {
      "key": "url",
      "value": "https://<agorum-core-server>",
      "type": "default"
    },
    {
      "key": "username",
      "value": "roi",
      "type": "default"
    },
    {
      "key": "password",
      "value": "",
      "type": "default"
    },
    {
      "key": "sessionId",
      "value": "",
      "type": "default"
    },
    {
      "key": "transactionId",
      "value": "",
      "type": "default"
    },
    {
      "key": "loginToken",
      "value": "",
      "type": "default"
    }
  ]
}
