Content Server API documentation version v7
http://server:port/activeviam/content/rest/v7
Home
This document describes the REST API of Content server.
Note: the root URL provided here will depend on the deployment of your application.
/bulk
Specialized API for bulk operations.
A specialized version of the GET method that retrieves the structure and the content of several entries. |
Allows atomic retrieval of the structure and, if needed, the content of the subtrees with roots and heights specified by path and recursion parameters of the entries, respectively.
For each path the corresponding subtree height must be specified; if the height is less or equal to zero only the root itself is returned.
For file entries the height should be less or equal to zero.
post /bulk/get
A specialized version of the GET method that retrieves the structure and the content of several entries. |
Allows atomic retrieval of the structure and, if needed, the content of the subtrees with roots and heights specified by path and recursion parameters of the entries, respectively.
For each path the corresponding subtree height must be specified; if the height is less or equal to zero only the root itself is returned.
For file entries the height should be less or equal to zero.
Query Parameters
- throwNotFound: (boolean - default: true)
When set to False, the "Not Found" errors are silently ignored.
- includeContent: (boolean - default: true)
When set, the content of the retrieved files is included in the response.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"title": "Map<String,Integer>",
"type": "object",
"description": "A mapping from the entry paths to recursion levels to use for these entries",
"patternProperties": {
".{1,}": { "type": "integer" }
}
}
}
Example:
{
"/absolute/path/to/file/1": 4,
"/absolute/path/to/file/2": 0
}
HTTP status code 200
Get all the found entries.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Map<String,Object>",
"type": "object",
"description": "A mapping from the entry paths to retrieved entry trees",
"patternProperties": {
".{1,}": "#/definitions/contentTree"
},
"definitions": {
"entry": {
"type": "object",
"description": "Information describing an entry of the content server, independently from its path.",
"properties": {
"content": {
"type": "string",
"description": "The content of the file (null for a directory)"
},
"isDirectory": {
"type": "boolean",
"description": "Whether this entry is a directory or not"
},
"timestamp": {
"type": "number",
"description": "The UNIX timestamp of the last edit"
},
"lastEditor": {
"type": "string",
"description": "The username of the last editor"
},
"owners": {
"type": "array",
"items": {
"type": "string",
"description": "A group of owners"
},
"description": "The groups of owners"
},
"readers": {
"type": "array",
"items": {
"type": "string",
"description": "A group of readers"
},
"description": "The groups of readers"
},
"canRead": {
"type": "boolean",
"description": "Whether the current user has read access to the file"
},
"canWrite": {
"type": "boolean",
"description": "Whether the current user has write access to the file"
}
},
"required": ["isDirectory", "timestamp", "lastEditor", "owners", "readers", "canRead", "canWrite"],
"additionalProperties": false
},
"contentTree": {
"type": "object",
"description": "A content service subtree. Entries within the tree can have different owners/readers permissions and are not associated to an absolute path. Instead, the root entry of each child subtree is associated to a name within its parent directory.",
"properties": {
"entry": {
"$ref": "#/definitions/entry"
},
"children": {
"type": "object",
"description": "The children subtrees, each of them associated to the name of their root entry within its parent directory.",
"patternProperties": {
".{1,}": { "$ref": "#/definitions/contentTree" }
}
}
}
}
}
}
Example:
{
"/absolute/path/to/file/1": {
"entry": {
"isDirectory": true,
"timestamp": 1470841434848,
"lastEditor": "AuditableHibernateContentService",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_CS_ROOT" ],
"canRead": true,
"canWrite": true
},
"children": {
"pivot": {
"entry": {
"content": "pivot",
"isDirectory": false,
"timestamp": 1470841434964,
"lastEditor": "_no_user_",
"owners": [
"ROLE_CS_ROOT"
],
"readers": [
"ROLE_CS_ROOT"
],
"canRead": true,
"canWrite": true
}
},
"ui": {
"entry": {
"content": "ui",
"isDirectory": false,
"timestamp": 1471007733960,
"lastEditor": "admin",
"owners": [
"ROLE_CS_ROOT"
],
"readers": [
"ROLE_CS_ROOT"
],
"canRead": true,
"canWrite": true
}
}
}
},
"/absolute/path/to/file/2": {
"entry": {
"isDirectory": false,
"content": "some content",
"timestamp": 1470841434849,
"lastEditor": "AuditableHibernateContentService",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_CS_ROOT" ],
"canRead": true,
"canWrite": true
}
}
}
HTTP status code 400
Bad Request – The format of the request was invalid
HTTP status code 403
Forbidden – The user is allowed to see the entry, and asked for its content or children, but does not have read access to it
HTTP status code 404
Not Found – One of the entries does not exist or the user does not have the permissions to see it, and "throwNotFound" is True
A specialized version of the DELETE method that deletes atomically all the given entries.
If a path matches a directory, the directory all its sub-entries will also be deleted.
If the last element of a path is a wildcard (*), all the entries within the parent directory will be deleted, leaving an empty directory.
post /bulk/delete
A specialized version of the DELETE method that deletes atomically all the given entries.
If a path matches a directory, the directory all its sub-entries will also be deleted.
If the last element of a path is a wildcard (*), all the entries within the parent directory will be deleted, leaving an empty directory.
Query Parameters
- throwNotFound: (boolean - default: true)
When set to False, the "Not Found" errors are silently ignored.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"type": "array",
"description": "The paths of all the entries to delete",
"items": {
"type": "string"
}
}
}
Example:
[
"/absolute/path/2",
"/absolute/ab",
"/absolute/bc/*"
]
HTTP status code 200
Delete all the found entries.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Set<String>",
"type": "array",
"description": "The paths of all the entries that were not found",
"items": {
"type": "string"
}
}
Example:
[
"/absolute/source/path/to/file/1",
"/absolute/source/path/to/file/2",
"/absolute/source/path/to/folder/a"
]
HTTP status code 400
Bad Request – The path is wrongly formatted or the target path is an existing non-directory entry
HTTP status code 403
Forbidden – The user does not have write access to the entry to move or the target path
HTTP status code 404
Not Found – One of the entries does not exist or the user does not have the permissions to see it, and "throwNotFound" is True
A specialized version of the PUT method that tries to create or update multiple files atomically.
This method does not allow to create directories. The contents of all provided entries must be non null.
Either all the entries or none of them are updated. The "throwNotFound" mode for this operation doesn't exist, because "Not Found" error is never encountered.
post /bulk/put
A specialized version of the PUT method that tries to create or update multiple files atomically.
This method does not allow to create directories. The contents of all provided entries must be non null.
Either all the entries or none of them are updated. The "throwNotFound" mode for this operation doesn't exist, because "Not Found" error is never encountered.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"pathToContent": {
"type": "object",
"description": "A mapping from the entries' paths to their new content",
"patternProperties": {
".{1,}": { "type": "string" }
}
},
"owners": {
"type": "array",
"items": {
"type": "string",
"description": "A group of owners"
},
"description": "The groups of owners",
"default": "If the entry does not exist, the username of the person performing the request. If the entry exists, the existing owners."
},
"readers": {
"type": "array",
"items": {
"type": "string",
"description": "A group of readers"
},
"description": "The groups of readers",
"default": "If the entry does not exist, the username of the person performing the request. If the entry exists, the existing readers."
},
"overwrite": {
"type": "boolean",
"description": "If a file already exists, overwrites its content. Can only be specified if content is specified. A directory cannot be overwritten.",
"default": false
},
"recursive": {
"type": "boolean",
"description": " If one wants to create an entry and its parents. If false, then the parent must exist.",
"default": false
}
}
}
Example:
{
"pathToContent": {
"/absolute/path/0": "1",
"/absolute/path/2": "3",
"/absolute/path/4": "5"
},
"owners": [ "John" ],
"readers": [ "John" ],
"overwrite": true,
"recursive": true
}
HTTP status code 200
Success - ell the entries are updated
HTTP status code 400
Bad Request – One of the paths is wrongly formatted
HTTP status code 403
Forbidden – The user does not have write access to one of the resource, or the user is not allowed to use the given readers/owners permissions
HTTP status code 409
Conflict – An entry already exists in the content service at the path of one of the entries to put and overwriting is not allowed, or the user does not have write access to an entry and does not have read access to its parent directory
A specialized version of the POST method that tries to move atomically all the given entries.
For each underlying move, if the target path refers to an existing directory, the entry is moved with its current name to the existing directory. Otherwise, the entry is renamed and moved to the target path.
If intermediate directories are missing in the target paths, they will be created using the current user as the owner and reader.
post /bulk/move
A specialized version of the POST method that tries to move atomically all the given entries.
For each underlying move, if the target path refers to an existing directory, the entry is moved with its current name to the existing directory. Otherwise, the entry is renamed and moved to the target path.
If intermediate directories are missing in the target paths, they will be created using the current user as the owner and reader.
Query Parameters
- throwNotFound: (boolean - default: true)
When set to False, the "Not Found" errors are silently ignored.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"title": "Map<String,String>",
"type": "object",
"description": "A mapping from the source paths to the target paths",
"patternProperties": {
".{1,}": { "type": "string" }
}
}
}
Example:
{
"/absolute/source/path/to/file/1": "/absolute/target/path/to/file/1",
"/absolute/source/path/to/file/2": "/absolute/target/path/to/folder",
"/absolute/source/path/to/folder/a": "/absolute/source/path/to/folder/b"
}
HTTP status code 200
Move all the found entries.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Set<String>",
"type": "array",
"description": "The paths of all the entries that were not found",
"items": {
"type": "string"
}
}
Example:
[
"/absolute/source/path/to/file/1",
"/absolute/source/path/to/file/2",
"/absolute/source/path/to/folder/a"
]
HTTP status code 400
Bad Request – The path is wrongly formatted or the target path is an existing non-directory entry
HTTP status code 403
Forbidden – The user does not have write access to the entry to move or the target path
HTTP status code 404
Not Found – One of the entries does not exist or the user does not have the permissions to see it, and "throwNotFound" is True
/files
API to create, update, move or delete entries under a given path.
Retrieves the entry found at the given path. If the entry is a directory, lists all its accessible children recursively by default.
Deletes an entry from the content server.
If the path is a directory all its sub-entries will also be deleted.
If the last element of the path is a wildcard (*), all the entries within the parent directory will be deleted, leaving an empty directory.
Creates an entry at the given path or updates an existing one
Creates a new entry in the specified folder, and let the server specify its name.
get /files?path={path}
Retrieves the entry found at the given path. If the entry is a directory, lists all its accessible children recursively by default.
Path Parameters
- path: required (string)
The path to apply the operation to
Query Parameters
- recursive: (integer - default: -1)
If the path is a directory, the maximum depth at which to retrieve children. -1 means that all available children are retrieved, 0 means that only the directory itself is retrieved.
- includeContent: (boolean - default: true)
When set, the content of the retrieved file is included in the response.
HTTP status code 200
Request completed successfully
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"$ref": "#/definitions/contentTree"
},
"definitions": {
"entry": {
"type": "object",
"description": "Information describing an entry of the content server, independently from its path.",
"properties": {
"content": {
"type": "string",
"description": "The content of the file (null for a directory)"
},
"isDirectory": {
"type": "boolean",
"description": "Whether this entry is a directory or not"
},
"timestamp": {
"type": "number",
"description": "The UNIX timestamp of the last edit"
},
"lastEditor": {
"type": "string",
"description": "The username of the last editor"
},
"owners": {
"type": "array",
"items": {
"type": "string",
"description": "A group of owners"
},
"description": "The groups of owners"
},
"readers": {
"type": "array",
"items": {
"type": "string",
"description": "A group of readers"
},
"description": "The groups of readers"
},
"canRead": {
"type": "boolean",
"description": "Whether the current user has read access to the file"
},
"canWrite": {
"type": "boolean",
"description": "Whether the current user has write access to the file"
}
},
"required": ["isDirectory", "timestamp", "lastEditor", "owners", "readers", "canRead", "canWrite"],
"additionalProperties": false
},
"contentTree": {
"type": "object",
"description": "A content service subtree. Entries within the tree can have different owners/readers permissions and are not associated to an absolute path. Instead, the root entry of each child subtree is associated to a name within its parent directory.",
"properties": {
"entry": {
"$ref": "#/definitions/entry"
},
"children": {
"type": "object",
"description": "The children subtrees, each of them associated to the name of their root entry within its parent directory.",
"patternProperties": {
".{1,}": { "$ref": "#/definitions/contentTree" }
}
}
}
}
}
}
Example:
{
"entry": {
"isDirectory": true,
"timestamp": 1470841434848,
"lastEditor": "AuditableHibernateContentService",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_CS_ROOT" ],
"canRead": true,
"canWrite": true
},
"children": {
"pivot": {
"entry": {
"isDirectory": true,
"timestamp": 1470841434964,
"lastEditor": "_no_user_",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_CS_ROOT" ],
"canRead": true,
"canWrite": true
},
"children": {
"entitlements": {
"entry": {
"isDirectory": true,
"timestamp": 1470841434975,
"lastEditor": "_no_user_",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_CS_ROOT" ],
"canRead": true,
"canWrite": true
},
"children": { }
},
"config": {
"entry": {
"isDirectory": true,
"timestamp": 1470841434973,
"lastEditor": "_no_user_",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_CS_ROOT" ],
"canRead": true,
"canWrite": true
},
"children": { }
},
"i18n": {
"entry": {
"isDirectory": true,
"timestamp": 1471007715973,
"lastEditor": "_no_user_",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_CS_ROOT" ],
"canRead": true,
"canWrite": true
},
"children": { }
},
"apcs_version": {
"entry": {
"content": "2",
"isDirectory": false,
"timestamp": 1470841434969,
"lastEditor": "_no_user_",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_CS_ROOT" ],
"canRead": true,
"canWrite": true
}
}
}
},
"ui": {
"entry": {
"isDirectory": true,
"timestamp": 1471007733960,
"lastEditor": "admin",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_CS_ROOT" ],
"canRead": true,
"canWrite": true
},
"children": {
"bookmarks": {
"entry": {
"isDirectory": true,
"timestamp": 1471007733970,
"lastEditor": "admin",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_USER" ],
"canRead": true,
"canWrite": true
},
"children": { }
},
"settings": {
"entry": {
"isDirectory": true,
"timestamp": 1471007733976,
"lastEditor": "admin",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_USER" ],
"canRead": true,
"canWrite": true
},
"children": { }
},
"version": {
"entry": {
"content": "{\"package\":\"4.0.9\",\"contentServerApi\":\"0.1.0\"}",
"isDirectory": false,
"timestamp": 1471007733983,
"lastEditor": "admin",
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_USER" ],
"canRead": true,
"canWrite": true
}
}
}
}
}
}
HTTP status code 400
Bad Request – The format of the request was invalid
HTTP status code 403
Forbidden – The user is allowed to see the entry, and asked for its content or children, but does not have read access to it.
HTTP status code 404
Not Found – The entry does not exist, or the user does not have the permissions to see it.
delete /files?path={path}
Deletes an entry from the content server.
If the path is a directory all its sub-entries will also be deleted.
If the last element of the path is a wildcard (*), all the entries within the parent directory will be deleted, leaving an empty directory.
Path Parameters
- path: required (string)
The path to apply the operation to
HTTP status code 200
Success – Request completed successfully
HTTP status code 400
Bad Request – The format of the request was invalid
HTTP status code 403
Forbidden – The user is allowed to see the entry, but does not have write access to it.
HTTP status code 404
Not Found – The entry does not exist, or the user does not have the permissions to see it.
put /files?path={path}
Creates an entry at the given path or updates an existing one
Path Parameters
- path: required (string)
The path to apply the operation to
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "The content of the entry to create. If the file exists and this is not specified, only the permissions are updated"
},
"owners": {
"type": "array",
"items": {
"type": "string",
"description": "A group of owners"
},
"description": "The groups of owners",
"default": "If the entry does not exist, the username of the person performing the request. If the entry exists, the existing owners."
},
"readers": {
"type": "array",
"items": {
"type": "string",
"description": "A group of readers"
},
"description": "The groups of readers",
"default": "If the entry does not exist, the username of the person performing the request. If the entry exists, the existing readers."
},
"overwrite": {
"type": "boolean",
"description": "If a file already exists, overwrites its content. Can only be specified if content is specified. A directory cannot be overwritten.",
"default": false
},
"recursive": {
"type": "boolean",
"description": " If one wants to create an entry and its parents. If false, then the parent must exist.",
"default": false
}
}
}
Example:
{
"content": "bar",
"owners": [ "John" ],
"readers": [ "John" ],
"overwrite": true,
"recursive": true
}
HTTP status code 201
Created – Create or update completed successfully, and the entry has been stored.
HTTP status code 400
Bad Request – The format of the request was invalid, or the user tried to overwrite an existing directory.
HTTP status code 403
Forbidden - The entry exists but the user does not have write access to it, or the entry does not exist, but the user does not have access to its parent directory. Or the user tried to set disallowed owners/readers for the entry (The user must be part of at least one reader and owner role), or tried to change access permissions while not having write access to the entry.
HTTP status code 404
Not Found – The entry does not exist, or the user does not have the permissions to see it.
HTTP status code 409
Conflict – A entry already exists, and overwrite was not specified.
post /files?path={path}
Creates a new entry in the specified folder, and let the server specify its name.
Path Parameters
- path: required (string)
The path to apply the operation to
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "The content of the entry to create (null for a directory)."
},
"owners": {
"type": "array",
"items": {
"type": "string",
"description": "A group of owners"
},
"description": "The groups of owners",
"default": "The current username"
},
"readers": {
"type": "array",
"items": {
"type": "string",
"description": "A group of readers"
},
"description": "The groups of readers",
"default": "The current username"
}
}
}
Example:
{
"content": "bar",
"owners": [ "John" ],
"readers": [ "John" ]
}
HTTP status code 201
Created – Create or update completed successfully, and the entry has been stored. The LOCATION header contains the URI of the resource.
HTTP status code 400
Bad Request – The format of the request was invalid.
HTTP status code 403
Forbidden – The user does not have write access to the parent and has read access to the grand-parent directory. Or the user does not have the rights to set the given permissions.
A specialized version of the PUT method that only updates the permissions of the entry at the given path.
Updates the permissions of an existing entry
put /files?permissions=true
Updates the permissions of an existing entry
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"owners": {
"type": "array",
"items": {
"type": "string",
"description": "A group of owners"
},
"description": "The groups of owners",
"default": "The previous owners of the file."
},
"readers": {
"type": "array",
"items": {
"type": "string",
"description": "A group of readers"
},
"description": "The groups of readers",
"default": "The previous readers of the file."
}
}
}
Example:
{
"owners": [ "John", "Xavier" ],
"readers": [ "John" ]
}
HTTP status code 200
Success – The permissions were successfully updated
HTTP status code 400
Bad Request – The path is wrongly formatted
HTTP status code 403
Forbidden – The user is allowed to see the entry, but does not have write access to it: he cannot modify its permissions.
HTTP status code 404
Not Found – The file does not exist, or the user does not have the permissions to see the file (ie he does not have read access to its parent directory).
A specialized version of the POST method that moves an entry to another path
Moves an entry to a different path
post /files?move=true
Moves an entry to a different path
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"targetPath": {
"type": "string",
"description": "The target path to move the entry to"
}
},
"required": ["targetPath"]
}
Example:
{
"targetPath": "/bar"
}
HTTP status code 200
Success – The entry was successfully moved to the target path.
HTTP status code 400
Bad Request – The path is wrongly formatted or the target path is an existing non-directory entry
HTTP status code 403
Forbidden – The user does not have write access to the entry to move or the target path
HTTP status code 404
Not Found – The entry cannot be found
A specialized version of the POST method that imports a whole content service subtree at the given path in a single batch. If overwriting is allowed, conflicting entries in the content service (even directories as opposed to the putAll POST param) will be overwritten. The entries contained in the subtree to import can have different read/write permissions.
Import a whole content service subtree at the given path in a single batch.
This operation is atomic: either all the entries or none of them are imported in the content service.
post /files?import=true
Import a whole content service subtree at the given path in a single batch.
This operation is atomic: either all the entries or none of them are imported in the content service.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"contentTree": {
"$ref": "#definitions/contentTree"
},
"overwrite": {
"type": "boolean",
"description": "If an entry already exists, overwrites its content.",
"default": false
},
"recursive": {
"type": "boolean",
"description": "If one wants to create an entry and the parent does not exist, a false value will lead to an exception, while a true value will lead to the creation of the intermediate directories.",
"default": false
}
},
"definitions": {
"entry": {
"type": "object",
"description": "Basic information describing an entry of the content server, independently from its path.",
"properties": {
"content": {
"type": "string",
"description": "The content of the file (null for a directory)"
},
"isDirectory": {
"type": "boolean",
"description": "Whether this entry is a directory or not"
},
"owners": {
"type": "array",
"items": {
"type": "string",
"description": "A group of owners"
},
"description": "The groups of owners"
},
"readers": {
"type": "array",
"items": {
"type": "string",
"description": "A group of readers"
},
"description": "The groups of readers"
}
},
"required": ["isDirectory", "owner", "reader"],
"additionalProperties": false
},
"contentTree": {
"type": "object",
"description": "A content service subtree. Entries within the tree can have different owner/reader permissions and are not associated to an absolute path. Instead, the root entry of each child subtree is associated to a name within its parent directory.",
"properties": {
"entry": {
"$ref": "#/definitions/entry"
},
"children": {
"type": "object",
"description": "The children subtrees, each of them associated to the name of their root entry within its parent directory.",
"patternProperties": {
".{1,}": { "$ref": "#/definitions/contentTree" }
}
}
}
}
}
}
Example:
{
"contentTree": {
"entry": {
"isDirectory": true,
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_USER" ]
},
"children": {
"sub-directory": {
"entry": {
"isDirectory": true,
"owners": [ "ROLE_CS_ROOT" ],
"readers": [ "ROLE_USER" ]
},
"children": {
"file1": {
"entry": {
"isDirectory": false,
"owners": [ "ROLE_USER" ],
"readers": [ "ROLE_USER" ],
"content": "the first file content"
}
},
"file2": {
"entry": {
"isDirectory": false,
"owners": [ "ROLE_USER" ],
"readers": [ "ROLE_USER" ],
"content": "the second file content"
}
}
}
}
}
},
"recursive": false,
"overwrite": true
}
HTTP status code 200
Success – The subtree was successfully imported.
HTTP status code 400
Bad Request – One of the paths is wrongly formatted.
HTTP status code 403
Forbidden – The user does not have the required permissions for one or more of the entries to import.
HTTP status code 409
Conflict – For at least one of the entries in the subtree to import, an entry already exists at the given path in the content service and overwriting is not allowed.