swagger: '2.0'
info:
description: |
**Core API**
Provides access to the core features of Alfresco Content Services.
version: '1'
title: Alfresco Content Services REST API
basePath: /alfresco/api/-default-/public/alfresco/versions/1
securityDefinitions:
basicAuth:
type: basic
description: HTTP Basic Authentication
security:
- basicAuth: []
consumes:
- application/json
produces:
- application/json
tags:
- name: audit
description: Retrieve and clear audit entries
- name: actions
description: Retrieve and execute actions
- name: activities
description: Retrieve and manage activities
- name: comments
description: Retrieve and manage comments
- name: downloads
description: Create and manage downloads
- name: favorites
description: Retrieve and manage favorites
- name: networks
description: Retrieve and manage networks
- name: nodes
description: Retrieve and manage nodes
- name: people
description: Retrieve and manage people
- name: groups
description: Retrieve and manage groups
- name: preferences
description: Retrieve and manage preferences
- name: probes
description: Check readiness and liveness of the repository
- name: queries
description: Find nodes, sites, and people using a simple search term
- name: ratings
description: Retrieve and manage ratings
- name: renditions
description: Retrieve and manage file renditions
- name: shared-links
description: Retrieve and manage public shared links
- name: sites
description: Retrieve and manage sites
- name: storage-info
description: Storage information for content
- name: tags
description: Retrieve and manage tags
- name: categories
description: Retrieve and manage categories
- name: trashcan
description: Retrieve and manage deleted nodes
- name: versions
description: Retrieve and manage versions
parameters:
actionDefinitionIdParam:
name: actionDefinitionId
in: path
description: The identifier of an action definition.
required: true
type: string
nodeIdParam:
name: nodeId
in: path
description: The identifier of a node.
required: true
type: string
nodeIdWithAliasParam:
name: nodeId
in: path
description: |
The identifier of a node. You can also use one of these well-known aliases:
* -my-
* -shared-
* -root-
required: true
type: string
nodeParentIdParam:
name: nodeId
in: path
description: The identifier of a parent node.
required: true
type: string
nodeParentIdWithAliasParam:
name: nodeId
in: path
description: |
The identifier of a parent node. You can also use one of these well-known aliases:
* -my-
* -shared-
* -root-
required: true
type: string
nodeChildIdWithAliasParam:
name: nodeId
in: path
description: |
The identifier of a child node. You can also use one of these well-known aliases:
* -my-
* -shared-
* -root-
required: true
type: string
nodeSourceIdParam:
name: nodeId
in: path
description: The identifier of a source node.
required: true
type: string
nodeTargetIdParam:
name: nodeId
in: path
description: The identifier of a target node.
required: true
type: string
nodeFolderIdParam:
name: nodeId
in: path
description: The identifier of a folder node.
required: true
type: string
nodeMinimalEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about the node. The following optional fields can be requested:
* allowableOperations
* aspectNames
* association
* isLink
* isFavorite
* isDirectLinkEnabled
* isLocked
* path
* properties
* permissions
required: false
type: array
items:
type: string
collectionFormat: csv
nodeAssocMinimalEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about the node. The following optional fields can be requested:
* allowableOperations
* aspectNames
* isLink
* isFavorite
* isDirectLinkEnabled
* isLocked
* path
* properties
required: false
type: array
items:
type: string
collectionFormat: csv
nodeEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about the node. The following optional fields can be requested:
* allowableOperations
* association
* isLink
* isFavorite
* isDirectLinkEnabled
* isLocked
* path
* permissions
* definition
required: false
type: array
items:
type: string
collectionFormat: csv
groupEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about the group. The following optional fields can be requested:
* parentIds
* zones
* hasSubgroups
* description
required: false
type: array
items:
type: string
collectionFormat: csv
personMinimalEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about the person. The following optional fields can be requested:
* properties
* aspectNames
* capabilities
required: false
type: array
items:
type: string
collectionFormat: csv
tagEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about the tag. The following optional fields can be requested:
* count
required: false
type: array
items:
type: string
collectionFormat: csv
categoryEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about the category. The following optional fields can be requested:
* count
* path
required: false
type: array
items:
type: string
collectionFormat: csv
categoryEntryIncludePathParam:
name: include
in: query
description: |
Returns additional information about the category. The following optional fields can be requested:
* path
required: false
type: array
items:
type: string
collectionFormat: csv
sharedIdParam:
name: sharedId
in: path
description: The identifier of a shared link to a file.
required: true
type: string
sharedLinkEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about the shared link, the following optional fields can be requested:
* allowableOperations
* path
* properties
* isFavorite
* aspectNames
required: false
type: array
items:
type: string
collectionFormat: csv
renditionIdParam:
name: renditionId
in: path
description: The name of a thumbnail rendition, for example *doclib*, or *pdf*.
required: true
type: string
versionIdParam:
name: versionId
in: path
description: The identifier of a version, ie. version label, within the version history of a node.
required: true
type: string
versionMinimalEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about the version node. The following optional fields can be requested:
* properties
* aspectNames
required: false
type: array
items:
type: string
collectionFormat: csv
personIdParam:
name: personId
in: path
description: The identifier of a person.
required: true
type: string
groupIdParam:
name: groupId
in: path
description: The identifier of a group.
required: true
type: string
groupMemberIdParam:
name: groupMemberId
in: path
description: The identifier of a person or group.
required: true
type: string
siteIdParam:
name: siteId
in: path
description: The identifier of a site.
required: true
type: string
inviteeIdParam:
name: inviteeId
in: path
description: The invitee user name.
required: true
type: string
tagIdParam:
name: tagId
in: path
description: The identifier of a tag.
required: true
type: string
categoryIdParam:
name: categoryId
in: path
description: The identifier of a category.
required: true
type: string
networkIdParam:
name: networkId
in: path
description: The identifier of a network.
required: true
type: string
commentIdParam:
name: commentId
in: path
description: The identifier of a comment.
required: true
type: string
ratingIdParam:
name: ratingId
in: path
description: The identifier of a rating.
required: true
type: string
favoriteIdParam:
name: favoriteId
in: path
description: The identifier of a favorite.
required: true
type: string
skipCountParam:
name: skipCount
in: query
description: |
The number of entities that exist in the collection before those included in this list.
If not supplied then the default value is 0.
required: false
type: integer
minimum: 0
default: 0
omitTotalItemsParam:
name: omitTotalItems
in: query
description: |
A boolean to control if the response provides the total numbers of items in the collection.
If not supplied then the default value is false.
required: false
type: boolean
default: false
maxItemsParam:
name: maxItems
in: query
description: |
The maximum number of items to return in the list.
If not supplied then the default value is 100.
required: false
type: integer
minimum: 1
default: 100
fieldsParam:
name: fields
in: query
description: |
A list of field names.
You can use this parameter to restrict the fields
returned within a response if, for example, you want to save on overall bandwidth.
The list applies to a returned individual
entity or entries within a collection.
If the API method also supports the **include**
parameter, then the fields specified in the **include**
parameter are returned in addition to those specified in the **fields** parameter.
required: false
type: array
items:
type: string
collectionFormat: csv
orderByParam:
name: orderBy
in: query
description: |
A string to control the order of the entities returned in a list. You can use the **orderBy** parameter to
sort the list by one or more fields.
Each field has a default sort order, which is normally ascending order. Read the API method implementation notes
above to check if any fields used in this method have a descending default search order.
To sort the entities in a specific order, you can use the **ASC** and **DESC** keywords for any field.
required: false
type: array
items:
type: string
collectionFormat: csv
whereParam:
name: where
in: query
description: A string to restrict the returned objects by using a predicate.
required: false
type: string
includeSourceParam:
name: includeSource
in: query
description: Also include **source** (in addition to **entries**) with folder information on **nodeId**
required: false
type: boolean
relationsParam:
name: relations
in: query
description: Use the relations parameter to include one or more related entities in a single response.
required: false
type: array
items:
type: string
collectionFormat: csv
attachmentParam:
name: attachment
in: query
description: |
**true** enables a web browser to download the file as an attachment.
**false** means a web browser may preview the file in a new tab or window.
You can only set this parameter to **false** if the content type of the file is in the supported list;
for example, certain image files and PDF files.
If the content type is not supported for preview, then a value of **false** is ignored, and
the attachment will be returned in the response.
required: false
default: true
type: boolean
ifModifiedSinceHeader:
name: If-Modified-Since
in: header
description: |
Only returns the content if it has been modified since the date provided.
Use the date format defined by HTTP. For example, `Wed, 09 Mar 2016 16:56:34 GMT`.
required: false
type: string
format: date-time
RangeHeader:
name: Range
in: header
description: |
The Range header indicates the part of a document that the server should return.
Single part request supported, for example: bytes=1-10.
required: false
type: string
format: bytes
downloadIdParam:
name: downloadId
in: path
description: The identifier of a download node.
required: true
type: string
favoriteEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about favorites, the following optional fields can be requested:
* path (note, this only applies to files and folders)
* properties
* allowableOperations
required: false
type: array
items:
type: string
enum:
- path
- properties
- allowableOperations
collectionFormat: csv
auditApplicationIdParam:
name: auditApplicationId
in: path
description: The identifier of an audit application.
required: true
type: string
auditApplicationIncludeParam:
name: include
in: query
description: |
Also include the current minimum and/or maximum audit entry ids for the application. The following optional fields can be requested:
* max
* min
required: false
type: array
items:
type: string
collectionFormat: csv
auditEntryIdParam:
name: auditEntryId
in: path
description: The identifier of an audit entry.
required: true
type: string
auditMinimalEntryIncludeParam:
name: include
in: query
description: |
Returns additional information about the audit entry. The following optional fields can be requested:
* values
required: false
type: array
items:
type: string
collectionFormat: csv
contentPropNameParam:
name: contentPropName
in: path
description: |
The namespace-prefix property name of content.
Delimiter between namespace-prefix and property name can be either colon (':') or underscore ('_') character (e.g., 'cm:content' or 'cm_content').
required: true
type: string
parameterConstraintNameParam:
name: parameterConstraintName
in: path
required: true
description: |
Action parameter constraint name to be returned in the response.
type: string
paths:
'/nodes/{nodeId}/comments':
get:
tags:
- comments
summary: List comments
description: Gets a list of comments for the node **nodeId**, sorted chronologically with the newest comment first.
operationId: listComments
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/CommentPaging'
'400':
description: |
Invalid parameter: **nodeId** exists but does not identify a file or a folder,
or the value of **maxItems** is invalid, or the value of **skipCount** is invalid
'401':
description: Authentication failed
'403':
description: User does not have permission read comments on the node
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
tags:
- comments
summary: Create a comment
description: |
Creates a comment on node **nodeId**. You specify the comment in a JSON body like this:
```JSON
{
"content": "This is a comment"
}
```
**Note:** You can create more than one comment by
specifying a list of comments in the JSON body like this:
```JSON
[
{
"content": "This is a comment"
},
{
"content": "This is another comment"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createComment
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: commentBodyCreate
description: The comment text. Note that you can also provide a list of comments.
required: true
schema:
$ref: '#/definitions/CommentBody'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/CommentEntry'
'400':
description: |
Invalid parameter: **commentBodyCreate** is invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to create a comment
'404':
description: |
**nodeId** does not exist
'405':
description: Cannot comment on a node of this type
'409':
description: |
**nodeId** is locked and you are not the lock owner
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/comments/{commentId}':
put:
tags:
- comments
summary: Update a comment
description: Updates an existing comment **commentId** on node **nodeId**.
operationId: updateComment
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/commentIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: commentBodyUpdate
description: The JSON representing the comment to be updated.
required: true
schema:
$ref: '#/definitions/CommentBody'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/CommentEntry'
'400':
description: |
Invalid parameter: **commentBodyUpdate** is invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to update a comment
'404':
description: |
**nodeId** or **commentId** does not exist
'409':
description: |
**nodeId** is locked and you are not the lock owner
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
tags:
- comments
summary: Delete a comment
description: Deletes the comment **commentId** from node **nodeId**.
operationId: deleteComment
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/commentIdParam'
responses:
'204':
description: Successful response
'401':
description: Authentication failed
'403':
description: User does not have permission to delete a comment
'404':
description: |
**nodeId** or **commentId** does not exist
'409':
description: |
**nodeId** is locked and you are not the lock owner
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/ratings':
get:
tags:
- ratings
summary: List ratings
description: Gets a list of ratings for node **nodeId**.
operationId: listRatings
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/RatingPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
tags:
- ratings
summary: Create a rating
description: Create a rating for the node with identifier **nodeId**
operationId: createRating
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: ratingBodyCreate
description: |
For "myRating" the type is specific to the rating scheme, boolean for the likes and an integer for the fiveStar.
For example, to "like" a file the following body would be used:
```JSON
{
"id": "likes",
"myRating": true
}
```
required: true
schema:
$ref: '#/definitions/RatingBody'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/RatingEntry'
'400':
description: |
Invalid parameter: **ratingBodyCreate** is invalid
'401':
description: Authentication failed
'404':
description: |
**nodeId** does not exist
'405':
description: Cannot rate a node of this type
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/ratings/{ratingId}':
get:
tags:
- ratings
summary: Get a rating
description: Get the specific rating **ratingId** on node **nodeId**.
produces:
- application/json
operationId: getRating
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/ratingIdParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/RatingEntry'
'400':
description: |
Invalid parameter: unknown rating scheme specified
'401':
description: Authentication failed
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
tags:
- ratings
summary: Delete a rating
description: Deletes rating **ratingId** from node **nodeId**.
operationId: deleteRating
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/ratingIdParam'
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: unknown rating scheme specified
'401':
description: Authentication failed
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/tags':
get:
tags:
- tags
summary: List tags for a node
description: Gets a list of tags for node **nodeId**.
operationId: listTagsForNode
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/TagPaging'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: User does not have permission to read tags on the node
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
tags:
- tags
summary: Create a tag for a node
description: |
Creates a tag on the node **nodeId**. You specify the tag in a JSON body like this:
```JSON
{
"tag":"test-tag-1"
}
```
**Note:** You can create more than one tag by
specifying a list of tags in the JSON body like this:
```JSON
[
{
"tag":"test-tag-1"
},
{
"tag":"test-tag-2"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createTagForNode
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: tagBodyCreate
description: The new tag
required: true
schema:
$ref: '#/definitions/TagBody'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/TagEntry'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: User does not have permission to create tags on the node
'404':
description: |
**nodeId** does not exist
'405':
description: Cannot tag a node of this type
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/tags/{tagId}':
delete:
tags:
- tags
summary: Delete a tag from a node
description: Deletes tag **tagId** from node **nodeId**.
operationId: deleteTagFromNode
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/tagIdParam'
responses:
'204':
description: Successful response
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: User does not have permission to delete the tag
'404':
description: |
**nodeId** or **tagId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/category-links':
get:
x-alfresco-since: "7.4"
tags:
- categories
summary: List categories that a node is assigned to
description: |
**Note:** this endpoint is available in Alfresco 7.4 and newer versions.
Gets a list of categories for node **nodeId**.
operationId: listCategoriesForNode
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/categoryEntryIncludePathParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/CategoryPaging'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: User does not have permission to read categories on the node
'404':
description: |
**nodeId** does not exist
'422':
description: Invalid type for node with id **nodeId**
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
x-alfresco-since: "7.4"
tags:
- categories
summary: Assign a node to a category
description: |
**Note:** this endpoint is available in Alfresco 7.4 and newer versions.
Assign the node **nodeId** to a category. You specify the category ID in a JSON body like this:
```JSON
{
"categoryId": "01234567-89ab-cdef-0123-456789abcdef"
}
```
**Note:** You can assign the node to more than one category by specifying a list of categories in the JSON body like this:
```JSON
[
{
"categoryId": "01234567-89ab-cdef-0123-456789abcdef"
},
{
"categoryId": "89abcdef-0123-4567-89ab-cdef01234567"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createCategoryLinkForNode
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/categoryEntryIncludePathParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: categoryLinkBodyCreate
description: The new category link
required: true
schema:
$ref: '#/definitions/CategoryLinkBody'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/CategoryEntry'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: User does not have permission to assign the node to a category
'404':
description: |
**nodeId** or **categoryId** does not exist
'422':
description: Cannot assign a node of this type to a category
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/category-links/{categoryId}':
delete:
x-alfresco-since: "7.4"
tags:
- categories
summary: Unassign a node from a category
description: |
**Note:** this endpoint is available in Alfresco 7.4 and newer versions.
Removes the node **nodeId** from the category **categoryId**.
operationId: deleteCategoryLinkFromNode
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/categoryIdParam'
responses:
'204':
description: Successful response
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: User does not have permission to remove the node from the category
'404':
description: |
**nodeId** or **categoryId** does not exist
'422':
description: Invalid type for node with id **nodeId**
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}':
get:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Get a node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Get information for node **nodeId**.
You can use the **include** parameter to return additional information.
operationId: getNode
parameters:
- $ref: '#/parameters/nodeIdWithAliasParam'
- $ref: '#/parameters/nodeEntryIncludeParam'
- name: relativePath
in: query
description: |
A path relative to the **nodeId**. If you set this,
information is returned on the node resolved by this path.
required: false
type: string
- $ref: '#/parameters/fieldsParam'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format
'401':
description: Authentication failed
'403':
description: Current user does not have permission to retrieve **nodeId**
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Update a node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Updates the node **nodeId**. For example, you can rename a file or folder:
```JSON
{
"name":"My new name"
}
```
You can also set or update one or more properties:
```JSON
{
"properties":
{
"cm:title":"Folder title"
}
}
```
You can update multi-value properties of a node which supports properties of type multiple.
```JSON
{
"name":"My Other Folder",
"nodeType":"custom:destination",
"properties":
{
"cm:title":"Folder title",
"cm:description":"This is an important folder",
"custom:locations": [
"location NewX",
"location NewY"
]
}
}
```
**Note:** setting properties of type d:content and d:category are not supported.
**Note:** if you want to add or remove aspects, then you must use **GET /nodes/{nodeId}** first to get the complete set of *aspectNames*.
You can add (or remove) *locallySet* permissions, if any, in addition to any inherited permissions.
You can also optionally disable (or re-enable) inherited permissions via *isInheritanceEnabled* flag:
```JSON
{
"permissions":
{
"isInheritanceEnabled": false,
"locallySet":
[
{"authorityId": "GROUP_special", "name": "Read", "accessStatus":"DENIED"},
{"authorityId": "testuser", "name": "Contributor", "accessStatus":"ALLOWED"}
]
}
}
```
**Note:** if you want to add or remove locally set permissions then you must use **GET /nodes/{nodeId}** first to get the complete set of *locallySet* permissions.
**Note:** Currently there is no optimistic locking for updates, so they are applied in "last one wins" order.
operationId: updateNode
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/nodeEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: nodeBodyUpdate
description: The node information to update.
required: true
schema:
$ref: '#/definitions/NodeBodyUpdate'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeEntry'
'400':
description: |
Invalid parameter: the update request is invalid or **nodeId** is not a valid format or **nodeBodyUpdate** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to update **nodeId**
'404':
description: |
**nodeId** does not exist
'409':
description: Updated name clashes with an existing node in the current parent folder
'422':
description: Model integrity exception including a file name containing invalid characters
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Delete a node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Deletes the node **nodeId**.
If **nodeId** is a folder, then its children are also deleted.
Deleted nodes move to the trashcan unless the **permanent** query parameter is **true** and the current user is the owner of the node or an admin.
Deleting a node deletes it from its primary parent and also from any secondary parents. Peer associations are also deleted, where the deleted
node is either a source or target of an association. This applies recursively to any hierarchy of primary children of the deleted node.
**Note:** If the node is not permanently deleted, and is later successfully restored to its former primary parent, then the primary
child association is restored. This applies recursively for any primary children. No other secondary child associations or
peer associations are restored for any of the nodes in the primary parent-child hierarchy of restored nodes, regardless of whether the original
associations were to nodes inside or outside the restored hierarchy.
operationId: deleteNode
parameters:
- $ref: '#/parameters/nodeIdParam'
- name: permanent
in: query
description: |
If **true** then the node is deleted permanently, without moving to the trashcan.
Only the owner of the node or an admin can permanently delete the node.
required: false
type: boolean
default: false
produces:
- application/json
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **nodeId** is not a valid format
'401':
description: Authentication failed
'403':
description: Current user does not have permission to delete **nodeId**
'404':
description: |
**nodeId** does not exist
'409':
description: |
**nodeId** is locked and cannot be deleted
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/children':
get:
x-alfresco-since: "5.2"
tags:
- nodes
summary: List node children
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of children of the parent node **nodeId**.
Minimal information for each child is returned by default.
You can use the **include** parameter to return additional information.
The list of child nodes includes primary children and secondary children, if there are any.
You can use the **include** parameter (include=association) to return child association details
for each child, including the **assocTyp**e and the **isPrimary** flag.
The default sort order for the returned list is for folders to be sorted before files, and by ascending name.
You can override the default using **orderBy** to specify one or more fields to sort by. The default order is always ascending, but
you can use an optional **ASC** or **DESC** modifier to specify an ascending or descending sort order.
For example, specifying ```orderBy=name DESC``` returns a mixed folder/file list in descending **name** order.
You can use any of the following fields to order the results:
* isFolder
* name
* mimeType
* nodeType
* sizeInBytes
* modifiedAt
* createdAt
* modifiedByUser
* createdByUser
operationId: listNodeChildren
parameters:
- $ref: '#/parameters/nodeIdWithAliasParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- name: where
in: query
description: |
Optionally filter the list. Here are some examples:
* ```where=(isFolder=true)```
* ```where=(isFile=true)```
* ```where=(nodeType='my:specialNodeType')```
* ```where=(nodeType='my:specialNodeType INCLUDESUBTYPES')```
* ```where=(isPrimary=true)```
* ```where=(assocType='my:specialAssocType')```
* ```where=(isPrimary=false and assocType='my:specialAssocType')```
required: false
type: string
- $ref: '#/parameters/nodeMinimalEntryIncludeParam'
- name: relativePath
in: query
description: Return information on children in the folder resolved by this path. The path is relative to **nodeId**.
required: false
type: string
- name: includeSource
in: query
description: Also include **source** in addition to **entries** with folder information on the parent node – either the specified parent **nodeId**, or as resolved by **relativePath**.
required: false
type: boolean
- $ref: '#/parameters/fieldsParam'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeChildAssociationPaging'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, **nodeId** is not a folder or **orderBy** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to retrieve children of **nodeId**
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Create a node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Create a node and add it as a primary child of node **nodeId**.
This endpoint supports both JSON and multipart/form-data (file upload).
**Using multipart/form-data**
Use the **filedata** field to represent the content to upload, for example, the following curl command will
create a node with the contents of test.txt in the test user's home folder.
```curl -utest:test -X POST host:port/alfresco/api/-default-/public/alfresco/versions/1/nodes/-my-/children -F filedata=@test.txt```
You can use the **name** field to give an alternative name for the new file.
You can use the **nodeType** field to create a specific type. The default is cm:content.
You can use the **renditions** field to create renditions (e.g. doclib) asynchronously upon upload.
Also, as requesting rendition is a background process,
any rendition failure (e.g. No transformer is currently available) will not fail the whole upload and has the potential to silently fail.
Use **overwrite** to overwrite an existing file, matched by name. If the file is versionable,
the existing content is replaced. It is not possible to overwrite an existing file which is not versionable.
When you overwrite existing content, you can set the **majorVersion** boolean field to **true** to indicate a major version
should be created. The default for **majorVersion** is **false**.
When you overwrite existing content, you can use the **comment** field to add a version comment that appears in the
version history. This also enables versioning of this node, if it is not already versioned.
You can set the **autoRename** boolean field to automatically resolve name clashes. If there is a name clash, then
the API method tries to create a unique name using an integer suffix.
You can use the **relativePath** field to specify the folder structure to create relative to the node **nodeId**.
Folders in the **relativePath** that do not exist are created before the node is created.
Any other field provided will be treated as a property to set on the newly created node.
**Note:** setting properties of type d:content and d:category are not supported.
**Note:** When creating a new node using multipart/form-data by default versioning is enabled and set to MAJOR Version.
Since Alfresco 6.2.3 **versioningEnabled** flag was introduced offering better control over the new node Versioning.
| **versioningEnabled** | **majorVersion** | **Version Type** |
|-----------------------|------------------|------------------|
| unset | unset | MAJOR |
| unset | true | MAJOR |
| unset | false | MINOR |
| true | unset | MAJOR |
| true | true | MAJOR |
| true | false | MINOR |
| false | true | Unversioned |
| false | false | Unversioned |
| false | true | Unversioned |
**Using JSON**
You must specify at least a **name** and **nodeType**. For example, to create a folder:
```JSON
{
"name":"My Folder",
"nodeType":"cm:folder"
}
```
You can create an empty file like this:
```JSON
{
"name":"My text file.txt",
"nodeType":"cm:content"
}
```
You can update binary content using the ```PUT /nodes/{nodeId}``` API method.
You can create a folder, or other node, inside a folder hierarchy:
```JSON
{
"name":"My Special Folder",
"nodeType":"cm:folder",
"relativePath":"X/Y/Z"
}
```
The **relativePath** specifies the folder structure to create relative to the node **nodeId**. Folders in the
**relativePath** that do not exist are created before the node is created.
You can set properties when you create a new node:
```JSON
{
"name":"My Other Folder",
"nodeType":"cm:folder",
"properties":
{
"cm:title":"Folder title",
"cm:description":"This is an important folder"
}
}
```
You can set multi-value properties when you create a new node which supports properties of type multiple.
```JSON
{
"name":"My Other Folder",
"nodeType":"custom:destination",
"properties":
{
"cm:title":"Folder title",
"cm:description":"This is an important folder",
"custom:locations": [
"location X",
"location Y"
]
}
}
```
Any missing aspects are applied automatically. For example, **cm:titled** in the JSON shown above. You can set aspects
explicitly, if needed, using an **aspectNames** field.
**Note:** setting properties of type d:content and d:category are not supported.
You can also optionally disable (or enable) inherited permissions via *isInheritanceEnabled* flag:
```JSON
{
"permissions":
{
"isInheritanceEnabled": false,
"locallySet":
[
{"authorityId": "GROUP_special", "name": "Read", "accessStatus":"DENIED"},
{"authorityId": "testuser", "name": "Contributor", "accessStatus":"ALLOWED"}
]
}
}
```
Typically, for files and folders, the primary children are created within the parent folder using the default "cm:contains" assocType.
If the content model allows then it is also possible to create primary children with a different assoc type. For example:
```JSON
{
"name":"My Node",
"nodeType":"my:specialNodeType",
"association":
{
"assocType":"my:specialAssocType"
}
}
```
Additional associations can be added after creating a node. You can also add associations at the time the node is created. This is
required, for example, if the content model specifies that a node has mandatory associations to one or more existing nodes. You can optionally
specify an array of **secondaryChildren** to create one or more secondary child associations, such that the newly created node acts as a parent node.
You can optionally specify an array of **targets** to create one or more peer associations such that the newly created node acts as a source node.
For example, to associate one or more secondary children at time of creation:
```JSON
{
"name":"My Folder",
"nodeType":"cm:folder",
"secondaryChildren":
[ {"childId":"abcde-01234-...", "assocType":"my:specialChildAssocType"} ]
}
```
For example, to associate one or more targets at time of creation:
```JSON
{
"name":"My Folder",
"nodeType":"cm:folder",
"targets":
[ {"targetId":"abcde-01234-...", "assocType":"my:specialPeerAssocType"} ]
}
```
**Note:** You can create more than one child by
specifying a list of nodes in the JSON body. For example, the following JSON
body creates two folders inside the specified **nodeId**, if the **nodeId** identifies
a folder:
```JSON
[
{
"name":"My Folder 1",
"nodeType":"cm:folder"
},
{
"name":"My Folder 2",
"nodeType":"cm:folder"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
**Note:** When creating a new node using JSON by default versioning is disabled.
Since Alfresco 6.2.3 **versioningEnabled** flag was introduced offering better control over the new node Versioning.
| **versioningEnabled** | **majorVersion** | **Version Type** |
|-----------------------|------------------|------------------|
| unset | unset | Unversioned |
| unset | true | MAJOR |
| unset | false | MINOR |
| true | unset | MAJOR |
| true | true | MAJOR |
| true | false | MINOR |
| false | true | Unversioned |
| false | false | Unversioned |
| false | true | Unversioned |
operationId: createNode
parameters:
- $ref: '#/parameters/nodeIdWithAliasParam'
- name: autoRename
in: query
description: If true, then a name clash will cause an attempt to auto rename by finding a unique name using an integer suffix.
required: false
type: boolean
- name: majorVersion
in: query
description: If true, then created node will be version *1.0 MAJOR*. If false, then created node will be version *0.1 MINOR*.
required: false
type: boolean
- name: versioningEnabled
in: query
description: If true, then created node will be versioned. If false, then created node will be unversioned and auto-versioning disabled.
required: false
type: boolean
- $ref: '#/parameters/nodeEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: nodeBodyCreate
description: The node information to create.
required: true
schema:
$ref: '#/definitions/NodeBodyCreate'
consumes:
- application/json
- multipart/form-data
produces:
- application/json
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/NodeEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format or **nodeBodyCreate** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to create children of **nodeId**
'404':
description: |
**nodeId** or **renditionId** does not exist
'409':
description: New name clashes with an existing node in the current parent folder
'413':
description: Content exceeds individual file size limit configured for the network or system
'415':
description: Content Type is not supported
'422':
description: Model integrity exception including a file name containing invalid characters
'507':
description: Content exceeds overall storage quota limit configured for the network or system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/copy':
post:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Copy a node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Copies the node **nodeId** to the parent folder node **targetParentId**. You specify the **targetParentId** in the request body.
The new node has the same name as the source node unless you specify a new **name** in the request body.
If the source **nodeId** is a folder, then all of its children are also copied.
If the source **nodeId** is a file, it's properties, aspects and tags are copied, it's ratings, comments and locks are not.
operationId: copyNode
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/nodeEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: nodeBodyCopy
description: The targetParentId and, optionally, a new name which should include the file extension.
required: true
schema:
$ref: '#/definitions/NodeBodyCopy'
consumes:
- application/json
produces:
- application/json
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/NodeEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format or **nodeBodyCopy** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to copy **nodeId**
'404':
description: |
**nodeId** does not exist
'409':
description: New name clashes with an existing node in the destination parent folder
'422':
description: Model integrity exception including a file name containing invalid characters
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/lock':
post:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Lock a node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Places a lock on node **nodeId**.
**Note:** you can only lock files. More specifically, a node can only be locked if it is
of type `cm:content` or a subtype of `cm:content`.
The lock is owned by the current user, and prevents other users or processes from making updates to the node until the lock is released.
If the **timeToExpire** is not set or is zero, then the lock never expires. Otherwise, the **timeToExpire** is the number of seconds before the lock expires.
When a lock expires, the lock is released.
If the node is already locked, and the user is the lock owner, then the lock is renewed with the new **timeToExpire**.
By default, a lock is applied that allows the owner to update or delete the node.
You can use **type** to change the lock type to one of the following:
* **ALLOW_OWNER_CHANGES** (default) changes to the node can be made only by the lock owner. This enum is the same value as the deprecated WRITE_LOCK described in `org.alfresco.service.cmr.lock.LockType` in the Alfresco Public Java API. This is the default value.
* **FULL** no changes by any user are allowed. This enum is the same value as the deprecated READ_ONLY_LOCK described in `org.alfresco.service.cmr.lock.LockType` in the Alfresco Public Java API.
By default, a lock is persisted in the database. You can create a volatile in-memory lock by setting the **lifetime** property to EPHEMERAL.
You might choose use EPHEMERAL locks, for example, if you are taking frequent short-term locks that you don't need
to be kept over a restart of the repository. In this case you don't need the
overhead of writing the locks to the database.
If a lock on the node cannot be taken, then an error is returned.
operationId: lockNode
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/nodeEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: nodeBodyLock
description: Lock details.
required: true
schema:
$ref: '#/definitions/NodeBodyLock'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or **nodeBodyLock** is invalid,
or a lock was attempted on a node that is not a file
'401':
description: Authentication failed
'403':
description: |
Current user does not have permission to lock **nodeId**
'404':
description: |
**nodeId** does not exist
'422':
description: |
**nodeId** could not be locked
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/unlock':
post:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Unlock a node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Deletes a lock on node **nodeId**.
The current user must be the owner of the locks or have admin rights, otherwise an error is returned.
If a lock on the node cannot be released, then an error is returned.
operationId: unlockNode
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/nodeEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format
'401':
description: Authentication failed
'403':
description: |
Current user does not have permission to unlock **nodeId**
'404':
description: |
**nodeId** does not exist
'422':
description: |
**nodeId** could not be unlocked
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/move':
post:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Move a node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Move the node **nodeId** to the parent folder node **targetParentId**.
The **targetParentId** is specified in the in request body.
The moved node retains its name unless you specify a new **name** in the request body.
If the source **nodeId** is a folder, then its children are also moved.
The move will effectively change the primary parent.
operationId: moveNode
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/nodeEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: nodeBodyMove
description: The targetParentId and, optionally, a new name which should include the file extension.
required: true
schema:
$ref: '#/definitions/NodeBodyMove'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or **targetParentId** is not a folder,
or **nodeBodyMove** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to move **nodeId**
'404':
description: |
**nodeId** does not exist
'409':
description: New name clashes with an existing node in the destination parent folder
'422':
description: Model integrity exception including a file name containing invalid characters
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/content':
get:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Get node content
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the content of the node with identifier **nodeId**.
operationId: getNodeContent
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/attachmentParam'
- $ref: '#/parameters/ifModifiedSinceHeader'
- $ref: '#/parameters/RangeHeader'
produces:
- application/octet-stream
responses:
'200':
description: Successful response
schema:
type: file
'206':
description: Partial Content
'304':
description: Content has not been modified since the date provided in the If-Modified-Since header
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Current user does not have permission to retrieve content of **nodeId**
'404':
description: |
**nodeId** does not exist
'412':
description: |
Content is archived and is inaccessible
'416':
description: |
Range Not Satisfiable
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Update node content
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Updates the content of the node with identifier **nodeId**.
The request body for this endpoint can be any text or binary stream.
The **majorVersion** and **comment** parameters can be used to control versioning behaviour. If the content is versionable,
a new minor version is created by default.
Optionally a new **name** parameter can also be specified that must be unique within the parent folder. If specified and valid then this
will rename the node. If invalid then an error is returned and the content is not updated.
**Note:** This API method accepts any content type, but for testing with this tool text based content can be provided.
This is because the OpenAPI Specification does not allow a wildcard to be provided or the ability for
tooling to accept an arbitrary file.
operationId: updateNodeContent
parameters:
- $ref: '#/parameters/nodeIdParam'
- name: majorVersion
in: query
description: |
If **true**, create a major version.
Setting this parameter also enables versioning of this node, if it is not already versioned.
required: false
type: boolean
default: false
- name: comment
in: query
description: |
Add a version comment which will appear in version history.
Setting this parameter also enables versioning of this node, if it is not already versioned.
required: false
type: string
- name: name
in: query
description: |
Optional new name. This should include the file extension.
The name must not contain spaces or the following special characters: * " < > \ / ? : and |.
The character `.` must not be used at the end of the name.
required: false
type: string
pattern: "^(?!(.*[\\\"\\*\\\\\\>\\<\\?\\/\\:\\|]+.*)|(.*[\\.]?.*[\\.]+$)|(.*[ ]+$))"
- $ref: '#/parameters/nodeEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: contentBodyUpdate
description: The binary content
required: true
schema:
type: string
format: binary
produces:
- application/json
consumes:
- application/octet-stream
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Current user does not have permission to update **nodeId**
'404':
description: |
**nodeId** does not exist
'409':
description: Optional new name clashes with an existing node in the current parent folder
'413':
description: Content exceeds individual file size limit (configured for network/system)
'422':
description: Model integrity exception including a file name containing invalid characters
'507':
description: Content exceeds overall storage quota limit configured for the network/system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/request-direct-access-url':
post:
x-alfresco-since: "7.1.0"
tags:
- nodes
summary: Generate a direct access content URL
description: |
**Note:** this endpoint is available in Alfresco 7.1 and newer versions.
Generate a direct access content url for the given **nodeId**.
operationId: requestNodeDirectAccessUrl
parameters:
- $ref: '#/parameters/nodeIdParam'
- in: body
name: requestContentUrlBodyCreate
description: |
Direct Access URL options and flags.
Note: It is up to the actual ContentStore implementation if it can fulfil this
request or not.
The **attachment** flag controls the download method of the generated URL. It defaults
to **true**, meaning the value for the Content Disposition response header will be **attachment**.
**true** enables a web browser to download the file as an attachment.
**false** means a web browser may preview the file in a new tab or window.
You can only set this parameter to **false** if the content type of the file is in the supported list;
for example, certain image files and PDF files.
If the content type is not supported for preview, then a value of **false** is ignored, and
the attachment will be returned in the response.
required: false
schema:
$ref: '#/definitions/DirectAccessUrlBodyCreate'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/DirectAccessUrlEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** does not exist
'412':
description: |
Content is archived and is inaccessible
'501':
description: The actual ContentStore implementation can't fulfil this request
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/renditions':
post:
x-alfresco-since: "5.2"
tags:
- renditions
summary: Create rendition
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
An asynchronous request to create a rendition for file **nodeId**.
The rendition is specified by name **id** in the request body:
```JSON
{
"id":"doclib"
}
```
Multiple names may be specified as a comma separated list or using a list format:
```JSON
[
{
"id": "doclib"
},
{
"id": "avatar"
}
]
```
operationId: createRendition
parameters:
- $ref: '#/parameters/nodeIdParam'
- in: body
name: renditionBodyCreate
description: The rendition "id".
required: true
schema:
$ref: '#/definitions/RenditionBodyCreate'
consumes:
- application/json
responses:
'202':
description: Request accepted
'400':
description: |
Invalid parameter: **nodeId** is not a valid format or is not a file
or **renditionBodyCreate** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **renditionId** does not exist
'409':
description: All requested renditions already exist
'501':
description: Renditions/thumbnails are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
get:
x-alfresco-since: "5.2"
tags:
- renditions
summary: List renditions
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of the rendition information for each rendition of the the file **nodeId**, including the rendition id.
Each rendition returned has a **status**: CREATED means it is available to view or download, NOT_CREATED means the rendition can be requested.
You can use the **where** parameter to filter the returned renditions by **status**. For example, the following **where**
clause will return just the CREATED renditions:
```
(status='CREATED')
```
operationId: listRenditions
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/whereParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/RenditionPaging'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, is not a file, or **where** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/renditions/{renditionId}':
get:
x-alfresco-since: "5.2"
tags:
- renditions
summary: Get rendition information
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the rendition information for **renditionId** of file **nodeId**.
operationId: getRendition
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/renditionIdParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/RenditionEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file, or **renditionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **renditionId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "7.1.1"
tags:
- renditions
summary: Delete rendition
description: |
**Note:** this endpoint is available in Alfresco 7.1.1 and newer versions.
Delete the rendition identified by **renditionId** of **nodeId**.
If the rendition is successfully deleted then the content for that rendition node
will be cleared.
operationId: deleteRendition
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/renditionIdParam'
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **nodeId** is not a valid format or **renditionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to delete the rendition
'404':
description: |
**nodeId** or **renditionId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/renditions/{renditionId}/content':
get:
x-alfresco-since: "5.2"
tags:
- renditions
summary: Get rendition content
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the rendition content for **renditionId** of file **nodeId**.
operationId: getRenditionContent
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/renditionIdParam'
- $ref: '#/parameters/attachmentParam'
- $ref: '#/parameters/ifModifiedSinceHeader'
- $ref: '#/parameters/RangeHeader'
- name: placeholder
in: query
description: |
If **true** and there is no rendition for this **nodeId** and **renditionId**,
then the placeholder image for the mime type of this rendition is returned, rather
than a 404 response.
required: false
type: boolean
default: false
produces:
- application/octet-stream
responses:
'200':
description: Successful response
schema:
type: file
'206':
description: Partial Content
'304':
description: Content has not been modified since the date provided in the If-Modified-Since header
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file, or **renditionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **renditionId** does not exist
'412':
description: |
Content is archived and is inaccessible
'416':
description: Range Not Satisfiable
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/renditions/{renditionId}/request-direct-access-url':
post:
x-alfresco-since: "7.1.0"
tags:
- renditions
summary: Generate a direct access content URL
description: |
**Note:** this endpoint is available in Alfresco 7.1 and newer versions.
Generate a direct access content url for the given **nodeId**.
operationId: requestRenditionDirectAccessUrl
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/renditionIdParam'
- in: body
name: requestContentUrlBodyCreate
description: |
Direct Access URL options and flags.
Note: It is up to the actual ContentStore implementation if it can fulfil this
request or not.
The **attachment** flag controls the download method of the generated URL. It defaults
to **true**, meaning the value for the Content Disposition response header will be **attachment**.
**true** enables a web browser to download the file as an attachment.
**false** means a web browser may preview the file in a new tab or window.
You can only set this parameter to **false** if the content type of the file is in the supported list;
for example, certain image files and PDF files.
If the content type is not supported for preview, then a value of **false** is ignored, and
the attachment will be returned in the response.
required: false
schema:
$ref: '#/definitions/DirectAccessUrlBodyCreate'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/DirectAccessUrlEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** does not exist
'412':
description: |
Content is archived and is inaccessible
'501':
description: The actual ContentStore implementation can't fulfil this request
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/secondary-children':
post:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Create secondary child
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Create a secondary child association, with the given association type, between the parent **nodeId** and a child node.
**Note:** You can create more than one secondary child association by
specifying a list of associations in the JSON body like this:
```JSON
[
{
"childId": "string",
"assocType": "string"
},
{
"childId": "string",
"assocType": "string"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createSecondaryChildAssociation
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeParentIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: secondaryChildAssociationBodyCreate
description: The child node id and assoc type.
required: true
schema:
$ref: '#/definitions/ChildAssociationBody'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/ChildAssociationEntry'
'400':
description: |
Invalid parameter: **assocType** is unknown, or the **nodeId** is not a valid format,
or **secondaryChildAssociationBodyCreate** invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to create secondary children of **nodeId**
'404':
description: Parent **nodeId** or **childId** does not exist
'409':
description: An association of this assoc type already exists between these two nodes
'422':
description: Model integrity exception
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
get:
x-alfresco-since: "5.2"
tags:
- nodes
summary: List secondary children
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of secondary child nodes that are associated with the current parent **nodeId**, via a secondary child association.
operationId: listSecondaryChildren
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeParentIdWithAliasParam'
- name: where
in: query
description: |
Optionally filter the list by assocType. Here's an example:
* ```where=(assocType='my:specialAssocType')```
required: false
type: string
- $ref: '#/parameters/nodeAssocMinimalEntryIncludeParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/includeSourceParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeChildAssociationPaging'
'400':
description: |
Invalid parameter: **assocType** is unknown or the **nodeId** is not a valid format
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: Parent **nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/secondary-children/{childId}':
delete:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Delete secondary child or children
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Delete secondary child associations between the parent **nodeId** and child nodes for the given association type.
If the association type is **not** specified, then all secondary child associations, of any type in the direction
from parent to secondary child, will be deleted. The child will still have a primary parent and may still be
associated as a secondary child with other secondary parents.
operationId: deleteSecondaryChildAssociation
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeParentIdParam'
- name: childId
in: path
description: The identifier of a child node.
required: true
type: string
- name: assocType
in: query
description: Only delete associations of this type.
type: string
required: false
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **assocType** is unknown or you are trying to delete a primary **assocType**.
Use delete node instead
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: Parent **nodeId** or **childId** does not exist (with given assocType, if specified)
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/parents':
get:
x-alfresco-since: "5.2"
tags:
- nodes
summary: List parents
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of parent nodes that are associated with the current child **nodeId**.
The list includes both the primary parent and any secondary parents.
operationId: listParents
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeChildIdWithAliasParam'
- name: where
in: query
description: |
Optionally filter the list by **assocType** and/or **isPrimary**. Here are some example filters:
* ```where=(assocType='my:specialAssocType')```
* ```where=(isPrimary=true)```
* ```where=(isPrimary=false and assocType='my:specialAssocType')```
required: false
type: string
- $ref: '#/parameters/nodeAssocMinimalEntryIncludeParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/includeSourceParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeAssociationPaging'
'400':
description: |
Invalid parameter: **assocType** is unknown or the **nodeId** is not a valid format
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: Child **nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/targets':
post:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Create node association
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Create an association, with the given association type, between the source **nodeId** and a target node.
**Note:** You can create more than one association by
specifying a list of associations in the JSON body like this:
```JSON
[
{
"targetId": "string",
"assocType": "string"
},
{
"targetId": "string",
"assocType": "string"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createAssociation
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeSourceIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: associationBodyCreate
description: The target node id and assoc type.
required: true
schema:
$ref: '#/definitions/AssociationBody'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/AssociationEntry'
'400':
description: |
Invalid parameter: **assocType** is unknown, or the **nodeId** is not a valid format,
or **associationBodyCreate** invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: Source **nodeId** or **targetId** does not exist
'409':
description: An association of this assoc type already exists between these two nodes
'422':
description: Model integrity exception
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
get:
x-alfresco-since: "5.2"
tags:
- nodes
summary: List target associations
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of target nodes that are associated with the current source **nodeId**.
operationId: listTargetAssociations
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeSourceIdParam'
- name: where
in: query
description: |
Optionally filter the list by **assocType**. Here's an example:
* ```where=(assocType='my:specialAssocType')```
required: false
type: string
- $ref: '#/parameters/nodeAssocMinimalEntryIncludeParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeAssociationPaging'
'400':
description: |
Invalid parameter: **assocType** is unknown or the **nodeId** is not a valid format
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: Source **nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/targets/{targetId}':
delete:
x-alfresco-since: "5.2"
tags:
- nodes
summary: Delete node association(s)
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Delete an association, or associations, from the source **nodeId* to a target node for the given association type.
If the association type is **not** specified, then all peer associations, of any type, in the direction
from source to target, are deleted.
**Note:** After removal of the peer association, or associations, from source to target, the two nodes may still have peer associations
in the other direction.
operationId: deleteAssociation
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeSourceIdParam'
- name: targetId
in: path
description: The identifier of a target node.
required: true
type: string
- name: assocType
in: query
description: Only delete associations of this type.
type: string
required: false
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **assocType** is unknown, or the **nodeId** is not a valid format, or **targetId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: Source **nodeId** or **targetId** does not exist (with given assocType, if specified)
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/sources':
get:
x-alfresco-since: "5.2"
tags:
- nodes
summary: List source associations
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of source nodes that are associated with the current target **nodeId**.
operationId: listSourceAssociations
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeTargetIdParam'
- name: where
in: query
description: |
Optionally filter the list by **assocType**. Here's an example:
* ```where=(assocType='my:specialAssocType')```
required: false
type: string
- $ref: '#/parameters/nodeAssocMinimalEntryIncludeParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeAssociationPaging'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format or **assocType** is unknown
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: Target **nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions':
get:
x-alfresco-since: "5.2"
tags:
- versions
summary: List version history
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the version history as an ordered list of versions for the specified **nodeId**.
The list is ordered in descending modified order. So the most recent version is first and
the original version is last in the list.
operationId: listVersionHistory
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionMinimalEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/VersionPaging'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: Target **nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}':
get:
x-alfresco-since: "5.2"
tags:
- versions
summary: Get version information
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the version information for **versionId** of file node **nodeId**.
operationId: getVersion
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/VersionEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or it exists but does not identify a file, or **versionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **versionId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "5.2"
tags:
- versions
summary: Delete a version
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Delete the version identified by **versionId** and **nodeId*.
If the version is successfully deleted then the content and metadata for that versioned node
will be deleted and will no longer appear in the version history. This operation cannot be undone.
If the most recent version is deleted the live node will revert to the next most recent version.
We currently do not allow the last version to be deleted. If you wish to clear the history then you
can remove the "cm:versionable" aspect (via update node) which will also disable versioning. In this
case, you can re-enable versioning by adding back the "cm:versionable" aspect or using the version
params (majorVersion and comment) on a subsequent file content update.
operationId: deleteVersion
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or exists but does not identify a file, or **versionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to delete the versioned node
'404':
description: |
**nodeId** or **versionId** does not exist
'422':
description: Cannot delete the last remaining version
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}/content':
get:
x-alfresco-since: "5.2"
tags:
- versions
summary: Get version content
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the version content for **versionId** of file node **nodeId**.
operationId: getVersionContent
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- $ref: '#/parameters/attachmentParam'
- $ref: '#/parameters/ifModifiedSinceHeader'
- $ref: '#/parameters/RangeHeader'
produces:
- application/octet-stream
responses:
'200':
description: Successful response
schema:
type: file
'206':
description: Partial Content
'304':
description: Content has not been modified since the date provided in the If-Modified-Since header
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file, or **versionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **versionId** does not exist
'412':
description: |
Content is archived and is inaccessible
'416':
description: Range Not Satisfiable
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}/request-direct-access-url':
post:
x-alfresco-since: "7.1.0"
tags:
- versions
summary: Generate a direct access content URL
description: |
**Note:** this endpoint is available in Alfresco 7.1 and newer versions.
Generate a direct access content url for the given **nodeId**.
operationId: requestVersionDirectAccessUrl
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- in: body
name: requestContentUrlBodyCreate
description: |
Direct Access URL options and flags.
Note: It is up to the actual ContentStore implementation if it can fulfil this
request or not.
The **attachment** flag controls the download method of the generated URL. It defaults
to **true**, meaning the value for the Content Disposition response header will be **attachment**.
**true** enables a web browser to download the file as an attachment.
**false** means a web browser may preview the file in a new tab or window.
You can only set this parameter to **false** if the content type of the file is in the supported list;
for example, certain image files and PDF files.
If the content type is not supported for preview, then a value of **false** is ignored, and
the attachment will be returned in the response.
required: false
schema:
$ref: '#/definitions/DirectAccessUrlBodyCreate'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/DirectAccessUrlEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** does not exist
'412':
description: |
Content is archived and is inaccessible
'501':
description: The actual ContentStore implementation can't fulfil this request
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}/revert':
post:
x-alfresco-since: "5.2"
tags:
- versions
summary: Revert a version
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Attempts to revert the version identified by **versionId** and **nodeId** to the live node.
If the node is successfully reverted then the content and metadata for that versioned node
will be promoted to the live node and a new version will appear in the version history.
operationId: revertVersion
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: revertBody
description: Optionally, specify a version comment and whether this should be a major version, or not.
required: true
schema:
$ref: '#/definitions/RevertBody'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/VersionEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or it exists
but does not identify a file, or **versionId** is invalid,
or **revertBody** invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to revert the versioned node
'404':
description: |
**nodeId** or **versionId** does not exist
'422':
description: Model integrity exception trying to revert the node
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}/renditions':
post:
x-alfresco-since: "7.0.0"
tags:
- versions
summary: Create rendition for a file version
description: |
**Note:** this endpoint is available in Alfresco 7.0.0 and newer versions.
An asynchronous request to create a rendition for version of file **nodeId** and **versionId**.
The version rendition is specified by name **id** in the request body:
```JSON
{
"id":"doclib"
}
```
Multiple names may be specified as a comma separated list or using a list format:
```JSON
[
{
"id": "doclib"
},
{
"id": "avatar"
}
]
```
operationId: createVersionRendition
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- in: body
name: renditionBodyCreate
description: The rendition "id".
required: true
schema:
$ref: '#/definitions/RenditionBodyCreate'
consumes:
- application/json
responses:
'202':
description: Request accepted
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file, or **versionId** is invalid,
or **renditionBodyCreate** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **versionId** or **renditionId** does not exist
'409':
description: All requested renditions already exist
'501':
description: Renditions/thumbnails are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
get:
x-alfresco-since: "7.0.0"
tags:
- versions
summary: List renditions for a file version
description: |
**Note:** this endpoint is available in Alfresco 7.0.0 and newer versions.
Gets a list of the rendition information for each rendition of the version of file **nodeId** and **versionId**, including the rendition id.
Each rendition returned has a **status**: CREATED means it is available to view or download, NOT_CREATED means the rendition can be requested.
You can use the **where** parameter to filter the returned renditions by **status**. For example, the following **where**
clause will return just the CREATED renditions:
```
(status='CREATED')
```
operationId: listVersionRenditions
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- $ref: '#/parameters/whereParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/RenditionPaging'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file, or **versionId** is invalid, or **where** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **versionId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}/renditions/{renditionId}':
get:
x-alfresco-since: "7.0.0"
tags:
- versions
summary: Get rendition information for a file version
description: |
**Note:** this endpoint is available in Alfresco 7.0.0 and newer versions.
Gets the rendition information for **renditionId** of version of file **nodeId** and **versionId**.
operationId: getVersionRendition
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- $ref: '#/parameters/renditionIdParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/RenditionEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file, or **versionId** is invalid, or **renditionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **versionId** or **renditionId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "7.1.1"
tags:
- versions
summary: Delete rendition for a version
description: |
**Note:** this endpoint is available in Alfresco 7.1.1 and newer versions.
Delete the rendition for **renditionId** of version **versionId** of **nodeId**.
If the rendition is successfully deleted then the content for that rendition node
will be cleared.
operationId: deleteVersionRendition
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- $ref: '#/parameters/renditionIdParam'
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **nodeId** is not a valid format or **versionId** or **renditionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to delete the version rendition
'404':
description: |
**nodeId**, **versionId** or **renditionId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}/renditions/{renditionId}/content':
get:
x-alfresco-since: "7.0.0"
tags:
- versions
summary: Get rendition content for a file version
description: |
**Note:** this endpoint is available in Alfresco 7.0.0 and newer versions.
Gets the rendition content for **renditionId** of version of file **nodeId** and **versionId**.
operationId: getVersionRenditionContent
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- $ref: '#/parameters/renditionIdParam'
- $ref: '#/parameters/attachmentParam'
- $ref: '#/parameters/ifModifiedSinceHeader'
- $ref: '#/parameters/RangeHeader'
- name: placeholder
in: query
description: |
If **true** and there is no rendition for this **nodeId** and **renditionId**,
then the placeholder image for the mime type of this rendition is returned, rather
than a 404 response.
required: false
type: boolean
default: false
produces:
- application/octet-stream
responses:
'200':
description: Successful response
schema:
type: file
'206':
description: Partial Content
'304':
description: Content has not been modified since the date provided in the If-Modified-Since header
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file, or **versionId** is invalid, or **renditionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **versionId** or **renditionId** does not exist
'412':
description: |
Content is archived and is inaccessible
'416':
description: Range Not Satisfiable
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}/renditions/{renditionId}/request-direct-access-url':
post:
x-alfresco-since: "7.2.0"
tags:
- versions
summary: Generate a direct access content URL
description: |
**Note:** this endpoint is available in Alfresco 7.2 and newer versions.
Generate a direct access content url for the given **nodeId**.
operationId: requestVersionRenditionDirectAccessUrl
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- $ref: '#/parameters/renditionIdParam'
- in: body
name: requestContentUrlBodyCreate
description: |
Direct Access URL options and flags.
It can be used to set the **attachment** flag, which controls the download method of
the generated URL (attachment DAU vs embedded DAU). It defaults to **true**, meaning
the value for the Content Disposition response header will be **attachment**.
Note: It is up to the actual ContentStore implementation if it can fulfil this
request or not.
required: false
schema:
$ref: '#/definitions/DirectAccessUrlBodyCreate'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/DirectAccessUrlEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** does not exist
'501':
description: The actual ContentStore implementation can't fulfil this request
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/action-definitions':
get:
x-alfresco-since: "5.2.2"
tags:
- actions
summary: Retrieve actions for a node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Retrieve the list of actions that may be executed against the given **nodeId**.
The default sort order for the returned list is for actions to be sorted by ascending name.
You can override the default by using the **orderBy** parameter.
You can use any of the following fields to order the results:
* name
* title
operationId: nodeActions
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/fieldsParam'
responses:
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'200':
description: Successful response
schema:
$ref: '#/definitions/ActionDefinitionList'
'400':
description: |
Invalid parameter: value of **maxItems**, **skipCount** or **orderBy** is invalid
'401':
description: Authentication failed
'404':
description: |
**nodeId** does not exist
'/nodes/{nodeId}/storage-info/{contentPropName}':
get:
x-alfresco-since: "7.2.0"
tags:
- storage-info
summary: Retrieve storage properties for given content
description: |
**Note:** this endpoint is available in Alfresco 7.2.0 and newer versions.
It also requires at least one specific implementation of underlying functionality in Cloud Connector(s).
Gets storage properties for given content.
Please find below sample responses for this endpoint when Alfresco Content Connector for AWS S3 is installed.
Similar responses will be returned when Alfresco Content Connector for Azure Blob is installed, albeit it with
some native storage properties with x-ms- prefix instead of x-amz- prefix.
Standard storage class:
```json
{
"entry": {
"storageProperties": {
"x-alf-archived": "false"
},
"id": "cm:content"
}
}
```
Intelligent tiering storage class:
```json
{
"entry": {
"storageProperties": {
"x-alf-archived": "false",
"x-amz-storage-class": "INTELLIGENT_TIERING"
},
"id": "cm:content"
}
}
```
Glacier archive storage class (no restore request ongoing or submitted):
```json
{
"entry": {
"storageProperties": {
"x-alf-archived": "true",
"x-amz-storage-class": "GLACIER"
},
"id": "cm:content"
}
}
```
Glacier archive storage class (restore request ongoing, not completed):
```json
{
"entry": {
"storageProperties": {
"x-alf-archive-restore-in-progress": "true",
"x-amz-restore": "ongoing-request=\"true\"",
"x-alf-archived": "true",
"x-amz-storage-class": "GLACIER"
},
"id": "cm:content"
}
}
```
Glacier archive storage class (restore request completed):
```json
{
"entry": {
"storageProperties": {
"x-alf-archive-restore-in-progress": "false",
"x-amz-restore": "ongoing-request=\"false\", expiry-date=\"Fri Nov 26 01:00:00 CET 2021\"",
"x-alf-archive-restore-expiry": "2021-11-26T00:00:00.000Z",
"x-alf-archived": "false",
"x-amz-storage-class": "GLACIER"
},
"id": "cm:content"
}
}
```
operationId: getStorageProperties
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/contentPropNameParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/ContentStorageInfo'
'400':
description: |
Invalid parameter: **nodeId** or **contentPropName** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Not authorized
'404':
description: |
**nodeId** or **contentPropName** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}/storage-info/{contentPropName}':
get:
x-alfresco-since: "7.2.0"
tags:
- storage-info
summary: Retrieve storage properties for given version content
description: |
**Note:** this endpoint is available in Alfresco 7.2.0 and newer versions.
It also requires at least one specific implementation of underlying functionality in Cloud Connector(s).
Gets storage properties for given version content.
Please find below sample responses for this endpoint when Alfresco Content Connector for AWS S3 is installed.
Similar responses will be returned when Alfresco Content Connector for Azure Blob is installed, albeit it with
some native storage properties with x-ms- prefix instead of x-amz- prefix.
Standard storage class:
```json
{
"entry": {
"storageProperties": {
"x-alf-archived": "false"
},
"id": "cm:content"
}
}
```
Intelligent tiering storage class:
```json
{
"entry": {
"storageProperties": {
"x-alf-archived": "false",
"x-amz-storage-class": "INTELLIGENT_TIERING"
},
"id": "cm:content"
}
}
```
Glacier archive storage class (no restore request ongoing or submitted):
```json
{
"entry": {
"storageProperties": {
"x-alf-archived": "true",
"x-amz-storage-class": "GLACIER"
},
"id": "cm:content"
}
}
```
Glacier archive storage class (restore request ongoing, not completed):
```json
{
"entry": {
"storageProperties": {
"x-alf-archive-restore-in-progress": "true",
"x-amz-restore": "ongoing-request=\"true\"",
"x-alf-archived": "true",
"x-amz-storage-class": "GLACIER"
},
"id": "cm:content"
}
}
```
Glacier archive storage class (restore request completed):
```json
{
"entry": {
"storageProperties": {
"x-alf-archive-restore-in-progress": "false",
"x-amz-restore": "ongoing-request=\"false\", expiry-date=\"Fri Nov 26 01:00:00 CET 2021\"",
"x-alf-archive-restore-expiry": "2021-11-26T00:00:00.000Z",
"x-alf-archived": "false",
"x-amz-storage-class": "GLACIER"
},
"id": "cm:content"
}
}
```
operationId: getVersionStorageProperties
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- $ref: '#/parameters/contentPropNameParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/ContentStorageInfo'
'400':
description: |
Invalid parameter: **nodeId** or **versionId** or **contentPropName** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Not authorized
'404':
description: |
**nodeId** or **versionId** or **contentPropName** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/storage-info/{contentPropName}/archive':
post:
x-alfresco-since: "7.2.0"
tags:
- storage-info
summary: Request to send given content to archive
description: |
**Note:** this endpoint is available in Alfresco 7.2.0 and newer versions.
It also requires at least one specific implementation of underlying functionality in Cloud Connector(s).
Request to send given content to archive.
operationId: requestArchiveContent
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/contentPropNameParam'
- name: archiveContentRequest
in: body
description: |
Archive content request parameters - currently not supported by any Alfresco Cloud Connector.
Body is not mandatory.
Request body example:
```JSON
{
"archiveParams": {
"x-amz-storage-class": "GLACIER"
}
}
```
required: false
schema:
$ref: '#/definitions/ArchiveContentRequest'
responses:
'200':
description: Successful response
'400':
description: |
Invalid parameter: **nodeId** or **contentPropName** is not a valid format, or is not a file
Content's storage state does not allow archive.
Invalid archive paramters.
'401':
description: Authentication failed
'403':
description: Not authorized
'404':
description: |
**nodeId** or **contentPropName** does not exist
'409':
description: Content already archived
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}/storage-info/{contentPropName}/archive':
post:
x-alfresco-since: "7.2.0"
tags:
- storage-info
summary: Request to send given version content to archive
description: |
**Note:** this endpoint is available in Alfresco 7.2.0 and newer versions.
It also requires at least one specific implementation of underlying functionality in Cloud Connector(s).
Request to send given version content to archive.
operationId: requestArchiveVersionContent
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- $ref: '#/parameters/contentPropNameParam'
- name: archiveContentRequest
in: body
description: |
Archive content request parameters - currently not supported by any Alfresco Cloud Connector.
Body is not mandatory.
Request body example:
```JSON
{
"archiveParams": {
"x-amz-storage-class": "GLACIER"
}
}
```
required: false
schema:
$ref: '#/definitions/ArchiveContentRequest'
responses:
'200':
description: Successful response
'400':
description: |
Invalid parameter: **nodeId** or **versionId** or **contentPropName** is not a valid format, or is not a file
Content's storage state does not allow archive.
Invalid archive paramters.
'401':
description: Authentication failed
'403':
description: Not authorized
'404':
description: |
**nodeId** or **versionId** or **contentPropName** does not exist
'409':
description: Content already archived
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/storage-info/{contentPropName}/archive-restore':
post:
x-alfresco-since: "7.2.0"
tags:
- storage-info
summary: Request to restore given content from archive
description: |
**Note:** this endpoint is available in Alfresco 7.2.0 and newer versions.
It also requires at least one specific implementation of underlying functionality in Cloud Connector(s).
Request to restore given content from archive.
operationId: requestRestoreContentFromArchive
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/contentPropNameParam'
- name: restoreArchivedContentRequest
in: body
description: |
Restore content from archive request parameters.
At the moment there is one parameter being supported which is restore priority.
'High' restore priority translates to 'Expedited' Glacier restore tier in AWS S3 and 'High' rehydrate priority in Azure Blob.
'Standard' restore priority translates to 'Standard' Glacier restore tier in AWS S3 and 'Standard' rehydrate priority in Azure Blob.
Body is not mandatory.
High restore priority request body example:
```JSON
{
"restorePriority": "High"
}
```
Standard restore priority request body example:
```JSON
{
"restorePriority": "Standard"
}
```
required: false
schema:
$ref: '#/definitions/RestoreArchivedContentRequest'
responses:
'202':
description: Successful response (request accepted)
'400':
description: |
Invalid parameter: n**nodeId** or **contentPropName** is not a valid format, or is not a file
Content's storage state does not allow restore.
Invalid restore paramters.
'401':
description: Authentication failed
'403':
description: Not authorized
'404':
description: |
**nodeId** or **contentPropName** does not exist
'409':
description: Content already restored or restoration is already in progress
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/versions/{versionId}/storage-info/{contentPropName}/archive-restore':
post:
x-alfresco-since: "7.2.0"
tags:
- storage-info
summary: Request to restore given version content from archive
description: |
**Note:** this endpoint is available in Alfresco 7.2.0 and newer versions.
It also requires at least one specific implementation of underlying functionality in Cloud Connector(s).
Request to restore given version content from archive.
operationId: requestRestoreVersionContentFromArchive
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/versionIdParam'
- $ref: '#/parameters/contentPropNameParam'
- name: restoreArchivedContentRequest
in: body
description: |
Restore content from archive request parameters.
At the moment there is one parameter being supported which is restore priority.
'High' restore priority translates to 'Expedited' Glacier restore tier in AWS S3 and 'High' rehydrate priority in Azure Blob.
'Standard' restore priority translates to 'Standard' Glacier restore tier in AWS S3 and 'Standard' rehydrate priority in Azure Blob.
Body is not mandatory.
High restore priority request body example:
```JSON
{
"restorePriority": "High"
}
```
Standard restore priority request body example:
```JSON
{
"restorePriority": "Standard"
}
```
required: false
schema:
$ref: '#/definitions/RestoreArchivedContentRequest'
responses:
'202':
description: Successful response (request accepted)
'400':
description: |
Invalid parameter: **nodeId** or **versionId** or **contentPropName** is not a valid format, or is not a file
Content's storage state does not allow restore.
Invalid restore paramters.
'401':
description: Authentication failed
'403':
description: Not authorized
'404':
description: |
**nodeId** or **versionId** or **contentPropName** does not exist
'409':
description: Content already restored or restoration is already in progress
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/deleted-nodes':
get:
x-alfresco-since: "5.2"
tags:
- trashcan
summary: List deleted nodes
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of deleted nodes for the current user.
If the current user is an administrator deleted nodes for all users will be returned.
The list of deleted nodes will be ordered with the most recently deleted node at the top of the list.
operationId: listDeletedNodes
produces:
- application/json
parameters:
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/nodeMinimalEntryIncludeParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/DeletedNodesPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/deleted-nodes/{nodeId}':
get:
x-alfresco-since: "5.2"
tags:
- trashcan
summary: Get a deleted node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the specific deleted node **nodeId**.
operationId: getDeletedNode
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/nodeEntryIncludeParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/DeletedNodeEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format
'401':
description: Authentication failed
'403':
description: User does not have permission to view the deleted node
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "5.2"
tags:
- trashcan
summary: Permanently delete a deleted node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Permanently deletes the deleted node **nodeId**.
operationId: deleteDeletedNode
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **nodeId** is not a valid format
'401':
description: Authentication failed
'403':
description: User does not have permission to permanently delete the deleted node
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/deleted-nodes/{nodeId}/content':
get:
x-alfresco-since: "5.2"
tags:
- trashcan
summary: Get deleted node content
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the content of the deleted node with identifier **nodeId**.
operationId: getDeletedNodeContent
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/attachmentParam'
- $ref: '#/parameters/ifModifiedSinceHeader'
- $ref: '#/parameters/RangeHeader'
produces:
- application/octet-stream
responses:
'200':
description: Successful response
schema:
type: file
'206':
description: Partial Content
'304':
description: Content has not been modified since the date provided in the If-Modified-Since header
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Current user does not have permission to retrieve content of **nodeId**
'404':
description: |
**nodeId** does not exist
'412':
description: |
Content is archived and is inaccessible
'416':
description: Range Not Satisfiable
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/deleted-nodes/{nodeId}/request-direct-access-url':
post:
x-alfresco-since: "7.1.0"
tags:
- trashcan
summary: Generate a direct access content URL
description: |
**Note:** this endpoint is available in Alfresco 7.1 and newer versions.
Generate a direct access content url for the given **nodeId**.
operationId: requestDeletedNodeDirectAccessUrl
parameters:
- $ref: '#/parameters/nodeIdParam'
- in: body
name: requestContentUrlBodyCreate
description: |
Direct Access URL options and flags.
Note: It is up to the actual ContentStore implementation if it can fulfil this
request or not.
The **attachment** flag controls the download method of the generated URL. It defaults
to **true**, meaning the value for the Content Disposition response header will be **attachment**.
**true** enables a web browser to download the file as an attachment.
**false** means a web browser may preview the file in a new tab or window.
You can only set this parameter to **false** if the content type of the file is in the supported list;
for example, certain image files and PDF files.
If the content type is not supported for preview, then a value of **false** is ignored, and
the attachment will be returned in the response.
required: false
schema:
$ref: '#/definitions/DirectAccessUrlBodyCreate'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/DirectAccessUrlEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** does not exist
'412':
description: |
Content is archived and is inaccessible
'501':
description: The actual ContentStore implementation can't fulfil this request
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/deleted-nodes/{nodeId}/restore':
post:
x-alfresco-since: "5.2"
tags:
- trashcan
summary: Restore a deleted node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Attempts to restore the deleted node **nodeId** to its original location or to a new location.
If the node is successfully restored to its former primary parent, then only the
primary child association will be restored, including recursively for any primary
children. It should be noted that no other secondary child associations or peer
associations will be restored, for any of the nodes within the primary parent-child
hierarchy of restored nodes, irrespective of whether these associations were to
nodes within or outside of the restored hierarchy.
Also, any previously shared link will not be restored since it is deleted at the time
of delete of each node.
operationId: restoreDeletedNode
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: deletedNodeBodyRestore
description: The targetParentId if the node is restored to a new location.
required: false
schema:
$ref: '#/definitions/DeletedNodeBodyRestore'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodeEntry'
'400':
description: |
Invalid parameter: **nodeId** or **targetNodeId** is not a valid format
'401':
description: Authentication failed
'403':
description: User does not have permission to restore the deleted node or user does not have permission to the target node
'404':
description: |
**nodeId** does not exist or the restore destination parent node does not exists
'409':
description: Node name already exists in the restore destination
'422':
description: Model integrity exception trying to restore the node
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/deleted-nodes/{nodeId}/renditions':
get:
x-alfresco-since: "5.2"
tags:
- trashcan
summary: List renditions for a deleted node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of the rendition information for each rendition of the file **nodeId**, including the rendition id.
Each rendition returned has a **status**: CREATED means it is available to view or download, NOT_CREATED means the rendition can be requested.
You can use the **where** parameter to filter the returned renditions by **status**. For example, the following **where**
clause will return just the CREATED renditions:
```
(status='CREATED')
```
operationId: listDeletedNodeRenditions
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/whereParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/RenditionPaging'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, is not a file, or **where** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/deleted-nodes/{nodeId}/renditions/{renditionId}':
get:
x-alfresco-since: "5.2"
tags:
- trashcan
summary: Get rendition information for a deleted node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the rendition information for **renditionId** of file **nodeId**.
operationId: getArchivedNodeRendition
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/renditionIdParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/RenditionEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file, or **renditionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **renditionId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/deleted-nodes/{nodeId}/renditions/{renditionId}/content':
get:
x-alfresco-since: "5.2"
tags:
- trashcan
summary: Get rendition content of a deleted node
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the rendition content for **renditionId** of file **nodeId**.
operationId: getArchivedNodeRenditionContent
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/renditionIdParam'
- $ref: '#/parameters/attachmentParam'
- $ref: '#/parameters/ifModifiedSinceHeader'
- $ref: '#/parameters/RangeHeader'
- name: placeholder
in: query
description: |
If **true** and there is no rendition for this **nodeId** and **renditionId**,
then the placeholder image for the mime type of this rendition is returned, rather
than a 404 response.
required: false
type: boolean
default: false
produces:
- application/octet-stream
responses:
'200':
description: Successful response
schema:
type: file
'206':
description: Partial Content
'304':
description: Content has not been modified since the date provided in the If-Modified-Since header
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file, or **renditionId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** or **renditionId** does not exist
'412':
description: |
Content is archived and is inaccessible
'416':
description: Range Not Satisfiable
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/deleted-nodes/{nodeId}/renditions/{renditionId}/request-direct-access-url':
post:
x-alfresco-since: "7.1.0"
tags:
- trashcan
summary: Generate a direct access content URL
description: |
**Note:** this endpoint is available in Alfresco 7.1 and newer versions.
Generate a direct access content url for the given **nodeId**.
operationId: requestArchivedNodeRenditionDirectAccessUrl
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/renditionIdParam'
- in: body
name: requestContentUrlBodyCreate
description: |
Direct Access URL options and flags.
Note: It is up to the actual ContentStore implementation if it can fulfil this
request or not.
The **attachment** flag controls the download method of the generated URL. It defaults
to **true**, meaning the value for the Content Disposition response header will be **attachment**.
**true** enables a web browser to download the file as an attachment.
**false** means a web browser may preview the file in a new tab or window.
You can only set this parameter to **false** if the content type of the file is in the supported list;
for example, certain image files and PDF files.
If the content type is not supported for preview, then a value of **false** is ignored, and
the attachment will be returned in the response.
required: false
schema:
$ref: '#/definitions/DirectAccessUrlBodyCreate'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/DirectAccessUrlEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or is not a file
'401':
description: Authentication failed
'403':
description: Current user does not have permission for **nodeId**
'404':
description: |
**nodeId** does not exist
'412':
description: |
Content is archived and is inaccessible
'501':
description: The actual ContentStore implementation can't fulfil this request
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/downloads':
post:
x-alfresco-since: "5.2.1"
tags:
- downloads
summary: Create a new download
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Creates a new download node asynchronously, the content of which will be the zipped content of the **nodeIds** specified in the JSON body like this:
```JSON
{
"nodeIds":
[
"c8bb482a-ff3c-4704-a3a3-de1c83ccd84c",
"cffa62db-aa01-493d-9594-058bc058eeb1"
]
}
```
**Note:** The content of the download node can be obtained using the **GET /nodes/{downloadId}/content** endpoint
operationId: createDownload
produces:
- application/json
parameters:
- $ref: '#/parameters/fieldsParam'
- in: body
name: DownloadBodyCreate
description: The nodeIds the content of which will be zipped, which zip will be set as the content of our download node.
required: true
schema:
$ref: '#/definitions/DownloadBodyCreate'
responses:
'202':
description: The request to create a download node was accepted
schema:
$ref: '#/definitions/DownloadEntry'
'400':
description: |
Invalid parameter: **DownloadBodyCreate** is invalid due to incorrect syntax, or **nodeIds** is empty, or **nodeIds** contains a duplicate **nodeId**
'401':
description: Authentication failed
'403':
description: Current user does not have permission to add a certain **nodeId** to the zip
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/downloads/{downloadId}':
get:
x-alfresco-since: "5.2.1"
tags:
- downloads
summary: Get a download
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Retrieve status information for download node **downloadId**
operationId: getDownload
produces:
- application/json
parameters:
- $ref: '#/parameters/downloadIdParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Download node information
schema:
$ref: '#/definitions/DownloadEntry'
'400':
description: |
Invalid parameter: **downloadId** is invalid, or **downloadId** does not point to a node of download type
'401':
description: Authentication failed
'403':
description: Current user does not have permission to get information about **downloadId** node
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "5.2.1"
tags:
- downloads
summary: Cancel a download
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Cancels the creation of a download request.
**Note:** The download node can be deleted using the **DELETE /nodes/{downloadId}** endpoint
By default, if the download node is not deleted it will be picked up by a cleaner job which removes download nodes older than a configurable amount of time (default is 1 hour)
Information about the existing progress at the time of cancelling can be retrieved by calling the **GET /downloads/{downloadId}** endpoint
The cancel operation is done asynchronously.
operationId: cancelDownload
parameters:
- $ref: '#/parameters/downloadIdParam'
responses:
'202':
description: The request to cancel a download was accepted
'400':
description: |
Invalid parameter: **downloadId** is invalid, or **downloadId** does not point to a node of download type
'401':
description: Authentication failed
'403':
description: Current user does not have permission cancel the **downloadId** node
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people':
post:
x-alfresco-since: "5.2"
tags:
- people
summary: Create person
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Create a person.
If applicable, the given person's login access can also be optionally disabled.
You must have admin rights to create a person.
You can set custom properties when you create a person:
```JSON
{
"id": "abeecher",
"firstName": "Alice",
"lastName": "Beecher",
"displayName": "Alice Beecher",
"email": "abeecher@example.com",
"password": "secret",
"properties":
{
"my:property": "The value"
}
}
```
**Note:** setting properties of type d:content and d:category are not supported.
operationId: createPerson
parameters:
- $ref: '#/parameters/fieldsParam'
- in: body
name: personBodyCreate
description: The person details.
required: true
schema:
$ref: '#/definitions/PersonBodyCreate'
consumes:
- application/json
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/PersonEntry'
'400':
description: |
Invalid parameter: **personBodyCreate** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to create a person
'409':
description: Person within given *id* already exists
'422':
description: Model integrity exception
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
get:
x-alfresco-since: "5.2"
tags:
- people
summary: List people
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
List people.
You can use the **include** parameter to return any additional information.
The default sort order for the returned list is for people to be sorted by ascending id.
You can override the default by using the **orderBy** parameter.
You can use any of the following fields to order the results:
* id
* firstName
* lastName
operationId: listPeople
produces:
- application/json
parameters:
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/personMinimalEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/PersonPaging'
'400':
description: |
Invalid parameter: value of **maxItems**, **skipCount** or **orderBy** is invalid
'401':
description: Authentication failed
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}':
get:
tags:
- people
summary: Get a person
description: |
Gets information for the person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: getPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/PersonEntry'
'401':
description: Authentication failed
'404':
description: |
**personId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
x-alfresco-since: "5.2"
tags:
- people
summary: Update person
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Update the given person's details.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
If applicable, the given person's login access can also be optionally disabled or re-enabled.
You must have admin rights to update a person — unless updating your own details.
If you are changing your password, as a non-admin user, then the existing password must also
be supplied (using the oldPassword field in addition to the new password value).
Admin users cannot be disabled by setting enabled to false.
Non-admin users may not disable themselves.
You can set custom properties when you update a person:
```JSON
{
"firstName": "Alice",
"properties":
{
"my:property": "The value"
}
}
```
**Note:** setting properties of type d:content and d:category are not supported.
operationId: updatePerson
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: personBodyUpdate
description: The person details.
required: true
schema:
$ref: '#/definitions/PersonBodyUpdate'
consumes:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/PersonEntry'
'400':
description: |
Invalid parameter: the update request is invalid or **personId** is not a valid format or **personBodyUpdate** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to update a person
'404':
description: |
**personId** does not exist
'422':
description: Model integrity exception
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/activities':
get:
tags:
- activities
summary: List activities
description: |
Gets a list of activities for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: listActivitiesForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- name: who
in: query
description: |
A filter to include the user's activities only `me`, other user's activities only `others`'
required: false
type: string
- name: siteId
in: query
description: Include only activity feed entries relating to this site.
required: false
type: string
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/ActivityPaging'
'400':
description: |
Invalid parameter: value of **maxItems**, **skipCount**, or **who** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have access to the activities for **personId**
'404':
description: |
**personId** or **siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/favorite-sites':
get:
deprecated: true
tags:
- favorites
summary: List favorite sites
description: |
**Note:** this endpoint is deprecated as of Alfresco 4.2, and will be removed in the future.
Use `/people/{personId}/favorites` instead.
Gets a list of a person's favorite sites.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: listFavoriteSitesForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SitePaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have access to the favorite sites for **personId**
'404':
description: |
**personId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
deprecated: true
tags:
- favorites
summary: Create a site favorite
description: |
**Note:** this endpoint is deprecated as of Alfresco 4.2, and will be removed in the future.
Use `/people/{personId}/favorites` instead.
Create a site favorite for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
**Note:** You can favorite more than one site by
specifying a list of sites in the JSON body like this:
```JSON
[
{
"id": "test-site-1"
},
{
"id": "test-site-2"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createSiteFavorite
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: favoriteSiteBodyCreate
description: The id of the site to favorite.
required: true
schema:
$ref: '#/definitions/FavoriteSiteBodyCreate'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/FavoriteSiteEntry'
'400':
description: |
Invalid parameter: **favoriteSiteBodyCreate** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have access to the favorite sites for **personId**
'404':
description: |
**personId** does not exist
'409':
description: |
**id** is already a site favorite
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/favorite-sites/{siteId}':
get:
deprecated: true
tags:
- favorites
summary: Get a favorite site
description: |
**Note:** this endpoint is deprecated as of Alfresco 4.2, and will be removed in the future.
Use `/people/{personId}/favorites/{favoriteId}` instead.
Gets information on favorite site **siteId** of person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: getFavoriteSite
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteEntry'
'401':
description: Authentication failed
'403':
description: Current user does not have access to the favorite sites for **personId**
'404':
description: |
**personId** or **siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
deprecated: true
tags:
- favorites
summary: Delete a site favorite
description: |
**Note:** this endpoint is deprecated as of Alfresco 4.2, and will be removed in the future.
Use `/people/{personId}/favorites/{favoriteId}` instead.
Deletes site **siteId** from the favorite site list of person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: deleteSiteFavorite
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/siteIdParam'
responses:
'204':
description: Successful response
'401':
description: Authentication failed
'403':
description: Current user does not have access to the favorite sites for **personId**
'404':
description: |
**personId** or **siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/favorites':
get:
tags:
- favorites
summary: List favorites
description: |
Gets a list of favorites for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
The default sort order for the returned list of favorites is type ascending, createdAt descending.
You can override the default by using the **orderBy** parameter.
You can use any of the following fields to order the results:
* `type`
* `createdAt`
* `title`
You can use the **where** parameter to restrict the list in the response
to entries of a specific kind. The **where** parameter takes a value.
The value is a single predicate that can include one or more **EXISTS**
conditions. The **EXISTS** condition uses a single operand to limit the
list to include entries that include that one property. The property values are:
* `target/file`
* `target/folder`
* `target/site`
For example, the following **where** parameter restricts the returned list to the file favorites for a person:
```SQL
(EXISTS(target/file))
```
You can specify more than one condition using **OR**. The predicate must be enclosed in parentheses.
For example, the following **where** parameter restricts the returned list to the file and folder favorites for a person:
```SQL
(EXISTS(target/file) OR EXISTS(target/folder))
```
operationId: listFavorites
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/whereParam'
- $ref: '#/parameters/favoriteEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/FavoritePaging'
'400':
description: |
Invalid parameter: value of **maxItems**, **skipCount**, **orderBy**, or **where** is invalid
'401':
description: Authentication failed
'404':
description: |
**personId** does not exist or the current user does not have permission to access the favorites of **personId**
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
tags:
- favorites
summary: Create a favorite
description: |
Favorite a **site**, **file**, or **folder** in the repository.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
**Note:** You can favorite more than one entity by
specifying a list of objects in the JSON body like this:
```JSON
[
{
"target": {
"file": {
"guid": "abcde-01234-...."
}
}
},
{
"target": {
"file": {
"guid": "abcde-09863-...."
}
}
},
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createFavorite
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/favoriteEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: favoriteBodyCreate
description: |
An object identifying the entity to be favorited.
The object consists of a single property which is an object with the name `site`, `file`, or `folder`.
The content of that object is the `guid` of the target entity.
For example, to favorite a file the following body would be used:
```JSON
{
"target": {
"file": {
"guid": "abcde-01234-...."
}
}
}
```
required: true
schema:
$ref: '#/definitions/FavoriteBodyCreate'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/FavoriteEntry'
'400':
description: |
Invalid parameter: **favoriteBodyCreate** invalid
'401':
description: Authentication failed
'404':
description: |
**personId** does not exist, or the target entity does not exist,
or a favorite already exists with the specified id, or an
entity exists with the id of the posted object
but is not of the same type of the posted object
'409':
description: The target **guid** has already been favorited
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/favorites/{favoriteId}':
get:
tags:
- favorites
summary: Get a favorite
description: |
Gets favorite **favoriteId** for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: getFavorite
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/favoriteIdParam'
- $ref: '#/parameters/favoriteEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/FavoriteEntry'
'401':
description: Authentication failed
'404':
description: |
**personId** or **favoriteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
tags:
- favorites
summary: Delete a favorite
description: |
Deletes **favoriteId** as a favorite of person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: deleteFavorite
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/favoriteIdParam'
responses:
'204':
description: Successful response
'401':
description: Authentication failed
'404':
description: |
**personId** or **favoriteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/networks':
get:
tags:
- networks
summary: List network membership
description: |
Gets a list of network memberships for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: listNetworksForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/PersonNetworkPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'404':
description: |
**personId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/networks/{networkId}':
get:
tags:
- networks
summary: Get network information
description: |
Gets network information on a single network specified by **networkId** for **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: getNetworkForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/networkIdParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/PersonNetworkEntry'
'401':
description: Authentication failed
'404':
description: |
**personId** or **networkId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/preferences':
get:
tags:
- preferences
summary: List preferences
description: |
Gets a list of preferences for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
Note that each preference consists of an **id** and a **value**.
The **value** can be of any JSON type.
operationId: listPreferences
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/PreferencePaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have access to the preferences for **personId**
'404':
description: |
**personId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/preferences/{preferenceName}':
get:
tags:
- preferences
summary: Get a preference
description: |
Gets a specific preference for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: getPreference
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- name: preferenceName
in: path
description: The name of the preference.
required: true
type: string
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/PreferenceEntry'
'401':
description: Authentication failed
'403':
description: Current user does not have access to the preferences for **personId**
'404':
description: |
**personId** or **preferenceName** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/site-membership-requests':
get:
tags:
- sites
summary: List site membership requests
description: |
Gets a list of the current site membership requests for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: listSiteMembershipRequestsForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteMembershipRequestPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'404':
description: |
**personId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
tags:
- sites
summary: Create a site membership request
description: |
Create a site membership request for yourself on the site with the identifier of **id**, specified in the JSON body.
The result of the request differs depending on the type of site.
* For a **public** site, you join the site immediately as a SiteConsumer.
* For a **moderated** site, your request is added to the site membership request list. The request waits for approval from the Site Manager.
* You cannot request membership of a **private** site. Members are invited by the site administrator.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
**Note:** You can create site membership requests for more than one site by
specifying a list of sites in the JSON body like this:
```JSON
[
{
"message": "Please can you add me",
"id": "test-site-1",
"title": "Request for test site 1",
},
{
"message": "Please can you add me",
"id": "test-site-2",
"title": "Request for test site 2",
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createSiteMembershipRequestForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: siteMembershipRequestBodyCreate
description: Site membership request details
required: true
schema:
$ref: '#/definitions/SiteMembershipRequestBodyCreate'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/SiteMembershipRequestEntry'
'400':
description: |
Invalid parameter: **id** is invalid, or the user is already invited,
or **siteMembershipRequestBodyCreate** invalid
'401':
description: Authentication failed
'404':
description: |
**personId** or **id** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/site-membership-requests/{siteId}':
get:
tags:
- sites
summary: Get a site membership request
description: |
Gets the site membership request for site **siteId** for person **personId**, if one exists.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: getSiteMembershipRequestForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteMembershipRequestEntry'
'401':
description: Authentication failed
'404':
description: |
**personId** or **siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
tags:
- sites
summary: Update a site membership request
description: |
Updates the message for the site membership request to site **siteId** for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: updateSiteMembershipRequestForPerson
consumes:
- application/json
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: siteMembershipRequestBodyUpdate
description: The new message to display
required: true
schema:
$ref: '#/definitions/SiteMembershipRequestBodyUpdate'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteMembershipRequestEntry'
'400':
description: |
Invalid parameter: **id** is invalid
or **siteMembershipRequestBodyUpdate** invalid
'401':
description: Authentication failed
'404':
description: |
**personId** or **siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
tags:
- sites
summary: Delete a site membership request
description: |
Deletes the site membership request to site **siteId** for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: deleteSiteMembershipRequestForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/siteIdParam'
responses:
'204':
description: Successful response
'401':
description: Authentication failed
'404':
description: |
**personId** or **siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/sites':
get:
tags:
- sites
summary: List site memberships
description: |
Gets a list of site membership information for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
You can use the **where** parameter to filter the returned sites by **visibility** or site **preset**.
Example to filter by **visibility**, use any one of:
```
(visibility='PRIVATE')
(visibility='PUBLIC')
(visibility='MODERATED')
```
Example to filter by site **preset**:
```
(preset='site-dashboard')
```
The default sort order for the returned list is for sites to be sorted by ascending title.
You can override the default by using the **orderBy** parameter. You can specify one or more of the following fields in the **orderBy** parameter:
* id
* title
* role
operationId: listSiteMembershipsForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/relationsParam'
- $ref: '#/parameters/fieldsParam'
- $ref: '#/parameters/whereParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteRolePaging'
'400':
description: |
Invalid parameter: value of **maxItems**, **skipCount**, **orderBy**, or **where** is invalid
'401':
description: Authentication failed
'404':
description: |
**personId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/sites/{siteId}':
get:
tags:
- sites
summary: Get a site membership
description: |
Gets site membership information for person **personId** on site **siteId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: getSiteMembershipForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/siteIdParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteRoleEntry'
'401':
description: Authentication failed
'404':
description: |
**personId** or **siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
tags:
- sites
summary: Delete a site membership
description: |
Deletes person **personId** as a member of site **siteId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: deleteSiteMembershipForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/siteIdParam'
responses:
'204':
description: Successful response
'401':
description: Authentication failed
'404':
description: |
**personId** or **siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/groups':
get:
x-alfresco-since: "5.2.1"
tags:
- groups
summary: List group memberships
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Gets a list of group membership information for person **personId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
You can use the **include** parameter to return additional information.
You can use the **where** parameter to filter the returned groups by **isRoot**. For example, the following **where**
clause will return just the root groups:
```
(isRoot=true)
```
The **where** parameter can also be used to filter by ***zone***. This may be combined with isRoot to narrow
a result set even further. For example, the following where clause will only return groups belonging to the
`MY.ZONE` zone.
```
where=(zones in ('MY.ZONE'))
```
This may be combined with the isRoot filter, as shown below:
```
where=(isRoot=false AND zones in ('MY.ZONE'))
```
***Note:*** restrictions include
* `AND` is the only supported operator when combining `isRoot` and `zones` filters
* Only one zone is supported by the filter
* The quoted zone name must be placed in parenthesis — a 400 error will result if these are omitted.
The default sort order for the returned list is for groups to be sorted by ascending displayName.
You can override the default by using the **orderBy** parameter. You can specify one or more of the following fields in the **orderBy** parameter:
* id
* displayName
operationId: listGroupMembershipsForPerson
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/groupEntryIncludeParam'
- $ref: '#/parameters/whereParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/GroupPaging'
'400':
description: |
Invalid parameter: value of **maxItems**, **skipCount**, **orderBy** or **personId** is invalid
'401':
description: Authentication failed
'404':
description: |
**personId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/people/{personId}/request-password-reset':
post:
deprecated: true
x-alfresco-since: "5.2.1"
tags:
- people
summary: Request password reset
description: |
**Note:** this endpoint is deprecated as of Alfresco 7.1, and will be removed in the future.
Initiates the reset password workflow to send an email with reset password instruction to the user's registered email.
The client is mandatory in the request body. For example:
```JSON
{
"client": "myClient"
}
```
**Note:** The client must be registered before this API can send an email. See [server documentation]. However, out-of-the-box
share is registered as a default client, so you could pass **share** as the client name:
```JSON
{
"client": "share"
}
```
**Note:** No authentication is required to call this endpoint.
operationId: requestPasswordReset
parameters:
- $ref: '#/parameters/personIdParam'
- in: body
name: clientBody
description: The client name to send email with app-specific url.
required: true
schema:
$ref: '#/definitions/ClientBody'
consumes:
- application/json
responses:
'202':
description: |
Successful response or even when the **personId** does not exist or the user is disabled by an Administrator
'404':
description: |
**client** is not registered
'/people/{personId}/reset-password':
post:
deprecated: true
x-alfresco-since: "5.2.1"
tags:
- people
summary: Reset password
description: |
**Note:** this endpoint is deprecated as of Alfresco 7.1, and will be removed in the future.
Resets user's password
The password, id and key properties are mandatory in the request body. For example:
```JSON
{
"password":"newPassword",
"id":"activiti$10",
"key":"4dad6d00-0daf-413a-b200-f64af4e12345"
}
```
**Note:** No authentication is required to call this endpoint.
operationId: resetPassword
parameters:
- $ref: '#/parameters/personIdParam'
- in: body
name: passwordResetBody
description: The reset password details
required: true
schema:
$ref: '#/definitions/PasswordResetBody'
consumes:
- application/json
responses:
'202':
description: |
Successful response or even when no workflow instance is found with the given **id** or the workflow instance is
invalid (already been used or expired) or the given **personId** does not match the person's id requesting
the password reset or the given workflow **key** does not match the recovered key.
'400':
description: |
Invalid parameter: Value of **password**, **id** or **key** is invalid
'/people/{personId}/avatar':
get:
x-alfresco-since: "5.2.2"
tags:
- people
summary: Get avatar image
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Gets the avatar image related to the person **personId**. If the person has no related avatar then
the **placeholder** query parameter can be optionally used to request a placeholder image to be returned.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: getAvatarImage
parameters:
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/attachmentParam'
- $ref: '#/parameters/ifModifiedSinceHeader'
- name: placeholder
in: query
description: |
If **true** and there is no avatar for this **personId**
then the placeholder image is returned, rather than a 404 response.
required: false
type: boolean
default: true
produces:
- application/octet-stream
responses:
'200':
description: Successful response
schema:
type: file
'304':
description: Content has not been modified since the date provided in the If-Modified-Since header
'400':
description: |
Invalid parameter: **personId** is not a valid format
'401':
description: Authentication failed
'404':
description: |
**personId** does not exist or avatar does not exist (and no placeholder requested)
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
x-alfresco-since: "5.2.2"
tags:
- people
summary: Update avatar image
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Updates the avatar image related to the person **personId**.
The request body should be the binary stream for the avatar image. The content type of the file
should be an image file. This will be used to generate an "avatar" thumbnail rendition.
You must be the person or have admin rights to update a person's avatar.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: updateAvatarImage
parameters:
- $ref: '#/parameters/personIdParam'
- in: body
name: contentBodyUpdate
description: The binary content
required: true
schema:
type: string
format: binary
produces:
- application/json
consumes:
- application/octet-stream
responses:
'200':
description: Successful response
'400':
description: |
Invalid parameter: **personId** is not a valid format or the avatar cannot be uploaded
'401':
description: Authentication failed
'403':
description: Current user does not have permission to update the avatar image for **personId**
'404':
description: |
**personId** does not exist
'413':
description: Content exceeds individual file size limit (configured for network/system)
'501':
description: Renditions/thumbnails are disabled for the system
'507':
description: Content exceeds overall storage quota limit configured for the network/system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "5.2.2"
tags:
- people
summary: Delete avatar image
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Deletes the avatar image related to person **personId**.
You must be the person or have admin rights to update a person's avatar.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: deleteAvatarImage
produces:
- application/json
parameters:
- $ref: '#/parameters/personIdParam'
responses:
'204':
description: Successful response
'401':
description: Authentication failed
'403':
description: Current user does not have permission to delete the avatar image for **personId**
'404':
description: |
**personId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/sites:
get:
tags:
- sites
summary: List sites
description: |
Gets a list of sites in this repository.
You can use the **where** parameter to filter the returned sites by **visibility** or site **preset**.
Example to filter by **visibility**, use any one of:
```
(visibility='PRIVATE')
(visibility='PUBLIC')
(visibility='MODERATED')
```
Example to filter by site **preset**:
```
(preset='site-dashboard')
```
The default sort order for the returned list is for sites to be sorted by ascending title.
You can override the default by using the **orderBy** parameter. You can specify one or more of the following fields in the **orderBy** parameter:
* id
* title
* description
You can use the **relations** parameter to include one or more related
entities in a single response and so reduce network traffic.
The entity types in Alfresco are organized in a tree structure.
The **sites** entity has two children, **containers** and **members**.
The following relations parameter returns all the container and member
objects related to each site:
```
containers,members
```
operationId: listSites
parameters:
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/relationsParam'
- $ref: '#/parameters/fieldsParam'
- $ref: '#/parameters/whereParam'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SitePaging'
'400':
description: |
Invalid parameter: value of **maxItems**, **skipCount**, **orderBy**, or **where** is invalid
'401':
description: Authentication failed
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
x-alfresco-since: "5.2"
tags:
- sites
summary: Create a site
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Creates a default site with the given details. Unless explicitly specified, the site id will be generated
from the site title. The site id must be unique and only contain alphanumeric and/or dash characters.
Note: the id of a site cannot be updated once the site has been created.
For example, to create a public site called "Marketing" the following body could be used:
```JSON
{
"title": "Marketing",
"visibility": "PUBLIC"
}
```
The creation of the (surf) configuration files required by Share can be skipped via the **skipConfiguration** query parameter.
**Note:** if skipped then such a site will **not** work within Share.
The addition of the site to the user's site favorites can be skipped via the **skipAddToFavorites** query parameter.
The creator will be added as a member with Site Manager role.
When you create a site, a container called **documentLibrary** is created for you in the new site.
This container is the root folder for content stored in the site.
operationId: createSite
produces:
- application/json
parameters:
- name: skipConfiguration
in: query
description: Flag to indicate whether the Share-specific (surf) configuration files for the site should not be created.
type: boolean
default: false
- name: skipAddToFavorites
in: query
description: Flag to indicate whether the site should not be added to the user's site favorites.
type: boolean
default: false
- $ref: '#/parameters/fieldsParam'
- in: body
name: siteBodyCreate
description: The site details
required: true
schema:
$ref: '#/definitions/SiteBodyCreate'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/SiteEntry'
'400':
description: |
Invalid parameter: **id**, **title**, or **description** exceed the maximum length;
or **id** contains invalid characters; or **siteBodyCreate** invalid
'401':
description: Authentication failed
'409':
description: Site with the given identifier already exists
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/sites/{siteId}':
get:
tags:
- sites
summary: Get a site
description: |
Gets information for site **siteId**.
You can use the **relations** parameter to include one or more related
entities in a single response and so reduce network traffic.
The entity types in Alfresco are organized in a tree structure.
The **sites** entity has two children, **containers** and **members**.
The following relations parameter returns all the container and member
objects related to the site **siteId**:
```
containers,members
```
operationId: getSite
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/relationsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteEntry'
'401':
description: Authentication failed
'404':
description: |
**siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
x-alfresco-since: "5.2"
tags:
- sites
summary: Update a site
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Update the details for the given site **siteId**. Site Manager or otherwise a
(site) admin can update title, description or visibility.
Note: the id of a site cannot be updated once the site has been created.
operationId: updateSite
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: siteBodyUpdate
description: The site information to update.
required: true
schema:
$ref: '#/definitions/SiteBodyUpdate'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteEntry'
'400':
description: |
Invalid parameter: **siteBodyUpdate** invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to update the site that is visible to them.
'404':
description: |
**siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "5.2"
tags:
- sites
summary: Delete a site
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Deletes the site with **siteId**.
operationId: deleteSite
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- name: permanent
in: query
description: Flag to indicate whether the site should be permanently deleted i.e. bypass the trashcan.
type: boolean
default: false
responses:
'204':
description: Successful response
'401':
description: Authentication failed
'403':
description: Current user does not have permission to delete the site that is visible to them.
'404':
description: |
**siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/sites/{siteId}/containers':
get:
tags:
- sites
summary: List site containers
description: Gets a list of containers for the site **siteId**.
operationId: listSiteContainers
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteContainerPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'404':
description: |
**siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/sites/{siteId}/containers/{containerId}':
get:
tags:
- sites
summary: Get a site container
description: Gets information on the container **containerId** in site **siteId**.
operationId: getSiteContainer
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- name: containerId
in: path
description: The unique identifier of a site container.
required: true
type: string
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteContainerEntry'
'401':
description: Authentication failed
'404':
description: |
**siteId** or **containerId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/site-membership-requests':
get:
tags:
- sites
summary: Get site membership requests
description: |
Get the list of site membership requests the user can action.
You can use the **where** parameter to filter the returned site membership requests by **siteId**. For example:
```
(siteId=mySite)
```
The **where** parameter can also be used to filter by ***personId***. For example:
```
where=(personId=person)
```
This may be combined with the siteId filter, as shown below:
```
where=(siteId=mySite AND personId=person)
```
operationId: getSiteMembershipRequests
produces:
- application/json
parameters:
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/whereParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteMembershipRequestWithPersonPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/sites/{siteId}/site-membership-requests/{inviteeId}/approve':
post:
tags:
- sites
summary: Approve a site membership request
description: |
Approve a site membership request.
operationId: approveSiteMembershipRequest
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/inviteeIdParam'
- in: body
name: siteMembershipApprovalBody
description: |
Accepting a request to join, optionally, allows assignment of a role to the user.
required: false
schema:
$ref: '#/definitions/SiteMembershipApprovalBody'
responses:
'200':
description: Successful response
'400':
description: |
Invalid parameter: value of **siteId** or **inviteeId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to approve membership request
'404':
description: |
**siteId** or **inviteeId** does not exist
'422':
description: |
Integrity exception or not allowed to approve membership request.
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/sites/{siteId}/site-membership-requests/{inviteeId}/reject':
post:
tags:
- sites
summary: Reject a site membership request
description: |
Reject a site membership request.
operationId: rejectSiteMembershipRequest
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/inviteeIdParam'
- in: body
name: siteMembershipRejectionBody
description: |
Rejecting a request to join, optionally, allows the inclusion of comment.
required: false
schema:
$ref: '#/definitions/SiteMembershipRejectionBody'
responses:
'200':
description: Successful response
'400':
description: |
Invalid parameter: value of **siteId** or **inviteeId** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to reject membership request
'422':
description: |
Integrity exception or not allowed to reject membership request.
'404':
description: |
**siteId** or **inviteeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/sites/{siteId}/members':
get:
tags:
- sites
summary: List site memberships
description: Gets a list of site memberships for site **siteId**.
operationId: listSiteMemberships
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
- name: where
in: query
description: |
Optionally filter the list.
* ```where=(isMemberOfGroup=false|true)```
required: false
type: string
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteMemberPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'404':
description: |
**siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
tags:
- sites
summary: Create a site membership
description: |
Creates a site membership for person **personId** on site **siteId**.
You can set the **role** to one of four types:
* SiteConsumer
* SiteCollaborator
* SiteContributor
* SiteManager
**Note:** You can create more than one site membership by
specifying a list of people in the JSON body like this:
```JSON
[
{
"role": "SiteConsumer",
"id": "joe"
},
{
"role": "SiteConsumer",
"id": "fred"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createSiteMembership
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: siteMembershipBodyCreate
description: The person to add and their role
required: true
schema:
$ref: '#/definitions/SiteMembershipBodyCreate'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/SiteMemberEntry'
'400':
description: |
Invalid parameter: value of **role** or **id** is invalid
or **siteMembershipBodyCreate** invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to invite a person
'404':
description: |
**siteId** or **personId** does not exist
'409':
description: Person with this **id** is already a member
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/sites/{siteId}/members/{personId}':
get:
tags:
- sites
summary: Get a site membership
description: |
Gets site membership information for person **personId** on site **siteId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: getSiteMembership
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteMemberEntry'
'401':
description: Authentication failed
'404':
description: |
**siteId** or **personId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
tags:
- sites
summary: Update a site membership
description: |
Update the membership of person **personId** in site **siteId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
You can set the **role** to one of four types:
* SiteConsumer
* SiteCollaborator
* SiteContributor
* SiteManager
operationId: updateSiteMembership
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/personIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: siteMembershipBodyUpdate
description: The persons new role
required: true
schema:
$ref: '#/definitions/SiteMembershipBodyUpdate'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteMemberEntry'
'400':
description: |
Invalid parameter: **role** does not exist
or **siteMembershipBodyUpdate** invalid
'401':
description: Authentication failed
'404':
description: |
**siteId** or **personId** does not exist
'422':
description: Integrity exception (eg. last site member must be a site manager) or not allowed to update member
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
tags:
- sites
summary: Delete a site membership
description: |
Deletes person **personId** as a member of site **siteId**.
You can use the `-me-` string in place of `` to specify the currently authenticated user.
operationId: deleteSiteMembership
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/personIdParam'
responses:
'204':
description: Successful response
'401':
description: Authentication failed
'404':
description: |
**siteId** or **personId** does not exist
'422':
description: Integrity exception (eg. last site member must be a site manager) or not allowed to delete member
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/sites/{siteId}/group-members':
get:
tags:
- sites
summary: List group membership for site
description: |
**Note:** this endpoint is available in Alfresco 7.0.0 and newer versions.
Gets a list of group membership for site **siteId**.
operationId: listSiteGroups
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteGroupPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'404':
description: |
**siteId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
tags:
- sites
summary: Create a site membership for group
description: |
**Note:** this endpoint is available in Alfresco 7.0.0 and newer versions.
Creates a site membership for group **groupId** on site **siteId**.
You can set the **role** to one of four types:
* SiteConsumer
* SiteCollaborator
* SiteContributor
* SiteManager
**Note:** You can create more than one site membership by
specifying a list of group in the JSON body like this:
```JSON
[
{
"role": "SiteConsumer",
"id": "authorityId"
},
{
"role": "SiteConsumer",
"id": "authorityId"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createSiteGroupMembership
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: siteMembershipBodyCreate
description: The group to add and their role
required: true
schema:
$ref: '#/definitions/SiteMembershipBodyCreate'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/SiteGroupEntry'
'400':
description: |
Invalid parameter: value of **role** or **id** is invalid
or **siteMembershipBodyCreate** invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to invite a Group
'404':
description: |
**siteId** or **groupId** does not exist
'409':
description: Group with this **id** is already a member
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/sites/{siteId}/group-members/{groupId}':
get:
tags:
- sites
summary: Get information about site membership of group
description: |
**Note:** this endpoint is available in Alfresco 7.0.0 and newer versions.
Gets site membership information for group **groupId** on site **siteId**.
operationId: getSiteGroupMembership
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/groupIdParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteGroupEntry'
'401':
description: Authentication failed
'404':
description: |
**siteId** or **groupId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
tags:
- sites
summary: Update site membership of group
description: |
**Note:** this endpoint is available in Alfresco 7.0.0 and newer versions.
Update the membership of person **groupId** in site **siteId**.
You can set the **role** to one of four types:
* SiteConsumer
* SiteCollaborator
* SiteContributor
* SiteManager
operationId: updateSiteGroupMembership
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/groupIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: siteMembershipBodyUpdate
description: The groupId new role
required: true
schema:
$ref: '#/definitions/SiteMembershipBodyUpdate'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SiteGroupEntry'
'400':
description: |
Invalid parameter: **role** does not exist
or **siteMembershipBodyUpdate** invalid
'401':
description: Authentication failed
'404':
description: |
**siteId** or **groupId** does not exist
'422':
description: Integrity exception (eg. last site member must be a site manager) or not allowed to update group
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
tags:
- sites
summary: Delete a group membership for site
description: |
**Note:** this endpoint is available in Alfresco 7.0.0 and newer versions.
Deletes group **groupId** as a member of site **siteId**.
operationId: deleteSiteGroupMembership
produces:
- application/json
parameters:
- $ref: '#/parameters/siteIdParam'
- $ref: '#/parameters/groupIdParam'
responses:
'204':
description: Successful response
'401':
description: Authentication failed
'404':
description: |
**siteId** or **groupId** does not exist
'422':
description: Integrity exception (eg. last site member must be a site manager) or not allowed to delete groupId
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/tags:
get:
tags:
- tags
summary: List tags
description: |
Gets a list of tags in this repository.
You can use the **include** parameter to return additional **values** information.
You can sort the result list using the **orderBy** parameter. You can specify one or more of the following fields in the **orderBy** parameter:
* tag
* count
operationId: listTags
parameters:
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
- $ref: '#/parameters/tagEntryIncludeParam'
- $ref: '#/parameters/orderByParam'
- name: where
in: query
description: |
Optionally filter the list. The only supported options are:
* ```where=(tag='tagName')```
* ```where=(tag in ('tag1', 'tag2'))```
* ```where=(tag matches ('*tag*'))```
OR operator is also supported.
required: false
type: string
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/TagPaging'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
x-alfresco-since: "7.4"
tags:
- tags
summary: Create a tag
description: |
**Note:** this endpoint is available in Alfresco 7.4 and newer versions.
Creates a new tag.
You must have admin rights to create a tag with this endpoint.
operationId: createTag
produces:
- application/json
parameters:
- $ref: '#/parameters/tagEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: tagBodyCreate
description: The tag details
required: true
schema:
$ref: '#/definitions/TagBody'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/TagEntry'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: User is not an administrator
'409':
description: Tag with the given name already exists
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/tags/{tagId}':
get:
tags:
- tags
summary: Get a tag
description: Get a specific tag with **tagId**.
produces:
- application/json
operationId: getTag
parameters:
- $ref: '#/parameters/tagIdParam'
- $ref: '#/parameters/tagEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/TagEntry'
examples:
application/json:
id: ed2444b5-d0c1-440b-b5b8-34a53e578091
tag: test tag 1
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'404':
description: |
**tagId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
tags:
- tags
summary: Update a tag
description: |
Updates the tag **tagId**.
You must have admin rights to update a tag.
operationId: updateTag
produces:
- application/json
parameters:
- $ref: '#/parameters/tagIdParam'
- $ref: '#/parameters/tagEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: tagBodyUpdate
description: The updated tag
required: true
schema:
$ref: '#/definitions/TagBody'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/TagEntry'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: Current user is not an administrator and so does not have permission to update the tag.
'404':
description: |
**tagId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "7.4"
tags:
- tags
summary: Delete a tag
description: |
**Note:** this endpoint is available in Alfresco 7.4 and newer versions.
Deletes the tag with **tagId**. This will cause the tag to be removed from all nodes.
You must have admin rights to delete a tag.
operationId: deleteTag
produces:
- application/json
parameters:
- $ref: '#/parameters/tagIdParam'
responses:
'204':
description: Successful response
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: Current user is not an administrator and so does not have permission to delete the tag.
'404':
description: |
**tagId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/categories/{categoryId}':
get:
x-alfresco-since: "7.4"
tags:
- categories
summary: Get a category
description: |
**Note:** this endpoint is available in Alfresco 7.4 and newer versions.
Get a specific category with **categoryId**.
produces:
- application/json
operationId: getCategory
parameters:
- $ref: '#/parameters/categoryIdParam'
- $ref: '#/parameters/categoryEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/CategoryEntry'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'404':
description: |
**categoryId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
x-alfresco-since: "7.4"
tags:
- categories
summary: Update a category
description: |
**Note:** this endpoint is available in Alfresco 7.4 and newer versions.
Updates the category **categoryId**.
You must have admin rights to update a category.
operationId: updateCategory
produces:
- application/json
parameters:
- $ref: '#/parameters/categoryIdParam'
- $ref: '#/parameters/categoryEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: categoryBodyUpdate
description: The updated category
required: true
schema:
$ref: '#/definitions/CategoryBody'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/CategoryEntry'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: Current user is not an administrator and so does not have permission to update the category.
'404':
description: |
**categoryId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "7.4"
tags:
- categories
summary: Delete a category
description: |
**Note:** this endpoint is available in Alfresco 7.4 and newer versions.
Deletes the category with **categoryId**. This will cause everything to be removed from the category.
You must have admin rights to delete a category.
operationId: deleteCategory
produces:
- application/json
parameters:
- $ref: '#/parameters/categoryIdParam'
responses:
'204':
description: Successful response
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: Current user is not an administrator and so does not have permission to delete the category.
'404':
description: |
**categoryId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/categories/{categoryId}/subcategories':
get:
x-alfresco-since: "7.4"
tags:
- categories
summary: List categories
description: |
**Note:** this endpoint is available in Alfresco 7.4 and newer versions.
Gets a list of subcategories within the category **categoryId**.
The parameter categoryId can be set to the alias -root- to obtain a list of top level categories.
operationId: listSubcategories
produces:
- application/json
parameters:
- $ref: '#/parameters/categoryIdParam'
- $ref: '#/parameters/categoryEntryIncludeParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/CategoryPaging'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'404':
description: |
**categoryId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
x-alfresco-since: "7.4"
tags:
- categories
summary: Create a category
description: |
**Note:** this endpoint is available in Alfresco 7.4 and newer versions.
Creates a new category within the category **categoryId**.
The parameter categoryId can be set to the alias -root- to create a new top level category.
You must have admin rights to create a category.
It is possible to create more than one subcategory by posting a list of categories:
```JSON
[
{
"name": "test category 1"
},
{
"name": "test category 2"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createCategory
produces:
- application/json
parameters:
- $ref: '#/parameters/categoryIdParam'
- $ref: '#/parameters/categoryEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: categoryBodyCreate
description: The category details
required: true
schema:
$ref: '#/definitions/CategoryBody'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/CategoryEntry'
'400':
description: An invalid parameter has been supplied.
'401':
description: Authentication failed
'403':
description: User is not an administrator
'409':
description: Category with the given name already exists under the parent category
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/networks/{networkId}':
get:
tags:
- networks
summary: Get a network
description: Gets information for a network **networkId**.
operationId: getNetwork
parameters:
- $ref: '#/parameters/networkIdParam'
- $ref: '#/parameters/fieldsParam'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/PersonNetworkEntry'
'401':
description: Authentication failed
'404':
description: |
**networkId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/shared-links':
post:
x-alfresco-since: "5.2"
tags:
- shared-links
summary: Create a shared link to a file
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Create a shared link to the file **nodeId** in the request body. Also, an optional expiry date could be set,
so the shared link would become invalid when the expiry date is reached. For example:
```JSON
{
"nodeId": "1ff9da1a-ee2f-4b9c-8c34-3333333333",
"expiresAt": "2017-03-23T23:00:00.000+0000"
}
```
**Note:** You can create shared links to more than one file
specifying a list of **nodeId**s in the JSON body like this:
```JSON
[
{
"nodeId": "1ff9da1a-ee2f-4b9c-8c34-4444444444"
},
{
"nodeId": "1ff9da1a-ee2f-4b9c-8c34-5555555555"
}
]
```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON
{
"list": {
"pagination": {
"count": 2,
"hasMoreItems": false,
"totalItems": 2,
"skipCount": 0,
"maxItems": 100
},
"entries": [
{
"entry": {
...
}
},
{
"entry": {
...
}
}
]
}
}
```
operationId: createSharedLink
parameters:
- $ref: '#/parameters/sharedLinkEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: sharedLinkBodyCreate
description: The nodeId to create a shared link for.
required: true
schema:
$ref: '#/definitions/SharedLinkBodyCreate'
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SharedLinkEntry'
'400':
description: |
Invalid parameter: **nodeId** is not a valid format, or does not identify a file,
or **sharedLinkBodyCreate** invalid, or the specified expiry date is invalid. E.g. the expiry date
has already passed
'401':
description: Authentication failed
'403':
description: Current user does not have permission to create **sharedId** (for example, no read permission)
'404':
description: |
**nodeId** does not exist
'409':
description: Shared link already exists for **nodeId**
'501':
description: Shared links are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
get:
x-alfresco-since: "5.2"
tags:
- shared-links
summary: List shared links
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Get a list of links that the current user has read permission on source node.
The list is ordered in descending modified order.
**Note:** The list of links is eventually consistent so newly created shared links may not appear immediately.
operationId: listSharedLinks
parameters:
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- name: where
in: query
description: |
Optionally filter the list by "sharedByUser" userid of person who shared the link (can also use -me-)
* ```where=(sharedByUser='jbloggs')```
* ```where=(sharedByUser='-me-')```
required: false
type: string
- $ref: '#/parameters/sharedLinkEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SharedLinkPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'501':
description: Shared links are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/shared-links/{sharedId}':
get:
x-alfresco-since: "5.2"
tags:
- shared-links
summary: Get a shared link
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets minimal information for the file with shared link identifier **sharedId**.
**Note:** No authentication is required to call this endpoint.
operationId: getSharedLink
parameters:
- $ref: '#/parameters/sharedIdParam'
- $ref: '#/parameters/fieldsParam'
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SharedLinkEntry'
'400':
description: |
Invalid parameter: **sharedId** is not a valid format
'404':
description: |
**sharedId** does not exist
'501':
description: Shared links are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "5.2"
tags:
- shared-links
summary: Deletes a shared link
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Deletes the shared link with identifier **sharedId**.
operationId: deleteSharedLink
parameters:
- $ref: '#/parameters/sharedIdParam'
produces:
- application/json
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **sharedId** is not a valid format
'401':
description: Authentication failed
'403':
description: Current user does not have permission to delete **sharedId**
'404':
description: |
**sharedId** does not exist
'501':
description: Shared links are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/shared-links/{sharedId}/content':
get:
x-alfresco-since: "5.2"
tags:
- shared-links
summary: Get shared link content
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the content of the file with shared link identifier **sharedId**.
**Note:** No authentication is required to call this endpoint.
operationId: getSharedLinkContent
parameters:
- $ref: '#/parameters/sharedIdParam'
- $ref: '#/parameters/attachmentParam'
- $ref: '#/parameters/ifModifiedSinceHeader'
- $ref: '#/parameters/RangeHeader'
produces:
- application/octet-stream
responses:
'200':
description: Successful response
schema:
type: file
'206':
description: Partial Content
'304':
description: Content has not been modified since the date provided in the If-Modified-Since header
'400':
description: |
Invalid parameter: **sharedId** is not a valid format
'404':
description: |
**sharedId** does not exist
'412':
description: |
Content is archived and is inaccessible
'416':
description: Range Not Satisfiable
'501':
description: Shared links are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/shared-links/{sharedId}/renditions':
get:
x-alfresco-since: "5.2"
tags:
- shared-links
summary: List renditions for a shared link
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of the rendition information for the file with shared link identifier **sharedId**.
This API method returns rendition information, including the rendition id, for each rendition
where the rendition status is CREATED, which means the rendition is available to view/download.
**Note:** No authentication is required to call this endpoint.
operationId: listSharedLinkRenditions
parameters:
- $ref: '#/parameters/sharedIdParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/RenditionPaging'
'400':
description: |
Invalid parameter: **sharedId** is not a valid format
'404':
description: |
**sharedId** does not exist
'501':
description: Shared links are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/shared-links/{sharedId}/renditions/{renditionId}':
get:
x-alfresco-since: "5.2"
tags:
- shared-links
summary: Get shared link rendition information
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets rendition information for the file with shared link identifier **sharedId**.
This API method returns rendition information where the rendition status is CREATED,
which means the rendition is available to view/download.
**Note:** No authentication is required to call this endpoint.
operationId: getSharedLinkRendition
parameters:
- $ref: '#/parameters/sharedIdParam'
- $ref: '#/parameters/renditionIdParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/RenditionEntry'
'400':
description: |
Invalid parameter: **sharedId** is not a valid format, or **renditionId** is invalid
'404':
description: |
**sharedId** or **renditionId** does not exist (ie. not CREATED)
'501':
description: Shared links are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/shared-links/{sharedId}/renditions/{renditionId}/content':
get:
x-alfresco-since: "5.2"
tags:
- shared-links
summary: Get shared link rendition content
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets the rendition content for file with shared link identifier **sharedId**.
**Note:** No authentication is required to call this endpoint.
operationId: getSharedLinkRenditionContent
parameters:
- $ref: '#/parameters/sharedIdParam'
- $ref: '#/parameters/renditionIdParam'
- $ref: '#/parameters/attachmentParam'
- $ref: '#/parameters/ifModifiedSinceHeader'
- $ref: '#/parameters/RangeHeader'
produces:
- application/octet-stream
responses:
'200':
description: Successful response
schema:
type: file
'206':
description: Partial Content
'304':
description: Content has not been modified since the date provided in the If-Modified-Since header
'400':
description: |
Invalid parameter: **sharedId** is not a valid format, or **renditionId** is invalid
'404':
description: |
**sharedId** does not exist
'412':
description: |
Content is archived and is inaccessible
'416':
description: Range Not Satisfiable
'501':
description: Shared links are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/shared-links/{sharedId}/email':
post:
x-alfresco-since: "5.2"
tags:
- shared-links
summary: Email shared link
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Sends email with app-specific url including identifier **sharedId**.
The client and recipientEmails properties are mandatory in the request body. For example, to email a shared link with minimum info:
```JSON
{
"client": "myClient",
"recipientEmails": ["john.doe@acme.com", "joe.bloggs@acme.com"]
}
```
A plain text message property can be optionally provided in the request body to customise the sent email.
Also, a locale property can be optionally provided in the request body to send the emails in a particular language (if the locale is supported by Alfresco).
For example, to email a shared link with a messages and a locale:
```JSON
{
"client": "myClient",
"recipientEmails": ["john.doe@acme.com", "joe.bloggs@acme.com"],
"message": "myMessage",
"locale":"en-GB"
}
```
**Note:** The client must be registered before you can send a shared link email. See [server documentation]. However, out-of-the-box
share is registered as a default client, so you could pass **share** as the client name:
```JSON
{
"client": "share",
"recipientEmails": ["john.doe@acme.com"]
}
```
operationId: emailSharedLink
parameters:
- $ref: '#/parameters/sharedIdParam'
- in: body
name: sharedLinkBodyEmail
description: The shared link email to send.
required: true
schema:
$ref: '#/definitions/SharedLinkBodyEmail'
consumes:
- application/json
responses:
'202':
description: Successful response
'400':
description: |
Invalid parameter: **sharedId** is not a valid format
or **sharedLinkBodyEmail** invalid
'401':
description: Authentication failed
'404':
description: |
**sharedId** does not exist or **client** is not registered
'501':
description: Shared links are disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/probes/{probeId}':
get:
x-alfresco-since: "6.0"
tags:
- probes
summary: Check readiness and liveness of the repository
description: |
**Note:** this endpoint is available in Alfresco 6.0 and newer versions.
Returns a status of 200 to indicate success and 503 for failure.
The readiness probe is normally only used to check repository startup.
The liveness probe should then be used to check the repository is still responding to requests.
**Note:** No authentication is required to call this endpoint.
operationId: getProbe
parameters:
- name: probeId
in: path
description: |
The name of the probe:
* -ready-
* -live-
required: true
type: string
produces:
- application/json
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/ProbeEntry'
'404':
description: |
**probeId** does not exist
'503':
description: Service Unavailable - Probe failure status.
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/queries/nodes':
get:
x-alfresco-since: "5.2"
tags:
- queries
summary: Find nodes
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of nodes that match the given search criteria.
The search term is used to look for nodes that match against name, title, description, full text content or tags.
The search term:
- must contain a minimum of 3 alphanumeric characters
- allows "quoted term"
- can optionally use '*' for wildcard matching
By default, file and folder types will be searched unless a specific type is provided as a query parameter.
By default, the search will be across the repository unless a specific root node id is provided to start the search from.
You can sort the result list using the **orderBy** parameter. You can specify one or more of the following fields in the **orderBy** parameter:
* name
* modifiedAt
* createdAt
operationId: findNodes
produces:
- application/json
parameters:
- name: term
in: query
description: The term to search for.
type: string
required: true
- name: rootNodeId
in: query
description: |
The id of the node to start the search from.
Supports the aliases -my-, -root- and -shared-.
type: string
required: false
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- name: nodeType
in: query
description: |
Restrict the returned results to only those of the given node type and its sub-types
type: string
required: false
- $ref: '#/parameters/nodeAssocMinimalEntryIncludeParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/NodePaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid, or search **term** too short, or **nodeType** unknown, or **orderBy** invalid
'401':
description: Authentication failed
'404':
description: |
**rootNodeId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/queries/sites':
get:
x-alfresco-since: "5.2"
tags:
- queries
summary: Find sites
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of sites that match the given search criteria.
The search term is used to look for sites that match against site id, title or description.
The search term:
- must contain a minimum of 2 alphanumeric characters
- can optionally use '*' for wildcard matching within the term
The default sort order for the returned list is for sites to be sorted by ascending id.
You can override the default by using the **orderBy** parameter. You can specify one or more of the following fields in the **orderBy** parameter:
* id
* title
* description
operationId: findSites
produces:
- application/json
parameters:
- name: term
in: query
description: The term to search for.
type: string
required: true
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/SitePaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid, or search **term** too short, or **orderBy** invalid
'401':
description: Authentication failed
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/queries/people':
get:
x-alfresco-since: "5.2"
tags:
- queries
summary: Find people
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Gets a list of people that match the given search criteria.
The search term is used to look for matches against person id, firstname and lastname.
The search term:
- must contain a minimum of 2 alphanumeric characters
- can optionally use '*' for wildcard matching within the term
You can sort the result list using the **orderBy** parameter. You can specify one or more of the following fields in the **orderBy** parameter:
* id
* firstName
* lastName
operationId: findPeople
produces:
- application/json
parameters:
- name: term
in: query
description: |
The term to search for.
type: string
required: true
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
- $ref: '#/parameters/orderByParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/PersonPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid, or search **term** too short, or **orderBy** invalid
'401':
description: Authentication failed
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/groups':
get:
x-alfresco-since: "5.2.1"
tags:
- groups
summary: List groups
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Gets a list of groups.
You can use the **include** parameter to return additional information.
You can use the **where** parameter to filter the returned groups by **isRoot**. For example, the following **where**
clause will return just the root groups:
```
(isRoot=true)
```
The **where** parameter can also be used to filter by ***zone*** and ***displayName***.
They may be combined with isRoot to narrow a result set even further.
For example, the following where clause will only return groups belonging to the `MY.ZONE` zone.
```
where=(zones in ('MY.ZONE'))
```
This may be combined with the isRoot filter, as shown below:
```
where=(isRoot=false AND zones in ('MY.ZONE'))
```
The following where clause will only return groups with displayName `MY.GROUP.NAME`.
```
where=(displayName in ('MY.GROUP.NAME'))
```
This may be combined with the isRoot and zones filter, as shown below:
```
where=(isRoot=false AND displayName in ('MY.GROUP.NAME'))
```
```
where=(zones in ('MY.ZONE') AND displayName in ('MY.GROUP.NAME'))
```
```
where=(isRoot=false AND zones in ('MY.ZONE') AND displayName in ('MY.GROUP.NAME'))
```
***Note:*** restrictions include
* `AND` is the only supported operator when combining `isRoot`, `zones` and `displayName` filters
* Only one zone is supported by the filter
* Only one displayName is supported by the filter
* The quoted zone name and displayName must be placed in parenthesis — a 400 error will result if these are omitted.
The default sort order for the returned list is for groups to be sorted by ascending displayName.
You can override the default by using the **orderBy** parameter. You can specify one of the following fields in the **orderBy** parameter:
* id
* displayName
operationId: listGroups
produces:
- application/json
parameters:
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/groupEntryIncludeParam'
- $ref: '#/parameters/whereParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/GroupPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount**, or **orderBy**, or **where** is invalid
'401':
description: Authentication failed
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
x-alfresco-since: "5.2.1"
tags:
- groups
summary: Create a group
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Create a group.
The group id must start with "GROUP\_". If this is omitted it will be added automatically.
This format is also returned when listing groups or group memberships. It should be noted
that the other group-related operations also expect the id to start with "GROUP\_".
If one or more parentIds are specified then the group will be created and become a member
of each of the specified parent groups.
If no parentIds are specified then the group will be created as a root group.
The group will be created in the **APP.DEFAULT** and **AUTH.ALF** zones.
You must have admin rights to create a group.
operationId: createGroup
produces:
- application/json
parameters:
- $ref: '#/parameters/groupEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: groupBodyCreate
description: The group to create.
required: true
schema:
$ref: '#/definitions/GroupBodyCreate'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/GroupEntry'
'400':
description: |
Invalid parameter: invalid **groupBodyCreate**
'401':
description: Authentication failed
'403':
description: User does not have permission to create a group
'404':
description: |
**parentIds** does not exist
'409':
description: |
**id** clashes with an existing group
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/groups/{groupId}':
get:
x-alfresco-since: "5.2.1"
tags:
- groups
summary: Get group details
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Get details for group **groupId**.
You can use the **include** parameter to return additional information.
operationId: getGroup
produces:
- application/json
parameters:
- $ref: '#/parameters/groupIdParam'
- $ref: '#/parameters/groupEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/GroupEntry'
'400':
description: |
Invalid parameter: invalid **groupId**
'401':
description: Authentication failed
'404':
description: |
**groupId** does not exist
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
x-alfresco-since: "5.2.1"
tags:
- groups
summary: Update group details
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Update details (displayName) for group **groupId**.
You must have admin rights to update a group.
operationId: updateGroup
produces:
- application/json
parameters:
- $ref: '#/parameters/groupIdParam'
- $ref: '#/parameters/groupEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: groupBodyUpdate
description: The group information to update.
required: true
schema:
$ref: '#/definitions/GroupBodyUpdate'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/GroupEntry'
'400':
description: |
Invalid parameter: **groupId** or **groupBodyCreate** is invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to update a group
'404':
description: |
**groupId** does not exist
'409':
description: |
Trying to modify a pre-defined system group, such as GROUP_EVERYONE
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "5.2.1"
tags:
- groups
summary: Delete a group
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Delete group **groupId**.
The option to cascade delete applies this recursively to any hierarchy of group members.
In this case, removing a group member does not delete the person or sub-group itself.
If a removed sub-group no longer has any parent groups then it becomes a root group.
You must have admin rights to delete a group.
operationId: deleteGroup
produces:
- application/json
parameters:
- $ref: '#/parameters/groupIdParam'
- name: cascade
in: query
description: |
If **true** then the delete will be applied in cascade to sub-groups.
required: false
type: boolean
default: false
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **groupId** is invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to delete a group member
'404':
description: |
**groupId** does not exist
'409':
description: |
Trying to delete a pre-defined system group, such as GROUP_EVERYONE.
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/groups/{groupId}/members':
post:
x-alfresco-since: "5.2.1"
tags:
- groups
summary: Create a group membership
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Create a group membership (for an existing person or group) within a group **groupId**.
If the added group was previously a root group then it becomes a non-root group since it now has a parent.
It is an error to specify an **id** that does not exist.
You must have admin rights to create a group membership.
operationId: createGroupMembership
produces:
- application/json
parameters:
- $ref: '#/parameters/groupIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: groupMembershipBodyCreate
description: The group membership to add (person or sub-group).
required: true
schema:
$ref: '#/definitions/GroupMembershipBodyCreate'
responses:
'201':
description: Successful response
schema:
$ref: '#/definitions/GroupMemberEntry'
'400':
description: |
Invalid parameter: **groupId** or **groupMembershipBodyCreate** is invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to create a group membership
'404':
description: |
**groupId** or *id* (of group or person) does not exist
'409':
description: |
Trying to modify a pre-defined system group, such as GROUP_EVERYONE.
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
get:
x-alfresco-since: "5.2.1"
tags:
- groups
summary: List memberships of a group
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Gets a list of the group memberships for the group **groupId**.
You can use the **where** parameter to filter the returned groups by **memberType**.
Example to filter by **memberType**, use any one of:
```
(memberType='GROUP')
(memberType='PERSON')
```
The default sort order for the returned list is for group members to be sorted by ascending displayName.
You can override the default by using the **orderBy** parameter. You can specify one of the following fields in the **orderBy** parameter:
* id
* displayName
operationId: listGroupMemberships
produces:
- application/json
parameters:
- $ref: '#/parameters/groupIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/whereParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/GroupMemberPaging'
'400':
description: |
Invalid parameter: value of **maxItems**, **skipCount**, **orderBy**, or **where** is invalid
'401':
description: Authentication failed
'404':
description: |
**groupId** does not exist
'405':
description: |
Trying to list all members of a pre-defined system group, such as GROUP_EVERYONE
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/groups/{groupId}/members/{groupMemberId}':
delete:
x-alfresco-since: "5.2.1"
tags:
- groups
summary: Delete a group membership
description: |
**Note:** this endpoint is available in Alfresco 5.2.1 and newer versions.
Delete group member **groupMemberId** (person or sub-group) from group **groupId**.
Removing a group member does not delete the person or sub-group itself.
If a removed sub-group no longer has any parent groups then it becomes a root group.
You must have admin rights to delete a group membership.
operationId: deleteGroupMembership
produces:
- application/json
parameters:
- $ref: '#/parameters/groupIdParam'
- $ref: '#/parameters/groupMemberIdParam'
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: value of **groupId**, or **groupMemberId** is invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to delete a group membership
'404':
description: |
**groupId** or **groupMemberId** does not exist
'409':
description: |
Trying to delete a member of a pre-defined system group, such as GROUP_EVERYONE
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/audit-applications':
get:
x-alfresco-since: "5.2.2"
tags:
- audit
summary: List audit applications
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Gets a list of audit applications in this repository.
This list may include pre-configured audit applications, if enabled, such as:
* alfresco-access
* CMISChangeLog
* Alfresco Tagging Service
* Alfresco Sync Service (used by Enterprise Cloud Sync)
You must have admin rights to retrieve audit information.
operationId: listAuditApps
produces:
- application/json
parameters:
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/AuditAppPaging'
'400':
description: |
Invalid parameter: value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to retrieve audit information
'501':
description: Audit is disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/audit-applications/{auditApplicationId}':
get:
x-alfresco-since: "5.2.2"
tags:
- audit
summary: Get audit application info
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Get status of an audit application **auditApplicationId**.
You must have admin rights to retrieve audit information.
You can use the **include** parameter to return the minimum and/or maximum audit record id for the application.
operationId: getAuditApp
produces:
- application/json
parameters:
- $ref: '#/parameters/auditApplicationIdParam'
- $ref: '#/parameters/fieldsParam'
- $ref: '#/parameters/auditApplicationIncludeParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/AuditApp'
'400':
description: |
Invalid parameter: invalid **auditApplicationId**
'401':
description: Authentication failed
'403':
description: User does not have permission to retrieve audit information
'404':
description: |
**applicationId** does not exist
'501':
description: Audit is disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
put:
x-alfresco-since: "5.2.2"
tags:
- audit
summary: Update audit application info
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Disable or re-enable the audit application **auditApplicationId**.
New audit entries will not be created for a disabled audit application until
it is re-enabled (and system-wide auditing is also enabled).
Note, it is still possible to query &/or delete any existing audit entries even
if auditing is disabled for the audit application.
You must have admin rights to update audit application.
operationId: updateAuditApp
produces:
- application/json
parameters:
- $ref: '#/parameters/auditApplicationIdParam'
- $ref: '#/parameters/fieldsParam'
- in: body
name: auditAppBodyUpdate
description: The audit application to update.
required: true
schema:
$ref: '#/definitions/AuditBodyUpdate'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/AuditApp'
'400':
description: |
Invalid parameter: **auditApplicationId** is not a valid format or **auditAppBodyUpdate** is invalid
'401':
description: Authentication failed
'403':
description: Current user does not have permission to update audit application
'404':
description: |
**auditApplicationId** does not exist
'501':
description: Audit is disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/audit-applications/{auditApplicationId}/audit-entries':
get:
x-alfresco-since: "5.2.2"
tags:
- audit
summary: List audit entries for an audit application
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Gets a list of audit entries for audit application **auditApplicationId**.
You can use the **include** parameter to return additional **values** information.
The list can be filtered by one or more of:
* **createdByUser** person id
* **createdAt** inclusive time period
* **id** inclusive range of ids
* **valuesKey** audit entry values contains the exact matching key
* **valuesValue** audit entry values contains the exact matching value
The default sort order is **createdAt** ascending, but you can use an optional **ASC** or **DESC**
modifier to specify an ascending or descending sort order.
For example, specifying ```orderBy=createdAt DESC``` returns audit entries in descending **createdAt** order.
You must have admin rights to retrieve audit information.
operationId: listAuditEntriesForAuditApp
produces:
- application/json
parameters:
- $ref: '#/parameters/auditApplicationIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/omitTotalItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/maxItemsParam'
- name: where
in: query
description: |
Optionally filter the list. Here are some examples:
* ```where=(createdByUser='jbloggs')```
* ```where=(id BETWEEN ('1234', '4321'))```
* ```where=(createdAt BETWEEN ('2017-06-02T12:13:51.593+01:00' , '2017-06-04T10:05:16.536+01:00'))```
* ```where=(createdByUser='jbloggs' and createdAt BETWEEN ('2017-06-02T12:13:51.593+01:00' , '2017-06-04T10:05:16.536+01:00'))```
* ```where=(valuesKey='/alfresco-access/login/user')```
* ```where=(valuesKey='/alfresco-access/transaction/action' and valuesValue='DELETE')```
required: false
type: string
- $ref: '#/parameters/auditMinimalEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/AuditEntryPaging'
'400':
description: |
Invalid parameter: *auditApplicationId** is not a valid format, value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to retrieve audit information
'404':
description: |
**applicationId** does not exist
'501':
description: Audit is disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "5.2.2"
tags:
- audit
summary: Permanently delete audit entries for an audit application
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Permanently delete audit entries for an audit application **auditApplicationId**.
The **where** clause must be specified, either with an inclusive time period or for
an inclusive range of ids. The delete is within the context of the given audit application.
For example:
* ```where=(createdAt BETWEEN ('2017-06-02T12:13:51.593+01:00' , '2017-06-04T10:05:16.536+01:00'))```
* ```where=(id BETWEEN ('1234', '4321'))```
You must have admin rights to delete audit information.
operationId: deleteAuditEntriesForAuditApp
produces:
- application/json
parameters:
- $ref: '#/parameters/auditApplicationIdParam'
- name: where
in: query
description: |
Audit entries to permanently delete for an audit application, given an inclusive time period or range of ids. For example:
* ```where=(createdAt BETWEEN ('2017-06-02T12:13:51.593+01:00' , '2017-06-04T10:05:16.536+01:00'))```
* ```where=(id BETWEEN ('1234', '4321'))```
required: true
type: string
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **auditApplicationId** is not a valid format or invalid **where**
'401':
description: Authentication failed
'403':
description: Current user does not have permission to delete audit information
'404':
description: |
**auditApplicationId** does not exist
'501':
description: Audit is disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/audit-applications/{auditApplicationId}/audit-entries/{auditEntryId}':
get:
x-alfresco-since: "5.2.2"
tags:
- audit
summary: Get audit entry
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Gets audit entry **auditEntryId**.
You must have admin rights to access audit information.
operationId: getAuditEntry
produces:
- application/json
parameters:
- $ref: '#/parameters/auditApplicationIdParam'
- $ref: '#/parameters/auditEntryIdParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/AuditEntryEntry'
'400':
description: |
Invalid parameter: **auditApplicationId** or **auditEntryId** is not a valid format
'401':
description: Authentication failed
'403':
description: User does not have permission to retrieve audit information
'404':
description: |
**auditApplicationId** or **auditEntryId** does not exist
'501':
description: Audit is disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
delete:
x-alfresco-since: "5.2.2"
tags:
- audit
summary: Permanently delete an audit entry
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Permanently delete a single audit entry **auditEntryId**.
You must have admin rights to delete audit information.
operationId: deleteAuditEntry
produces:
- application/json
parameters:
- $ref: '#/parameters/auditApplicationIdParam'
- $ref: '#/parameters/auditEntryIdParam'
responses:
'204':
description: Successful response
'400':
description: |
Invalid parameter: **auditApplicationId** or **auditEntryId** is not a valid format
'401':
description: Authentication failed
'403':
description: Current user does not have permission to delete audit information
'404':
description: |
**auditApplicationId** or **auditEntryId** does not exist
'501':
description: Audit is disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/nodes/{nodeId}/audit-entries':
get:
x-alfresco-since: "5.2.2"
tags:
- audit
summary: List audit entries for a node
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Gets a list of audit entries for node **nodeId**.
The list can be filtered by **createdByUser** and for a given inclusive time period.
The default sort order is **createdAt** ascending, but you can use an optional **ASC** or **DESC**
modifier to specify an ascending or descending sort order.
For example, specifying ```orderBy=createdAt DESC``` returns audit entries in descending **createdAt** order.
This relies on the pre-configured 'alfresco-access' audit application.
operationId: listAuditEntriesForNode
produces:
- application/json
parameters:
- $ref: '#/parameters/nodeIdParam'
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/maxItemsParam'
- name: where
in: query
description: |
Optionally filter the list. Here are some examples:
* ```where=(createdByUser='-me-')```
* ```where=(createdAt BETWEEN ('2017-06-02T12:13:51.593+01:00' , '2017-06-04T10:05:16.536+01:00'))```
* ```where=(createdByUser='jbloggs' and createdAt BETWEEN ('2017-06-02T12:13:51.593+01:00' , '2017-06-04T10:05:16.536+01:00'))```
required: false
type: string
- $ref: '#/parameters/auditMinimalEntryIncludeParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/AuditEntryPaging'
'400':
description: |
Invalid parameter: *nodeId** is not a valid format, value of **maxItems** or **skipCount** is invalid
'401':
description: Authentication failed
'403':
description: User does not have permission to retrieve audit information
'404':
description: |
**nodeId** does not exist
'501':
description: Audit is disabled for the system
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/action-parameter-constraints/{parameterConstraintName}':
get:
x-alfresco-since: "7.3.0"
tags:
- actions
summary: Retrieve an action parameter constraint by requested name
description: |
**Note:** this endpoint is available in Alfresco 7.3.0 and newer versions.
Gets action parameter constraint by requested name.
Sample reposne:
```
{
"entry": {
"constraintValues": [
{
"value": "fa41fd6e-5640-410f-9f3e-93f268186f69",
"label": "Start Pooled Review and Approve Workflow",
"isNode": true
}
],
"constraintName": "ac-scripts"
}
}
```
operationId: getActionConstraint
produces:
- application/json
parameters:
- $ref: '#/parameters/parameterConstraintNameParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/ActionConstraintEntry'
'401':
description: Authentication failed
'404':
description: Contraint with given name not found
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/action-definitions':
get:
x-alfresco-since: "5.2.2"
tags:
- actions
summary: Retrieve list of available actions
description: |
**Note:** this endpoint is available in Alfresco 5.2.2 and newer versions.
Gets a list of all available actions
The default sort order for the returned list is for actions to be sorted by ascending name.
You can override the default by using the **orderBy** parameter.
You can use any of the following fields to order the results:
* name
* title
operationId: listActions
produces:
- application/json
parameters:
- $ref: '#/parameters/skipCountParam'
- $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/fieldsParam'
responses:
'200':
description: Successful response
schema:
$ref: '#/definitions/ActionDefinitionList'
'400':
description: |
Invalid parameter: value of **maxItems**, **skipCount** or **orderBy** is invalid
'401':
description: Authentication failed
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/action-definitions/{actionDefinitionId}':
get:
x-alfresco-since: "5.2.2"
tags:
- actions
summary: Retrieve the details of an action definition
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Retrieve the details of the action denoted by **actionDefinitionId**.
operationId: actionDetails
produces:
- application/json
parameters:
- $ref: '#/parameters/actionDefinitionIdParam'
responses:
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'200':
description: Successful response
schema:
$ref: '#/definitions/ActionDefinitionEntry'
'401':
description: Authentication failed
'404':
description: |
**actionDefinitionId** does not exist
'/action-executions':
post:
x-alfresco-since: "5.2.2"
tags:
- actions
summary: Execute an action
description: |
**Note:** this endpoint is available in Alfresco 5.2 and newer versions.
Executes an action
An action may be executed against a node specified by **targetId**. For example:
```
{
"actionDefinitionId": "copy",
"targetId": "4c4b3c43-f18b-43ff-af84-751f16f1ddfd",
"params": {
"destination-folder": "34219f79-66fa-4ebf-b371-118598af898c"
}
}
```
Performing a POST with the request body shown above will result in the node identified by ```targetId```
being copied to the destination folder specified in the ```params``` object by the key ```destination-folder```.
**targetId** is optional, however, currently **targetId** must be a valid node ID.
In the future, actions may be executed against different entity types or
executed without the need for the context of an entity.
Parameters supplied to the action within the ```params``` object will be converted to the expected type,
where possible using the DefaultTypeConverter class. In addition:
* Node IDs may be supplied in their short form (implicit workspace://SpacesStore prefix)
* Aspect names may be supplied using their short form, e.g. cm:versionable or cm:auditable
In this example, we add the aspect ```cm:versionable``` to a node using the QName resolution mentioned above:
```
{
"actionDefinitionId": "add-features",
"targetId": "16349e3f-2977-44d1-93f2-73c12b8083b5",
"params": {
"aspect-name": "cm:versionable"
}
}
```
The ```actionDefinitionId``` is the ```id``` of an action definition as returned by
the _list actions_ operations (e.g. GET /action-definitions).
The action will be executed **asynchronously** with a `202` HTTP response signifying that
the request has been accepted successfully. The response body contains the unique ID of the action
pending execution. The ID may be used, for example to correlate an execution with output in the server logs.
operationId: actionExec
produces:
- application/json
parameters:
- in: body
name: actionBodyExec
description: Action execution details
required: true
schema:
$ref: '#/definitions/ActionBodyExec'
responses:
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'202':
description: |
Action execution request accepted and pending execution.
schema:
$ref: '#/definitions/ActionExecResultEntry'
'400':
description: |
Invalid parameter: **actionDefinitionId** missing but required by the action
'401':
description: Authentication failed
'404':
description: |
**actionDefinitionId** or **targetId** does not exist
definitions:
Error:
type: object
required:
- error
properties:
error:
type: object
required:
- statusCode
- briefSummary
- stackTrace
- descriptionURL
properties:
errorKey:
type: string
statusCode:
type: integer
format: int32
briefSummary:
type: string
stackTrace:
type: string
descriptionURL:
type: string
logId:
type: string
Capabilities:
type: object
properties:
isAdmin:
type: boolean
isGuest:
type: boolean
isMutable:
type: boolean
Pagination:
type: object
properties:
count:
type: integer
format: int64
description: |
The number of objects in the entries array.
hasMoreItems:
type: boolean
description: |
A boolean value which is **true** if there are more entities in the collection
beyond those in this response. A true value means a request with a larger value
for the **skipCount** or the **maxItems** parameter will return more entities.
totalItems:
type: integer
format: int64
description: |
An integer describing the total number of entities in the collection.
The API might not be able to determine this value,
in which case this property will not be present.
skipCount:
type: integer
format: int64
description: |
An integer describing how many entities exist in the collection before
those included in this list. If there was no **skipCount** parameter then the
default value is 0.
maxItems:
type: integer
format: int64
description: |
The value of the **maxItems** parameter used to generate this list.
If there was no **maxItems** parameter then the default value is 100.
SiteBodyCreate:
type: object
required:
- title
- visibility
properties:
id:
type: string
title:
type: string
description:
type: string
visibility:
type: string
default: PUBLIC
enum:
- PUBLIC
- PRIVATE
- MODERATED
SitePaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/SiteEntry'
SiteEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Site'
Site:
type: object
required:
- id
- guid
- title
- visibility
properties:
id:
type: string
guid:
type: string
title:
type: string
description:
type: string
visibility:
type: string
enum:
- PRIVATE
- MODERATED
- PUBLIC
preset:
type: string
role:
type: string
enum:
- SiteConsumer
- SiteCollaborator
- SiteContributor
- SiteManager
SiteBodyUpdate:
type: object
properties:
title:
type: string
description:
type: string
visibility:
type: string
enum:
- PRIVATE
- MODERATED
- PUBLIC
SiteContainerPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/SiteContainerEntry'
SiteContainerEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/SiteContainer'
SiteContainer:
type: object
required:
- id
- folderId
properties:
id:
type: string
folderId:
type: string
SiteMembershipBodyCreate:
type: object
required:
- role
- id
properties:
role:
type: string
enum:
- SiteConsumer
- SiteCollaborator
- SiteContributor
- SiteManager
id:
type: string
SiteMembershipBodyUpdate:
type: object
required:
- role
properties:
role:
type: string
enum:
- SiteConsumer
- SiteCollaborator
- SiteContributor
- SiteManager
SiteMemberPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/SiteMemberEntry'
SiteMemberEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/SiteMember'
SiteMember:
type: object
required:
- id
- person
- role
properties:
id:
type: string
person:
$ref: '#/definitions/Person'
role:
type: string
enum:
- SiteConsumer
- SiteCollaborator
- SiteContributor
- SiteManager
isMemberOfGroup:
type: boolean
SiteGroupPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/SiteGroupEntry'
SiteGroupEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/SiteGroup'
SiteGroup:
type: object
required:
- id
- group
- role
properties:
id:
type: string
group:
$ref: '#/definitions/GroupMember'
role:
type: string
enum:
- SiteConsumer
- SiteCollaborator
- SiteContributor
- SiteManager
SiteRolePaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/SiteRoleEntry'
SiteRoleEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/SiteRole'
SiteRole:
type: object
required:
- site
- id
- guid
- role
properties:
site:
$ref: '#/definitions/Site'
id:
type: string
guid:
type: string
role:
type: string
enum:
- SiteConsumer
- SiteCollaborator
- SiteContributor
- SiteManager
PersonBodyCreate:
type: object
required:
- id
- firstName
- email
- password
properties:
id:
type: string
firstName:
type: string
lastName:
type: string
description:
type: string
email:
type: string
skypeId:
type: string
googleId:
type: string
instantMessageId:
type: string
jobTitle:
type: string
location:
type: string
company:
$ref: '#/definitions/Company'
mobile:
type: string
telephone:
type: string
userStatus:
type: string
enabled:
type: boolean
default: true
emailNotificationsEnabled:
type: boolean
default: true
password:
type: string
aspectNames:
type: array
items:
type: string
properties:
type: object
PersonBodyUpdate:
type: object
properties:
firstName:
type: string
lastName:
type: string
description:
type: string
email:
type: string
skypeId:
type: string
googleId:
type: string
instantMessageId:
type: string
jobTitle:
type: string
location:
type: string
company:
$ref: '#/definitions/Company'
mobile:
type: string
telephone:
type: string
userStatus:
type: string
enabled:
type: boolean
emailNotificationsEnabled:
type: boolean
password:
type: string
oldPassword:
type: string
aspectNames:
type: array
items:
type: string
properties:
type: object
PersonPaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/PersonEntry'
PersonEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Person'
Person:
type: object
required:
- id
- firstName
- email
- enabled
properties:
id:
type: string
firstName:
type: string
lastName:
type: string
displayName:
type: string
description:
type: string
avatarId:
type: string
email:
type: string
skypeId:
type: string
googleId:
type: string
instantMessageId:
type: string
jobTitle:
type: string
location:
type: string
company:
$ref: '#/definitions/Company'
mobile:
type: string
telephone:
type: string
statusUpdatedAt:
type: string
format: date-time
userStatus:
type: string
enabled:
type: boolean
default: true
emailNotificationsEnabled:
type: boolean
default: true
aspectNames:
type: array
items:
type: string
properties:
type: object
capabilities:
$ref: '#/definitions/Capabilities'
Company:
type: object
properties:
organization:
type: string
address1:
type: string
address2:
type: string
address3:
type: string
postcode:
type: string
telephone:
type: string
fax:
type: string
email:
type: string
GroupPaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/GroupEntry'
GroupEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Group'
Group:
type: object
required:
- id
- displayName
- isRoot
properties:
id:
type: string
displayName:
type: string
description:
type: string
isRoot:
type: boolean
default: true
hasSubgroups:
type: boolean
default: false
parentIds:
type: array
items:
type: string
zones:
type: array
items:
type: string
GroupMemberPaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/GroupMemberEntry'
GroupMemberEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/GroupMember'
GroupMember:
type: object
required:
- id
- displayName
- memberType
properties:
id:
type: string
displayName:
type: string
memberType:
type: string
enum:
- GROUP
- PERSON
GroupMembershipBodyCreate:
type: object
required:
- id
- memberType
properties:
id:
type: string
memberType:
type: string
enum:
- GROUP
- PERSON
GroupBodyCreate:
type: object
required:
- id
- displayName
properties:
id:
type: string
displayName:
type: string
description:
type: string
parentIds:
type: array
items:
type: string
GroupBodyUpdate:
type: object
required:
- displayName
properties:
displayName:
type: string
description:
type: string
CommentBody:
type: object
required:
- content
properties:
content:
type: string
CommentPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/CommentEntry'
CommentEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Comment'
Comment:
type: object
required:
- id
- title
- content
- createdBy
- createdAt
- edited
- modifiedBy
- modifiedAt
- canEdit
- canDelete
properties:
id:
type: string
title:
type: string
content:
type: string
createdBy:
$ref: '#/definitions/Person'
createdAt:
type: string
format: date-time
edited:
type: boolean
modifiedBy:
$ref: '#/definitions/Person'
modifiedAt:
type: string
format: date-time
canEdit:
type: boolean
canDelete:
type: boolean
TagBody:
type: object
required:
- tag
properties:
tag:
type: string
TagPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/TagEntry'
TagEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Tag'
Tag:
type: object
required:
- id
- tag
properties:
id:
type: string
description: The identifier for the tag.
tag:
type: string
description: The unique name of the tag.
count:
type: number
description: The number of nodes that this tag has been applied to.
CategoryPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/CategoryEntry'
CategoryEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Category'
Category:
type: object
required:
- id
- name
properties:
id:
type: string
description: The identifier for the category.
name:
type: string
description: |
The name of the category.
This must be unique within the parent category.
parentId:
type: string
description: The id of the parent category (or -root- if this is a top level category).
hasChildren:
type: boolean
description: True if the category has at least one child category.
count:
type: number
description: The number of nodes that are assigned to this category.
path:
type: string
description: The path to this category.
CategoryBody:
type: object
required:
- name
properties:
name:
type: string
description: |
The name of the category.
This must be unique within the parent category.
CategoryLinkBody:
type: object
required:
- categoryId
properties:
categoryId:
type: string
description: The identifier of the category.
PersonNetworkPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/PersonNetworkEntry'
PersonNetworkEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/PersonNetwork'
PersonNetwork:
type: object
description: |
A network is the group of users and sites that belong to an organization.
Networks are organized by email domain. When a user signs up for an
Alfresco account , their email domain becomes their Home Network.
required:
- id
- isEnabled
properties:
id:
type: string
description: This network's unique id
homeNetwork:
type: boolean
description: Is this the home network?
isEnabled:
type: boolean
createdAt:
type: string
format: date-time
paidNetwork:
type: boolean
subscriptionLevel:
type: string
enum:
- Free
- Standard
- Enterprise
quotas:
type: array
items:
$ref: '#/definitions/NetworkQuota'
NetworkQuota:
type: object
description: |
Limits and usage of each quota. A network will have quotas for File space,
the number of sites in the network, the number of people in the network,
and the number of network administrators
required:
- id
- limit
- usage
properties:
id:
type: string
limit:
type: integer
format: int64
usage:
type: integer
format: int64
RatingBody:
type: object
required:
- id
- myRating
properties:
id:
type: string
description: The rating scheme type. Possible values are likes and fiveStar.
default: likes
enum:
- likes
- fiveStar
myRating:
type: string
description: The rating. The type is specific to the rating scheme, boolean for the likes and an integer for the fiveStar
RatingPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/RatingEntry'
RatingEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Rating'
Rating:
type: object
description: |
A person can rate an item of content by liking it. They can also remove
their like of an item of content. API methods exist to get a list of
ratings and to add a new rating.
required:
- id
- aggregate
properties:
id:
type: string
aggregate:
type: object
required:
- numberOfRatings
properties:
numberOfRatings:
type: integer
average:
type: integer
ratedAt:
type: string
format: date-time
myRating:
type: string
description: The rating. The type is specific to the rating scheme, boolean for the likes and an integer for the fiveStar.
FavoriteBodyCreate:
type: object
required:
- target
properties:
target:
type: object
FavoritePaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/FavoriteEntry'
FavoriteEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Favorite'
Favorite:
type: object
description: |
A favorite describes an Alfresco entity that a person has marked as a favorite.
The target can be a site, file or folder.
required:
- targetGuid
- target
properties:
targetGuid:
type: string
description: The guid of the object that is a favorite.
createdAt:
type: string
format: date-time
description: The time the object was made a favorite.
target:
type: object
properties:
type: object
description: A subset of the target favorite properties, system properties and properties already available in the target are excluded.
allowableOperations:
type: array
items:
type: string
description: The allowable operations for the target.
FavoriteSiteBodyCreate:
type: object
required:
- id
properties:
id:
type: string
FavoriteSiteEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/FavoriteSite'
FavoriteSite:
type: object
required:
- id
properties:
id:
type: string
ActivityPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/ActivityEntry'
ActivityEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Activity'
Activity:
type: object
description: |
Activities describe any past activity in a site,
for example creating an item of content, commenting on a node,
liking an item of content.
required:
- postPersonId
- id
- feedPersonId
- activityType
properties:
postPersonId:
type: string
description: The id of the person who performed the activity
id:
type: integer
format: int64
description: The unique id of the activity
siteId:
type: string
description: The unique id of the site on which the activity was performed
postedAt:
type: string
format: date-time
description: The date time at which the activity was performed
feedPersonId:
type: string
description: The feed on which this activity was posted
activitySummary:
type: object
additionalProperties:
type: string
description: An object summarizing the activity
activityType:
description: The type of the activity posted
type: string
PreferencePaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/PreferenceEntry'
PreferenceEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Preference'
Preference:
type: object
description: |
A specific preference.
required:
- id
properties:
id:
type: string
description: The unique id of the preference
value:
type: string
description: The value of the preference. Note that this can be of any JSON type.
SiteMembershipRequestBodyCreate:
type: object
required:
- id
properties:
message:
type: string
id:
type: string
title:
type: string
client:
description: |
Optional client name used when sending an email to the end user, defaults to "share" if not provided.
**Note:** The client must be registered before this API can send an email.
**Note:** This is available in Alfresco 7.0.0 and newer versions.
type: string
SiteMembershipRequestBodyUpdate:
type: object
properties:
message:
type: string
SiteMembershipRequestPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/SiteMembershipRequestEntry'
SiteMembershipRequestEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/SiteMembershipRequest'
SiteMembershipRequest:
type: object
required:
- id
- createdAt
- site
properties:
id:
type: string
createdAt:
type: string
format: date-time
site:
$ref: '#/definitions/Site'
message:
type: string
SiteMembershipRequestWithPersonPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/SiteMembershipRequestWithPersonEntry'
SiteMembershipRequestWithPersonEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/SiteMembershipRequestWithPerson'
SiteMembershipRequestWithPerson:
type: object
required:
- id
- createdAt
- site
- person
properties:
id:
type: string
createdAt:
type: string
format: date-time
site:
$ref: '#/definitions/Site'
person:
$ref: '#/definitions/Person'
message:
type: string
SiteMembershipApprovalBody:
type: object
properties:
role:
type: string
SiteMembershipRejectionBody:
type: object
properties:
comment:
type: string
UserInfo:
type: object
required:
- displayName
- id
properties:
displayName:
type: string
id:
type: string
ContentInfo:
type: object
required:
- mimeType
properties:
mimeType:
type: string
mimeTypeName:
type: string
sizeInBytes:
type: integer
format: int64
encoding:
type: string
AssociationInfo:
type: object
required:
- assocType
properties:
assocType:
type: string
AssociationBody:
type: object
required:
- targetId
- assocType
properties:
targetId:
type: string
assocType:
type: string
ChildAssociationInfo:
type: object
required:
- assocType
- isPrimary
properties:
assocType:
type: string
isPrimary:
type: boolean
ChildAssociationBody:
type: object
required:
- childId
- assocType
properties:
childId:
type: string
assocType:
type: string
PathElement:
type: object
properties:
id:
type: string
name:
type: string
nodeType:
type: string
aspectNames:
type: array
items:
type: string
PathInfo:
type: object
properties:
elements:
type: array
items:
$ref: '#/definitions/PathElement'
name:
type: string
isComplete:
type: boolean
PermissionElement:
type: object
properties:
authorityId:
type: string
name:
type: string
accessStatus:
type: string
default: ALLOWED
enum:
- ALLOWED
- DENIED
PermissionsInfo:
type: object
properties:
isInheritanceEnabled:
type: boolean
inherited:
type: array
items:
$ref: '#/definitions/PermissionElement'
locallySet:
type: array
items:
$ref: '#/definitions/PermissionElement'
settable:
type: array
items:
type: string
PermissionsBody:
type: object
properties:
isInheritanceEnabled:
type: boolean
locallySet:
type: array
items:
$ref: '#/definitions/PermissionElement'
NodeBodyCreate:
type: object
required:
- name
- nodeType
properties:
name:
type: string
pattern: "^(?!(.*[\\\"\\*\\\\\\>\\<\\?\\/\\:\\|]+.*)|(.*[\\.]?.*[\\.]+$)|(.*[ ]+$))"
description: |
The name must not contain spaces or the following special characters: * " < > \ / ? : and |.
The character . must not be used at the end of the name.
nodeType:
type: string
aspectNames:
type: array
items:
type: string
properties:
type: object
permissions:
$ref: '#/definitions/PermissionsBody'
definition:
$ref: '#/definitions/Definition'
relativePath:
type: string
association:
type: object
properties:
assocType:
type: string
secondaryChildren:
type: array
items:
$ref: '#/definitions/ChildAssociationBody'
targets:
type: array
items:
$ref: '#/definitions/AssociationBody'
NodeBodyUpdate:
type: object
properties:
name:
type: string
pattern: "^(?!(.*[\\\"\\*\\\\\\>\\<\\?\\/\\:\\|]+.*)|(.*[\\.]?.*[\\.]+$)|(.*[ ]+$))"
description: |
The name must not contain spaces or the following special characters: * " < > \ / ? : and |.
The character . must not be used at the end of the name.
nodeType:
type: string
aspectNames:
type: array
items:
type: string
properties:
type: object
additionalProperties:
type: string
permissions:
$ref: '#/definitions/PermissionsBody'
NodeBodyCopy:
type: object
required:
- targetParentId
properties:
targetParentId:
type: string
name:
type: string
pattern: "^(?!(.*[\\\"\\*\\\\\\>\\<\\?\\/\\:\\|]+.*)|(.*[\\.]?.*[\\.]+$)|(.*[ ]+$))"
description: |
The name must not contain spaces or the following special characters: * " < > \ / ? : and |.
The character . must not be used at the end of the name.
NodeBodyMove:
type: object
required:
- targetParentId
properties:
targetParentId:
type: string
name:
type: string
pattern: "^(?!(.*[\\\"\\*\\\\\\>\\<\\?\\/\\:\\|]+.*)|(.*[\\.]?.*[\\.]+$)|(.*[ ]+$))"
description: |
The name must not contain spaces or the following special characters: * " < > \ / ? : and |.
The character . must not be used at the end of the name.
NodeBodyLock:
type: object
properties:
timeToExpire:
type: integer
minimum: 0
type:
type: string
default: ALLOW_OWNER_CHANGES
enum:
- ALLOW_OWNER_CHANGES
- FULL
lifetime:
type: string
default: PERSISTENT
enum:
- PERSISTENT
- EPHEMERAL
NodePaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/NodeEntry'
source:
$ref: '#/definitions/Node'
NodeAssociationPaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/NodeAssociationEntry'
source:
$ref: '#/definitions/Node'
NodeChildAssociationPaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/NodeChildAssociationEntry'
source:
$ref: '#/definitions/Node'
NodeAssociationEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/NodeAssociation'
NodeAssociation:
allOf:
- $ref: '#/definitions/Node'
- type: object
properties:
association:
$ref: '#/definitions/AssociationInfo'
NodeChildAssociationEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/NodeChildAssociation'
NodeChildAssociation:
allOf:
- $ref: '#/definitions/Node'
- type: object
properties:
association:
$ref: '#/definitions/ChildAssociationInfo'
AssociationEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Association'
Association:
type: object
required:
- targetId
- assocType
properties:
targetId:
type: string
assocType:
type: string
ChildAssociationEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/ChildAssociation'
ChildAssociation:
type: object
required:
- childId
- assocType
properties:
childId:
type: string
assocType:
type: string
NodeEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Node'
Node:
type: object
required:
- id
- name
- nodeType
- isFolder
- isFile
- createdAt
- createdByUser
- modifiedAt
- modifiedByUser
properties:
id:
type: string
name:
type: string
pattern: "^(?!(.*[\\\"\\*\\\\\\>\\<\\?\\/\\:\\|]+.*)|(.*[\\.]?.*[\\.]+$)|(.*[ ]+$))"
description: |
The name must not contain spaces or the following special characters: * " < > \ / ? : and |.
The character . must not be used at the end of the name.
nodeType:
type: string
isFolder:
type: boolean
isFile:
type: boolean
isLocked:
type: boolean
default: false
modifiedAt:
type: string
format: date-time
modifiedByUser:
$ref: '#/definitions/UserInfo'
createdAt:
type: string
format: date-time
createdByUser:
$ref: '#/definitions/UserInfo'
parentId:
type: string
isLink:
type: boolean
isFavorite:
type: boolean
isDirectLinkEnabled:
type: boolean
content:
$ref: '#/definitions/ContentInfo'
aspectNames:
type: array
items:
type: string
properties:
type: object
allowableOperations:
type: array
items:
type: string
path:
$ref: '#/definitions/PathInfo'
permissions:
$ref: '#/definitions/PermissionsInfo'
definition:
$ref: '#/definitions/Definition'
ProbeEntry:
type: object
required:
- entry
properties:
entry:
type: object
required:
- message
properties:
message:
type: string
DirectAccessUrlBodyCreate:
type: object
properties:
attachment:
type: boolean
description: URL type (embedded/attachment).
DirectAccessUrlEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/DirectAccessUrl'
DirectAccessUrl:
type: object
required:
- contentUrl
properties:
contentUrl:
type: string
description: The direct access URL of a binary content
attachment:
type: boolean
description: Flag to control the download method, **true** for attachment URL, **false** for embedded URL
expiresAt:
type: string
format: date-time
description: The direct access URL would become invalid when the expiry date is reached
SharedLinkBodyCreate:
type: object
required:
- nodeId
properties:
nodeId:
type: string
expiresAt:
type: string
format: date-time
SharedLinkBodyEmail:
type: object
properties:
client:
type: string
message:
type: string
locale:
type: string
recipientEmails:
type: array
items:
type: string
SharedLinkPaging:
type: object
required:
- list
properties:
list:
type: object
required:
- pagination
- entries
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/SharedLinkEntry'
SharedLinkEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/SharedLink'
SharedLink:
type: object
properties:
id:
type: string
expiresAt:
type: string
format: date-time
nodeId:
type: string
name:
type: string
pattern: "^(?!(.*[\\\"\\*\\\\\\>\\<\\?\\/\\:\\|]+.*)|(.*[\\.]?.*[\\.]+$)|(.*[ ]+$))"
description: |
The name must not contain spaces or the following special characters: * " < > \ / ? : and |.
The character . must not be used at the end of the name.
title:
type: string
description:
type: string
modifiedAt:
type: string
format: date-time
modifiedByUser:
$ref: '#/definitions/UserInfo'
sharedByUser:
$ref: '#/definitions/UserInfo'
content:
$ref: '#/definitions/ContentInfo'
allowableOperations:
type: array
items:
type: string
description: |
The allowable operations for the Quickshare link itself. See allowableOperationsOnTarget for the
allowable operations pertaining to the linked content node.
allowableOperationsOnTarget:
type: array
items:
type: string
description: |
The allowable operations for the content node being shared.
isFavorite:
type: boolean
properties:
type: object
description: |
A subset of the target node's properties, system properties and properties already available in the SharedLink are excluded.
aspectNames:
type: array
items:
type: string
path:
$ref: '#/definitions/PathInfo'
RenditionBodyCreate:
type: object
required:
- id
properties:
id:
type: string
RenditionEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Rendition'
Rendition:
type: object
properties:
id:
type: string
content:
$ref: '#/definitions/ContentInfo'
status:
type: string
enum:
- CREATED
- NOT_CREATED
RenditionPaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/RenditionEntry'
DeletedNodesPaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/DeletedNodeEntry'
DeletedNodeEntry:
type: object
properties:
entry:
$ref: '#/definitions/DeletedNode'
DeletedNode:
allOf:
- $ref: '#/definitions/Node'
- type: object
required:
- archivedByUser
- archivedAt
properties:
archivedByUser:
$ref: '#/definitions/UserInfo'
archivedAt:
type: string
format: date-time
DeletedNodeBodyRestore:
type: object
properties:
targetParentId:
type: string
assocType:
type: string
RevertBody:
type: object
properties:
majorVersion:
type: boolean
comment:
type: string
VersionPaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/VersionEntry'
VersionEntry:
type: object
properties:
entry:
$ref: '#/definitions/Version'
Version:
type: object
required:
- id
- name
- nodeType
- isFolder
- isFile
- modifiedAt
- modifiedByUser
properties:
id:
type: string
versionComment:
type: string
name:
type: string
pattern: "^(?!(.*[\\\"\\*\\\\\\>\\<\\?\\/\\:\\|]+.*)|(.*[\\.]?.*[\\.]+$)|(.*[ ]+$))"
description: |
The name must not contain spaces or the following special characters: * " < > \ / ? : and |.
The character . must not be used at the end of the name.
nodeType:
type: string
isFolder:
type: boolean
isFile:
type: boolean
modifiedAt:
type: string
format: date-time
modifiedByUser:
$ref: '#/definitions/UserInfo'
content:
$ref: '#/definitions/ContentInfo'
aspectNames:
type: array
items:
type: string
properties:
type: object
DownloadBodyCreate:
type: object
required:
- nodeIds
properties:
nodeIds:
type: array
items:
type: string
DownloadEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/Download'
Download:
type: object
properties:
filesAdded:
type: integer
default: 0
description: number of files added so far in the zip
bytesAdded:
type: integer
default: 0
description: number of bytes added so far in the zip
id:
type: string
description: the id of the download node
totalFiles:
type: integer
default: 0
description: the total number of files to be added in the zip
totalBytes:
type: integer
default: 0
description: the total number of bytes to be added in the zip
status:
type: string
enum:
- PENDING
- CANCELLED
- IN_PROGRESS
- DONE
- MAX_CONTENT_SIZE_EXCEEDED
default: PENDING
description: the current status of the download node creation
ClientBody:
type: object
required:
- client
properties:
client:
type: string
description: the client name
PasswordResetBody:
type: object
required:
- password
- id
- key
properties:
password:
type: string
description: the new password
id:
type: string
description: the workflow id provided in the reset password email
key:
type: string
description: the workflow key provided in the reset password email
AuditAppPaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/AuditAppEntry'
AuditAppEntry:
type: object
properties:
entry:
$ref: '#/definitions/AuditApp'
AuditApp:
type: object
required:
- id
properties:
id:
type: string
name:
type: string
isEnabled:
type: boolean
default: true
maxEntryId:
type: integer
minEntryId:
type: integer
AuditBodyUpdate:
type: object
properties:
isEnabled:
type: boolean
AuditEntryPaging:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/AuditEntryEntry'
AuditEntryEntry:
type: object
properties:
entry:
$ref: '#/definitions/AuditEntry'
AuditEntry:
type: object
required:
- id
- auditApplicationId
- createdByUser
- createdAt
properties:
id:
type: string
auditApplicationId:
type: string
createdByUser:
$ref: '#/definitions/UserInfo'
createdAt:
type: string
format: date-time
values:
type: object
ActionConstraint:
description: |
Response object holding action parameter constraint name and map of its values-labels.
type: object
properties:
constraintName:
type: string
description: |
Name of the constraint.
constraintValues:
type: array
items:
$ref: '#/definitions/ActionConstraintData'
description: |
A list of constraint possbile values along with additional data (label, isNode flag).
Sample object could be:
```JSON
"constraintValues": [
{
"value": "EQUALS",
"label": "Equals"
},
{
"value": "CONTAINS",
"label": "Contains"
},
{
"value": "BEGINS",
"label": "Begins With"
},
{
"value": "ENDS",
"label": "Ends With"
},
{
"value": "GREATER_THAN",
"label": "Greater Than"
},
{
"value": "GREATER_THAN_EQUAL",
"label": "Greater Than Or Equal To"
},
{
"value": "LESS_THAN",
"label": "Less Than"
},
{
"value": "LESS_THAN_EQUAL",
"label": "Less Than Or Equal To"
}
]
```
or
```JSON
"constraintValues": [
{
"value": "fa41fd6e-5640-410f-9f3e-93f268186f69",
"label": "Start Pooled Review and Approve Workflow",
"isNode": true
}
]
```
ActionConstraintData:
type: object
required:
- value
properties:
value:
description: Constraint value (this can also be a node id)
type: string
label:
description: Constraint display label
type: string
ActionConstraintEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/ActionConstraint'
ActionDefinitionList:
type: object
properties:
list:
type: object
properties:
pagination:
$ref: '#/definitions/Pagination'
entries:
type: array
items:
$ref: '#/definitions/ActionDefinition'
ActionDefinitionEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/ActionDefinition'
ActionDefinition:
type: object
required:
- id
- applicableTypes
- trackStatus
properties:
id:
description: Identifier of the action definition — used for example when executing an action
type: string
name:
description: name of the action definition, e.g. "move"
type: string
title:
description: title of the action definition, e.g. "Move"
type: string
description:
description: describes the action definition, e.g. "This will move the matched item to another space."
type: string
applicableTypes:
type: array
description: QNames of the types this action applies to
items:
type: string
trackStatus:
description: whether the basic action definition supports action tracking or not
type: boolean
parameterDefinitions:
type: array
items:
$ref: '#/definitions/ActionParameterDefinition'
ActionParameterDefinition:
type: object
properties:
name:
type: string
type:
type: string
multiValued:
type: boolean
mandatory:
type: boolean
displayLabel:
type: string
parameterConstraintName:
type: string
ActionBodyExec:
type: object
required:
- actionDefinitionId
properties:
actionDefinitionId:
type: string
targetId:
type: string
description: The entity upon which to execute the action, typically a node ID or similar.
params:
type: object
ActionBodyExecTemplate:
type: object
required:
- actionDefinitionId
properties:
actionDefinitionId:
type: string
params:
type: object
ActionExecResultEntry:
type: object
required:
- entry
properties:
entry:
$ref: '#/definitions/ActionExecResult'
ActionExecResult:
type: object
required:
- id
properties:
id:
type: string
description: The unique identifier of the action pending execution
Definition:
properties:
properties:
description: List of property definitions effective for this node as the result of combining the type with all aspects.
type: array
items:
$ref: '#/definitions/Property'
Property:
type: object
required:
- id
properties:
id:
type: string
title:
description: the human-readable title
type: string
description:
description: the human-readable description
type: string
defaultValue:
description: the default value
type: string
dataType:
description: the name of the property type (e.g. d:text)
type: string
isMultiValued:
description: define if the property is multi-valued
type: boolean
isMandatory:
description: define if the property is mandatory
type: boolean
isMandatoryEnforced:
description: define if the presence of mandatory properties is enforced
type: boolean
isProtected:
description: define if the property is system maintained
type: boolean
constraints:
description: list of constraints defined for the property
type: array
items:
$ref: '#/definitions/Constraint'
Constraint:
type: object
required:
- id
properties:
id:
type: string
type:
description: the type of the constraint
type: string
title:
description: the human-readable constraint title
type: string
description:
description: the human-readable constraint description
type: string
parameters:
type: object
additionalProperties:
type: object
ContentStorageInfo:
description: |
Response object holding storage properties related data for given content.
type: object
required:
- id
properties:
id:
type: string
description: |
Content type property identifier (e.g. cm:content). Inside this object only colon (':') delimiter for namespace-prefix will be used.
storageProperties:
description: |
A map (String-String) of storage properties for given content.
type: object
additionalProperties:
type: string
RestoreArchivedContentRequest:
description: |
Request object holding restore content from artchive related paramteres for given content.
type: object
properties:
restorePriority:
type: string
description: Restore from archive priority (Standard/High - to be mapped to Storage Provider specific values in Cloud Connectors)
ArchiveContentRequest:
description: |
Request object holding archive content related paramteres for given content.
type: object
properties:
archiveParams:
description: |
Optional map (String-String) of archive request properties for given content.
type: object
additionalProperties:
type: string
CompositeConditionDefinition:
type: object
properties:
inverted:
description: Whether to invert the logic for this condition (if true then "not" is applied to the whole condition)
type: boolean
default: false
booleanMode:
description: How to combine the clauses of this condition ("and" or "or")
type: string
enum:
- and
- or
default: "and"
compositeConditions:
description: Nested list of composite clauses in this condition
type: array
items:
$ref: '#/definitions/CompositeConditionDefinition'
default: []
simpleConditions:
description: Nested list of simple (per field) conditions.
type: array
items:
$ref: '#/definitions/SimpleConditionDefinition'
default: []
SimpleConditionDefinition:
type: object
required:
- field
- comparator
- parameter
properties:
field:
description: |
The name of the property to compare.
This should be either a property (e.g. "cm:name") or one of the keywords from this list:
* size (the size of the content for a node)
* mimetype (the mimetype of the content for a node)
* encoding (the encoding of the content for a node)
* category (a category for the node)
* tag (a tag that the node has)
* aspect (an aspect that the node has)
For multi-valued properties the condition is satisfied if any of the values match the condition.
type: string
comparator:
description: |
The method to compare the property against the parameter.
Depending on the type of the property then different comparators are available:
* All types: equals
* text: contains, startsWith, endsWith
* int/long/float/double/date: greaterThan, lessThan, greaterThanOrEqual, lessThanOrEqual
* type: instanceOf
Where a property is multivalued then the condition is true if it is satisfied by any of the values.
type: string
parameter:
description: The value to compare the field against
type: string