diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2bb5e748..132aec20 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,12 +5,13 @@ on: env: ALFRESCO_NEXUS_USERNAME: ${{ secrets.ALFRESCO_NEXUS_USERNAME }} ALFRESCO_NEXUS_PASSWORD: ${{ secrets.ALFRESCO_NEXUS_PASSWORD }} + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.MAVEN_CENTRAL_GPG_KEY }} + ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.MAVEN_CENTRAL_GPG_PASSWORD }} + ORG_GRADLE_PROJECT_sonatype_username: ${{ secrets.SONATYPE_S01_USERNAME }} + ORG_GRADLE_PROJECT_sonatype_password: ${{ secrets.SONATYPE_S01_PASSWORD }} + BRANCH_NAME: ${{ github.ref_name }} jobs: - BuildAndPublish: - strategy: - matrix: - alfresco_version: [ 70, 71, 72, 73, 74 ] - fail-fast: false + apix-interface: runs-on: ubuntu-latest steps: - name: Check out @@ -26,16 +27,40 @@ jobs: registry: private.docker.xenit.eu username: ${{ secrets.CLOUDSMITH_USER }} password: ${{ secrets.CLOUDSMITH_APIKEY }} - - name: Build interface # Execute before integration testing to catch errors early uses: gradle/gradle-build-action@v2.3.0 with: arguments: :apix-interface:build :apix-interface:javadoc - - name: Unit test REST API uses: gradle/gradle-build-action@v2.4.2 with: arguments: --info :apix-rest-v1:test + - name: Publish + if: ${{ startsWith(github.ref, 'refs/heads/master') || startsWith(github.ref, 'refs/heads/release') }}" + uses: gradle/gradle-build-action@v2.4.2 + with: + arguments: --info -PsigningKeyId=DF8285F0 :apix-interface:publish + + apix-impl: + strategy: + matrix: + alfresco_version: [ 70, 71, 72, 73, 74 ] + fail-fast: false + runs-on: ubuntu-latest + steps: + - name: Check out + uses: actions/checkout@v3 + - name: Set up JDK + uses: actions/setup-java@v3 + with: + java-version: 11 + distribution: temurin + - name: Login to Docker + uses: docker/login-action@v2 + with: + registry: private.docker.xenit.eu + username: ${{ secrets.CLOUDSMITH_USER }} + password: ${{ secrets.CLOUDSMITH_APIKEY }} - name: Build and test uses: gradle/gradle-build-action@v2.4.2 with: @@ -51,18 +76,10 @@ jobs: report_paths: '**/build/test-results/**/TEST-*.xml' github_token: ${{ secrets.GITHUB_TOKEN }} detailed_summary: true - - name: Publish if: ${{ startsWith(github.ref, 'refs/heads/master') || startsWith(github.ref, 'refs/heads/release') }}" uses: gradle/gradle-build-action@v2.4.2 - env: - ORG_GRADLE_PROJECT_signingKey: ${{ secrets.MAVEN_CENTRAL_GPG_KEY }} - ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.MAVEN_CENTRAL_GPG_PASSWORD }} - ORG_GRADLE_PROJECT_sonatype_username: ${{ secrets.SONATYPE_S01_USERNAME }} - ORG_GRADLE_PROJECT_sonatype_password: ${{ secrets.SONATYPE_S01_PASSWORD }} - BRANCH_NAME: ${{ github.ref_name }} with: arguments: >- --info -PsigningKeyId=DF8285F0 - :apix-interface:publish :alfresco:${{ matrix.alfresco_version }}:publish \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 0786a9ac..8783f969 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Alfred API - Changelog +## 5.0.1 (2024-03-19) + +The artifact name of `apix-interface` has been changed to `alfred-api-interface`. + +### Added + +### Changed + +### Fixed +* [ALFREDAPI-537](https://xenitsupport.jira.com/browse/ALFREDAPI-537): Fix conflicts between artifacts when publishing to Sonatype +* [ALFREDAPI-538](https://xenitsupport.jira.com/browse/ALFREDAPI-538): Fixed issue where errors related to jackson library conflicts would occurs while Alfresco is running +* [ALFREDAPI-540](https://xenitsupport.jira.com/browse/ALFREDAPI-540): Realign interface artifact name +* [ALFREDAPI-541](https://xenitsupport.jira.com/browse/ALFREDAPI-541): Clarify dependency installation instructions + +### Removed + + ## 5.0.0 (2023-12-12) From this version onward Dynamic Extensions is replaced by [Alfresco MVC](https://github.com/dgradecak/alfresco-mvc) as framework to reduce maintenance efforts. diff --git a/apix-impl/build.gradle b/apix-impl/build.gradle index 565b7abe..9ef4f103 100644 --- a/apix-impl/build.gradle +++ b/apix-impl/build.gradle @@ -1,4 +1,8 @@ -sourceSets.main.java.srcDirs += 'src/main/java' +apply plugin: 'java-library' +dependencies { + api project(":apix-interface") + implementation group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final' +} subprojects { def shortAlfrescoVersion = project.name.split("-")[2] apply from: "${rootProject.projectDir}/alfresco/${shortAlfrescoVersion}/overrides.gradle" @@ -33,23 +37,16 @@ allprojects { apply plugin: 'java-library' dependencies { - api(project(":apix-interface")) { - exclude group: 'com.fasterxml.jackson.core', module: 'jackson-annotations' - exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind' - } - implementation group: 'commons-lang', name: 'commons-lang', version: '1.0' - implementation group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final' - implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.16.0' - alfrescoProvided platform("org.alfresco:acs-community-packaging:${alfresco_version}") alfrescoProvided "org.alfresco:alfresco-repository" alfrescoProvided 'org.alfresco:alfresco-remote-api' + alfrescoProvided 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml' testImplementation platform("org.alfresco:acs-community-packaging:${alfresco_version}") testImplementation 'org.alfresco:alfresco-repository' testImplementation 'org.alfresco:alfresco-remote-api' testImplementation 'org.alfresco:alfresco-data-model' - testImplementation group: 'org.mockito', name: 'mockito-core', version: '2.25.1' + testImplementation 'org.mockito:mockito-core' } task generateVersionFile(type: Task) { diff --git a/apix-interface/build.gradle b/apix-interface/build.gradle index 5aeaf098..b10c0934 100644 --- a/apix-interface/build.gradle +++ b/apix-interface/build.gradle @@ -15,6 +15,7 @@ task javadocJar(type: Jar) { publishing { publications { mavenJava(MavenPublication) { + artifactId 'alfred-api-interface' from components.java artifact sourcesJar artifact javadocJar @@ -25,6 +26,6 @@ publishing { dependencies { compileOnly "com.fasterxml.jackson.core:jackson-annotations:${jackson_version}" compileOnly "com.fasterxml.jackson.core:jackson-databind:${jackson_version}" - testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation group: 'junit', name: 'junit', version: '4.13.1' } diff --git a/build.gradle b/build.gradle index ef191e23..34cdc4cc 100644 --- a/build.gradle +++ b/build.gradle @@ -16,7 +16,7 @@ def static getVersionQualifier(String branch_name) { } ext { - versionWithoutQualifier = '5.0.0' + versionWithoutQualifier = '5.0.1' de_version = '3.1.0' // Only used for integration testing mvc = '8.0.0' diff --git a/docs/README.md b/docs/README.md index 142113c8..f230edc1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -10,4 +10,22 @@ This is done by manually executing: ``` This will generate a ZIP containing the documentation website, which still needs to be -uploaded and unzipped on our host. \ No newline at end of file +uploaded and unzipped on our host. + +## Publishing + +To upload to docs.xenit.eu, you first need to have key-based SSH access to the `xeniteu` account. +Example to upload the website tarball: +```bash +scp -i ~/.ssh/a2hosting-key -P 7822 build/website-alfred-api_2024-02-21.tar.gz xeniteu@nl1-ts102.a2hosting.com:~/docs.xenit.eu/ +``` + +After that login via SSH to unpack the website. The folder hosting the Alfred API docs is `~/docs.xenit.eu/alfred-api`. +Example to unpack: +```bash +ssh -i ~/.ssh/a2hosting-key -p 7822 xeniteu@nl1-ts102.a2hosting.com +$ cd docs.xenit.eu +$ mv alfred-api alfred-api_backup2024-02-21 +$ tar xvzf website-alfred-api_2024-02-21.tar.gz +``` + diff --git a/docs/swagger-ui/swagger.json b/docs/swagger-ui/swagger.json index 08ff20c1..e22e46ab 100644 --- a/docs/swagger-ui/swagger.json +++ b/docs/swagger-ui/swagger.json @@ -1 +1,4218 @@ -{"swagger":"2.0","info":{"description":"This is the swagger specification for Api-X REST API\n\nExamples can be found at: https://docs.xenit.eu/alfred-api","version":"4.0.0","title":"Api-X REST API","contact":{"name":"XeniT","url":"http://www.xenit.eu","email":"engineering@xenit.eu"},"license":{"name":"GNU Lesser General Public License v3","url":"https://www.gnu.org/licenses/lgpl-3.0.txt"}},"basePath":"/alfresco/s/apix","tags":[{"name":"WIP","description":"Dont use in production!"},{"name":"Bulk","description":"Perform multiple operations in a single call"},{"name":"Category","description":"Retrieves Category information"},{"name":"Configuration","description":"Retrieves configuration data files from the datadictionary"},{"name":"Dictionary","description":"Retrieves Dictionary information"},{"name":"Documentation","description":"Access API Documentation"},{"name":"General","description":"General API operations"},{"name":"Nodes","description":"Access operations on nodes"},{"name":"Search","description":"Perform search queries"},{"name":"Sites","description":"Access operations on sites"},{"name":"Translations","description":"Retrieve translations"},{"name":"VersionHistory","description":"Retrieves version history information"},{"name":"Workingcopies","description":"Access operations on working copies"},{"name":"People","description":"Retrieves person information"},{"name":"Properties","description":"Retrieves Property information"},{"name":"Groups","description":"Retrieves group information and links users/groups to parent groups"}],"schemes":["https","http"],"produces":["application/json"],"paths":{"/v1/bulk":{"post":{"tags":["Bulk"],"summary":"Performs multiple Api-X operations in a single rest call","description":"","operationId":"bulk","parameters":[{"in":"body","name":"body","required":false,"schema":{"type":"array","items":{"$ref":"#/definitions/BulkRequest"}}}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/BulkSubResult"}}}}}},"/v1/category/aspect/{qname}":{"get":{"tags":["Category"],"summary":"Return the categories available for an aspect","description":"","operationId":"getCategoriesForAspect","parameters":[{"name":"qname","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Categories"}}}}},"/v1/comments/{space}/{store}/{guid}":{"get":{"tags":["Nodes"],"summary":"Returns the comment with the given id.","description":"","operationId":"getComment","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"},"404":{"description":"Not Found"}}},"put":{"tags":["Nodes"],"summary":"Updates the comment with the given id.","description":"","operationId":"updateComment","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/Comment"}}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"},"404":{"description":"Not Found"}}},"delete":{"tags":["Nodes"],"summary":"Deletes the comment with the given id.","description":"","operationId":"deleteComment","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"},"404":{"description":"Not Found"}}}},"/v1/configuration":{"get":{"tags":["Configuration"],"summary":"Returns configuration files information and content","description":"","operationId":"getConfigurationFiles","parameters":[{"name":"fields","in":"query","description":"Comma separated field names to include.","required":true,"type":"string","default":"content,nodeRef","enum":["content","nodeRef","path","metadata","parsedContent"]},{"name":"searchDirectory","in":"query","description":"The directory to search for configuration files, relative to the data dictionary","required":true,"type":"string"},{"name":"filter.name","in":"query","description":"Regular expression that the node name should match.","required":false,"type":"string"},{"name":"callback","in":"query","description":"Javascript callback function","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Configurations"}}}}},"/v1/dictionary/aspects":{"get":{"tags":["Dictionary"],"summary":"Return apects","description":"","operationId":"getAspects","parameters":[],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Aspects"}}}}},"/v1/dictionary/aspects/{qname}":{"get":{"tags":["Dictionary"],"summary":"Return the definition of a aspect","description":"","operationId":"getAspectDefinition","parameters":[{"name":"qname","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/AspectDefinition"}}}}},"/v1/dictionary/namespaces":{"get":{"tags":["Dictionary"],"summary":"Returns the namespaces","description":"","operationId":"getNamespaces","parameters":[],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Namespaces"}}}}},"/v1/dictionary/properties":{"get":{"tags":["Dictionary"],"summary":"Return properties","description":"","operationId":"getProperties","parameters":[],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Properties"}}}}},"/v1/dictionary/properties/{qname}":{"get":{"tags":["Dictionary"],"summary":"Return the definition of a property","description":"","operationId":"getPropertyDefinition","parameters":[{"name":"qname","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/PropertyDefinition"}}}}},"/v1/dictionary/types":{"get":{"tags":["Dictionary"],"summary":"Return the definitions of types","description":"","operationId":"getSubTypeDefinitions","parameters":[{"name":"parent","in":"query","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Types"}}}}},"/v1/dictionary/types/{qname}":{"get":{"tags":["Dictionary"],"summary":"Return the definition of a type","description":"","operationId":"getTypeDefinition","parameters":[{"name":"qname","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/TypeDefinition"}},"404":{"description":"Not Found"}}}},"/v1/docs/swagger.json":{"get":{"tags":["Documentation"],"summary":"The Swagger Spec for Alfred API","description":"","operationId":"execute","parameters":[],"responses":{"200":{"description":"Success"}}}},"/v1/docs/ui":{"get":{"tags":["Documentation"],"summary":"Shows this swagger spec in a user interface","parameters":[],"responses":{"200":{"description":"Swagger UI interface","schema":{"type":"file"}}}}},"/v1/nodes":{"post":{"tags":["Nodes"],"summary":"Creates or copies a node","description":"Example of POST body:\n\n```\nPOST /apix/v1/nodes\n{\n\"parent\" : \"workspace://SpacesStore/d5dac928-e581-4507-9be7-9a2416adc318\", \n\"name\" : \"mydocument.txt\", \n\"type\" : \"{http://www.alfresco.org/model/content/1.0}content\", \n\"properties\" : {\n \"{namespace}property1\": [\n \"string\"\n ],\n \"{namespace}property2\": [\n \"string\"\n ],\n \"{namespace}property3\": [\n \"string\"\n ]\n}, \n\"aspectsToAdd\" : [\n \"{namespace}aspect1\"\n], \n\"aspectsToRemove\" : [\n \"{namespace}aspect1\"\n], \n\"copyFrom\" : \"workspace://SpacesStore/f0d15919-3841-4170-807f-b81d2ebdeb80\", \n}\n```\n\"aspectsToRemove\" is only relevant when copying a node.\n","operationId":"createNode","parameters":[{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/CreateNodeOptions"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NodeInfo"}},"403":{"description":"Not Authorized"}}}},"/v1/nodes/nodeInfo":{"post":{"tags":["Nodes"],"summary":"Returns combined information of multiple nodes. Nodes errors or without appropriate permissions will not be included in return, and will not cause failure of the call.","description":"Example to get combined information of multiple nodes:\n\n```\nPOST /apix/v1/nodes/nodeInfo\n{\n\"retrieveMetadata\" : true, \n\"retrievePath\" : true, \n\"retrievePermissions\" : true, \n\"retrieveAssocs\" : true, \n\"retrieveChildAssocs\" : true, \n\"retrieveParentAssocs\" : true, \n\"retrieveTargetAssocs\" : true, \n\"noderefs\": [ \n \"workspace://SpacesStore/123456789\", \n \"workspace://SpacesStore/147258369\", \n \"workspace://SpacesStore/478159236\" \n]}\n```\n'retrieveMetadata', 'retrievePath', 'retrievePermissions', 'retrieveAssocs', 'retrieveChildAssocs',\n'retrieveParentAssocs', 'retrieveTargetAssocs' are optional parameters.\nSet 'retrieveMetadata' to false to omit the aspects and properties from the result.\nSet 'retrievePath' to false to omit the path from the result.\nSet 'retrievePermissions' to false to omit the permissions from the result.\nSet 'retrieveAssocs' to false to omit the associations(parent associations, child associations, peer associations) from the result.\nSet 'retrieveChildAssocs' to false to omit the child associations from the result.\nSet 'retrieveParentAssocs' to false to omit the parent associations from the result.\nSet 'retrieveTargetAssocs' to false to omit the peer target associations from the result.\nSet 'retrieveSourceAssocs' to false to omit the peer source associations from the result. Note: versionstore does not support sourceAssocs. For version nodes, an empty list added to the result\n","operationId":"getAllInfoOfNodes","parameters":[],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/NodeInfo"}}},"400":{"description":"Bad Request"}}}},"/v1/nodes/upload":{"post":{"tags":["Nodes"],"summary":"Creates a new node with given content","description":"","operationId":"uploadNode","consumes":["multipart/form-data"],"parameters":[{"name":"parent","in":"formData","description":"Noderef of parent for the new node","required":true,"type":"string"},{"name":"type","in":"formData","description":"QName type for the new node","required":false,"type":"string"},{"name":"file","in":"formData","required":true,"type":"file"},{"name":"metadata","in":"formData","description":"Metadata for this file","required":false,"type":"string"},{"name":"extractMetadata","in":"formData","description":"Enable metadata extraction from the content, for example for msg files","required":false,"type":"boolean"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NodeInfo"}},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}":{"get":{"tags":["Nodes"],"summary":"Returns combined information of a node.\nNote: versionstore does not support sourceAssocs. For version nodes, an empty list added to the result","description":"","operationId":"getAllInfoOfNode","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NodeInfo"}},"403":{"description":"Not Authorized"},"404":{"description":"Not Found"}}},"delete":{"tags":["Nodes"],"summary":"Delete a node","description":"","operationId":"deleteNode","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"name":"permanently","in":"query","required":false,"type":"string"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"},"404":{"description":"Not Found"}}}},"/v1/nodes/{space}/{store}/{guid}/acl":{"get":{"tags":["Nodes"],"summary":"Gets the ACLs for a node.","description":"","operationId":"getAcls","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NodePermission"}},"403":{"description":"Not Authorized"}}},"put":{"tags":["Nodes"],"summary":"Sets the ACL for a node.","description":"Example:\n\n```\n{\n \"inheritFromParent\": false,\n \"ownAccessList\": [\n {\n \"allowed\": true,\n \"authority\": \"MYGROUP\",\n \"permission\": \"Collaborator\"\n }\n]}\n```","operationId":"setAcls","consumes":["application/json"],"parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/ChangeAclsOptions"}}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/acl/inheritFromParent":{"post":{"tags":["Nodes"],"operationId":"setInheritParentPermissions","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/InheritFromParent"}}],"responses":{"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/ancestors":{"get":{"tags":["Nodes"],"summary":"Retrieves the ancestors of the nodes","description":"It is possible to add \"root\" as a request parameter.\nIt is the node reference up to which point ancestors will be retrieved.\nThe default root reference will be the reference of Company Home","operationId":"retrieveAncestors","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"name":"root","in":"query","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/AncestorsObject"}},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/associations":{"get":{"tags":["Nodes"],"summary":"Retrieve node associations.\nVersionstore does not support sourceAssocs. For version nodes, an empty list is returned for this component of the result.","description":"","operationId":"getAssociations","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NodeAssociations"}},"403":{"description":"Not Authorized"}}},"post":{"tags":["Nodes"],"summary":"Create new association with given node as source","description":"","operationId":"createAssociation","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/CreateAssociationOptions"}}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"}}},"delete":{"tags":["Nodes"],"summary":"Deletes an association with given node as source","description":"","operationId":"deleteAssociation","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"name":"target","in":"query","required":true,"type":"string"},{"name":"type","in":"query","required":true,"type":"string"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/associations/children":{"get":{"tags":["Nodes"],"summary":"Retrieve node child associations","description":"","operationId":"getChildAssociations","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/ChildParentAssociation"}}},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/associations/parents":{"get":{"tags":["Nodes"],"summary":"Retrieve node parent associations","description":"","operationId":"getParentAssociations","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/ChildParentAssociation"}}},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/associations/targets":{"get":{"tags":["Nodes"],"summary":"Retrieve node peer associations with given node being the source","description":"","operationId":"getSourcePeerAssociations","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/NodeAssociation"}}},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/comments":{"get":{"tags":["Nodes"],"summary":"Retrieves all comments for a given node","description":"","operationId":"getComments","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"name":"skipcount","in":"query","required":true,"type":"string"},{"name":"pagesize","in":"query","required":true,"type":"string"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"},"404":{"description":"Not Found"}}},"post":{"tags":["Nodes"],"summary":"Appends a new comment to the given node.","description":"","operationId":"addComment","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/Comment"}}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"},"404":{"description":"Not Found"}}}},"/v1/nodes/{space}/{store}/{guid}/content":{"get":{"tags":["Nodes"],"summary":"Downloads content file for given node","description":"","operationId":"getContent","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"},"404":{"description":"Not Found"}}},"put":{"tags":["Nodes"],"summary":"Sets or updates the content for given node. If no file is given the content will be set to empty.","description":"","operationId":"setContent","consumes":["multipart/form-data"],"parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"name":"file","in":"formData","required":false,"type":"file"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"}}},"delete":{"tags":["Nodes"],"summary":"Sets the content for given node to empty","description":"","operationId":"deleteContent","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/content/previews/pdf":{"get":{"tags":["WIP"],"summary":"Downloads preview file for given node","description":"","operationId":"getPreviewPdf","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"name":"file","in":"formData","required":true,"type":"file"}],"responses":{"200":{"description":"Success"}}}},"/v1/nodes/{space}/{store}/{guid}/exists":{"get":{"tags":["Nodes"],"summary":"Checks if the given node exists","description":"","operationId":"exists","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/metadata":{"get":{"tags":["Nodes"],"summary":"Retrieve node metadata","description":"","operationId":"getMetadata","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NodeMetadata"}},"403":{"description":"Not Authorized"}}},"post":{"tags":["Nodes"],"summary":"Change node metadata","description":"Example to set a node's title and add the sys:versionable aspect:\n\n```\nPOST /apix/v1/nodes/workspace/SpacesStore/b54287de-381e-44b1-b6d1-e6c9a9d632fd/metadata\n{\n \"aspectsToAdd\": [\"{http://www.alfresco.org/model/system/1.0}temporary\"],\n \"propertiesToSet\": {\"{http://www.alfresco.org/model/content/1.0}title\":[\"My new title\"]}\n}\n```\n\nWhen you generalize the type of a node instead of specializing, the default properties of the initial **type** that are not present in the new type are removed, however, the default aspects are not. This is the default behaviour. If you also want to remove these aspects on type generalization, add the parameter **cleanUpAspectsOnGeneralization** to the request body.\n\nExample for cleaning up aspects on type generalization:\n\n```\nPOST /apix/v1/nodes/workspace/SpacesStore/b54287de-381e-44b1-b6d1-e6c9a9d632fd/metadata\n{\n \"type\": \"{http://www.alfresco.org/model/content/1.0}content\",\n \"cleanUpAspectsOnGeneralization\": true\n}\n```\n\nChanging the cm:name property will also update the qname path of the node so it is in sync with it.\nThis only applies to nodes of type or subtype cm:content or cm:folder but not of type or subtype of cm:systemfolder.","operationId":"setMetadata","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/MetadataChanges"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NodeMetadata"}},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/parent":{"put":{"tags":["Nodes"],"summary":"Moves a node by changing its parent","description":"","operationId":"setParent","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/ChangeParentOptions"}}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/path":{"get":{"tags":["Nodes"],"summary":"Returns path of the node","description":"","operationId":"getPath","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NodePath"}},"403":{"description":"Not Authorized"}}}},"/v1/nodes/{space}/{store}/{guid}/permissions":{"get":{"tags":["Nodes"],"summary":"Retrieve current user's permissions for a node","description":"Returns a key-value map of permissions keys to a value of 'DENY' or 'ALLOW'. Possible keys are: Read, Write, Delete, CreateChildren, ReadPermissions, ChangePermissions, or custom permissions","operationId":"getPermissions","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"object","additionalProperties":{"type":"string","enum":["ALLOW","DENY","UNDETERMINED"]}}}}}},"/v1/nodes/{space}/{store}/{guid}/permissions/authority/{authority}/permission/{permission}":{"post":{"tags":["Nodes"],"summary":"sets a user a permission for a node.","description":"","operationId":"setPermission","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"name":"authority","in":"path","required":true,"type":"string"},{"name":"permission","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"}}},"delete":{"tags":["Nodes"],"summary":"removes a user its permission for a node.","description":"","operationId":"deletePermission","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"name":"authority","in":"path","required":true,"type":"string"},{"name":"permission","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"},"403":{"description":"Not Authorized"}}}},"/v1/people":{"get":{"tags":["People"],"summary":"Returns person information given a userName","description":"","operationId":"getPersonViaUserName","parameters":[{"name":"userName","in":"query","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Person"}}}}},"/v1/people/{space}/{store}/{guid}":{"get":{"tags":["People"],"summary":"Returns person information","description":"","operationId":"getPerson","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Person"}}}}},"/v1/properties/{qname}":{"get":{"tags":["Properties"],"summary":"Return the definition of a property","description":"","operationId":"getPropertyDefinition","parameters":[{"name":"qname","in":"path","required":true,"type":"string"},{"name":"qnameWithSlash","in":"query","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/PropertyDefinition"}}}}},"/v1/search":{"post":{"tags":["Search"],"summary":"Performs a search for nodes","description":"# Request components\n\n## query\nObject containing subcomponents that build the requested query.\nInfo about the Search query syntax can be found here: https://docs.xenit.eu/alfred-api/user/rest-api\n### special search terms:\n- type: searches for nodes of that type (for example: \"type\" : \"cm:content\")\n- aspect: searches for nodes with that aspect (for example: \"aspect\" : \"cm:titled\")\n- noderef: searches the node with that noderef (for example: \"noderef\" : \"workspace://SpacesStore/f0d15919-3841-4170-807f-b81d2ebdeb80\")\n- parent: searches the nodes with that parent (for example: \"parent\" : \"workspace://SpacesStore/f0d15919-3841-4170-807f-b81d2ebdeb80\")\n- path: searches the nodes with that path (for example: \"path\" : \"/\")\n- category: searches the nodes with that category (for example: \"category\" : \"workspace://SpacesStore/f0d15919-3841-4170-807f-b81d2ebdeb80\")\n- text: searches the nodes with content containing that text (for example: \"text\" : \"this text\")\n- all: searches the nodes with content, cm:name, cm:creator, cm:modifier or cm:author containing the value (for example: \"all\" : \"search term\")\n- isunset: searches the nodes with where the value of the property is not set (for example: \"isunset\" : \"cm:author\")\n- isnull: searches the nodes with where the value of the property is null (for example: \"isnull\" : \"cm:author\")\n- isnotnull: searches the nodes with where the value of the property is not null (for example: \"isnotnull\" : \"cm:author\")\n- exists: searches the nodes that have the property (for example: \"exists\" : \"cm:author\")\n\n## paging\n`Optional`\n\nOptions to skip over results starting from the top of the result and to limit the total number of results.\n\n## facets\n`Optional`\n\nOptions to enable, limit the total amount, minimum number of hits and customize input of facets.\n\nNote: facets with 0 hits are not returned in the result\n\n## orderBy\n`Optional`\n\nOptions to select the property to order by and the direction of sorting.\n\n## consistency\n`Optional`\n\nOption to request specific consistency\n\n## locale\n`Optional`\n\nOptions to request specific locale and encoding options\n\n## workspace\n`Optional`\n\nOptions to change the target alfresco workspace\n\n## highlight\n`5.2 and up`\n\n`Optional`\n\nOptions to change the highlight configuration.\nMinimal requirement is the `fields` array, which takes object containing at least the `field` property. Each list element specifies a property on which higlighting needs to be applied. When no fields are specified, the call defaults to `cm:content` as field.\nFull documentation can be found on the alfresco [documentation](https://docs.alfresco.com/5.2/concepts/search-api-highlight.html) page.\n\n# Examples\n\nSearch for the first 10 nodes in the `cm:content` namespace:\n```json\n{\n \"query\": {\"type\":\"{http://www.alfresco.org/model/content/1.0}content\"},\n \"paging\": {\n \"limit\": 10,\n \"skip\": 0\n },\n \"facets\": {\n \"enabled\": false\n }\n}\n```\n\nSearch for all nodes with the term 'budget' in the `cm:content` property (fulltext), and show two highlighted hits with delimiter \\\\:\n```json\n{\n \"query\": {\n \"property\": {\n \"exact\": false,\n \"name\": \"cm:content\",\n \"value\": \"budget\"\n }\n },\n \"highlight\":{\n \"prefix\":\"\",\n \"postfix\":\"\",\n \"snippetCount\":2,\n\t\t\"fields\":[{\"field\":\"cm:content\"}]\n }\n}\n```","operationId":"execute","parameters":[{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/SearchQuery"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/SearchQueryResult"}},"400":{"description":"Failure"}}}},"/v1/sites/mySites":{"get":{"tags":["Sites"],"summary":"Retrieves information about the available sites of the current user","description":"Returns a list of sites. For each site the node reference, short name, title, description,\nsite visibility and list of site components (document libray, links, data lists, wiki,\ndiscussions) are returned.\n\nThere are no mandatory request parameters. However, there are optional ones:\nSet 'retrieveMetadata' to true to return the aspects and properties of the sites.\nSet 'retrievePath' to true to return the path of the sites.\nSet 'retrievePermissions' to true to return the permissions of the sites.\nSet 'retrieveChildAssocs' to true to return the child associations of the sites.\nSet 'retrieveParentAssocs' to true to return the parent associations of the sites.\nSet 'retrieveTargetAssocs' to true to return the target peer associations of the sites.\nSet 'retrieveSourceAssocs' to true to return the source peer associations of the sites.\n","operationId":"getMySites","parameters":[{"name":"retrieveMetadata","in":"query","required":false,"type":"string"},{"name":"retrievePath","in":"query","required":false,"type":"string"},{"name":"retrievePermissions","in":"query","required":false,"type":"string"},{"name":"retrieveChildAssocs","in":"query","required":false,"type":"string"},{"name":"retrieveParentAssocs","in":"query","required":false,"type":"string"},{"name":"retrieveTargetAssocs","in":"query","required":false,"type":"string"},{"name":"retrieveSourceAssocs","in":"query","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/SiteInfo"}}}}}},"/v1/translations/{locale}":{"get":{"tags":["Translations"],"summary":"Get all available translations for given locale","description":"","operationId":"getTranslations","parameters":[{"name":"locale","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Translations"}}}}},"/v1/translations/{locale}/checksum":{"get":{"tags":["Translations"],"summary":"Retrieve a checksum of all translations for given locale","description":"","operationId":"getChecksum","parameters":[{"name":"locale","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/TranslationChecksum"}}}}},"/v1/version":{"get":{"tags":["General"],"summary":"Access the version information for Api-X","description":"","operationId":"getApixVersion","parameters":[],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/VersionDescription"}}}}},"/v1/versionhistory/{space}/{store}/{guid}":{"put":{"tags":["VersionHistory"],"summary":"Enables versioning for this node, creating an initial version","description":"","operationId":"setVersionHistory","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/VersionOptions"}}],"responses":{"200":{"description":"Success"}}},"delete":{"tags":["VersionHistory"],"summary":"Permanently emoves version history","description":"","operationId":"deleteVersionHistory","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"}}}},"/v1/versionhistory/{space}/{store}/{guid}/head":{"get":{"tags":["VersionHistory"],"summary":"Returns the head (newest) version","description":"","operationId":"getVersionHistoryHead","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Version"}}}}},"/v1/versionhistory/{space}/{store}/{guid}/root":{"get":{"tags":["VersionHistory"],"summary":"Returns the root (oldest) version","description":"","operationId":"getVersionHistoryRoot","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Version"}}}}},"/v1/versionhistory/{space}/{store}/{guid}/versions":{"get":{"tags":["VersionHistory"],"summary":"Returns list of chronological version information for give node","description":"","operationId":"getVersionHistory","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/VersionHistory"}}}}},"/v1/versionhistory/{space}/{store}/{guid}/versions/{label}":{"delete":{"tags":["VersionHistory"],"summary":"Permanently remove version with given label","description":"","operationId":"deleteVersion","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"name":"label","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"}}}},"/v1/versionhistory/{space}/{store}/{guid}/versions/{label}/revert":{"post":{"tags":["VersionHistory"],"summary":"(Shallow) Revert the node to version with given label","description":"","operationId":"revertVersionHistory","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"name":"label","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success"}}}},"/v1/workingcopies":{"post":{"tags":["Workingcopies"],"summary":"Checks out a new working copy for given node","description":"","operationId":"createWorkingcopy","parameters":[{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/CheckoutBody"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NoderefResult"}}}}},"/v1/workingcopies/{space}/{store}/{guid}":{"delete":{"tags":["Workingcopies"],"summary":"Cancels and removes a working copy","description":"Returns the noderef of the original node","operationId":"cancelWorkingcopy","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NoderefResult"}},"404":{"description":"Not found"}}}},"/v1/workingcopies/{space}/{store}/{guid}/checkin":{"post":{"tags":["Workingcopies"],"summary":"Checks in given working copy and removes it","description":"Returns the noderef of the original node","operationId":"checkinWorkingcopy","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/CheckinBody"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NoderefResult"}},"404":{"description":"Not found"}}}},"/v1/workingcopies/{space}/{store}/{guid}/original":{"get":{"tags":["Workingcopies"],"summary":"Returns the original node for given working copy","description":"","operationId":"getWorkingCopySource","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NoderefResult"}},"404":{"description":"Not Found"}}}},"/v2/groups":{"get":{"tags":["Groups"],"summary":"Returns a list containing all groups","description":"","operationId":"GetAllGroups","parameters":[],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}}}}},"/v2/groups/{name}/groups":{"get":{"tags":["Groups"],"summary":"Returns the groups within a specific group","description":"","operationId":"GetGroupsOfGroup","parameters":[{"name":"name","in":"path","required":true,"type":"string"},{"name":"immediate","in":"query","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}}}},"put":{"tags":["Groups"],"summary":"Sets the complete list of direct subgroups for this group","description":"","operationId":"SetGroupsOfGroup","parameters":[{"name":"name","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/SetSubgroupOptions"}}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}}}}},"/v2/groups/{name}/people":{"get":{"tags":["Groups"],"summary":"Returns the persons within a specific group","description":"","operationId":"GetPeopleOfGroup","parameters":[{"name":"name","in":"path","required":true,"type":"string"},{"name":"immediate","in":"query","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/Person"}}}}},"put":{"tags":["Groups"],"summary":"Sets the complete list of people as direct members of this group","description":"","operationId":"SetPeopleInGroup","parameters":[{"name":"name","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/SetUsersInGroupOptions"}}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}}}}},"/v2/nodes":{"post":{"tags":["Nodes"],"summary":"Creates or copies a node","description":"","operationId":"createNode","parameters":[{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/CreateNodeOptions"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NodeInfo"}}}}},"/v2/nodes/nodeInfo":{"post":{"tags":["Nodes"],"summary":"Returns combined information of multiple nodes","description":"Example to get combined information of multiple nodes:\n\n```\nPOST /apix/v1/nodes/nodeInfo\n{\n\"retrieveMetadata\" : true, \n\"retrievePath\" : true, \n\"retrievePermissions\" : true, \n\"retrieveAssocs\" : true, \n\"retrieveChildAssocs\" : true, \n\"retrieveParentAssocs\" : true, \n\"retrieveTargetAssocs\" : true, \n\"noderefs\": [ \n \"workspace://SpacesStore/123456789\", \n \"workspace://SpacesStore/147258369\", \n \"workspace://SpacesStore/478159236\" \n]}\n```\n'retrieveMetadata', 'retrievePath', 'retrievePermissions', 'retrieveAssocs', 'retrieveChildAssocs',\n'retrieveParentAssocs', 'retrieveTargetAssocs' are optional parameters.\nSet 'retrieveMetadata' to false to omit the aspects and properties from the result.\nSet 'retrievePath' to false to omit the path from the result.\nSet 'retrievePermissions' to false to omit the permissions from the result.\nSet 'retrieveAssocs' to false to omit the associations (parent associations, child associations, peer associations) from the result.\nSet 'retrieveChildAssocs' to false to omit the child associations from the result.\nSet 'retrieveParentAssocs' to false to omit the parent associations from the result.\nSet 'retrieveTargetAssocs' to false to omit the peer target associations from the result.\nSet 'retrieveSourceAssocs' to false to omit the peer source associations from the result. Note: versionstore does not support sourceAssocs. For version nodes, an empty list added to the result\n","operationId":"getAllInfos","parameters":[],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/NodeInfo"}}}}}},"/v2/nodes/{space}/{store}/{guid}":{"get":{"tags":["Nodes"],"summary":"Returns combined information of a node.\nNote: versionstore does not support sourceAssocs. For version nodes, an empty list added to the result","description":"","operationId":"getAllInfo","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NodeInfo"}}}}},"/v2/nodes/{space}/{store}/{guid}/permissions":{"get":{"tags":["Nodes"],"summary":"Retrieve current user's permissions for a node","description":"Returns a key-value map of permissions keys to a value of 'DENY' or 'ALLOW'. Possible keys are: Read, Write, Delete, CreateChildren, ReadPermissions, ChangePermissions, or custom permissions","operationId":"getPermissions","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"object","additionalProperties":{"type":"string","enum":["ALLOW","DENY","UNDETERMINED"]}}}}}},"/v2/people":{"get":{"tags":["People"],"summary":"Returns all people","description":"","operationId":"getAllPeople","parameters":[],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/Person"}}}}}},"/v2/people/-me-":{"get":{"tags":["People"],"summary":"Returns current user information","description":"","operationId":"getPersonCurrentUser","parameters":[],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Person"}}}}},"/v2/people/containergroups/{name}":{"get":{"tags":["People"],"summary":"Returns container groups of person","description":"","operationId":"getContainerGroupsOf","parameters":[{"name":"name","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"type":"string"}}}}}},"/v2/people/id/{space}/{store}/{guid}":{"get":{"tags":["People"],"summary":"Returns person information","description":"","operationId":"getPerson","parameters":[{"name":"space","in":"path","required":true,"type":"string"},{"name":"store","in":"path","required":true,"type":"string"},{"name":"guid","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Person"}}}}},"/v2/people/{name}":{"get":{"tags":["People"],"summary":"Returns person information","description":"","operationId":"getPersonWithName","parameters":[{"name":"name","in":"path","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Person"}}}}}},"definitions":{"Locale":{"type":"object","properties":{"displayName":{"type":"string"},"script":{"type":"string"},"country":{"type":"string"},"variant":{"type":"string"},"extensionKeys":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"unicodeLocaleAttributes":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"unicodeLocaleKeys":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"iso3Language":{"type":"string"},"iso3Country":{"type":"string"},"displayLanguage":{"type":"string"},"displayScript":{"type":"string"},"displayCountry":{"type":"string"},"displayVariant":{"type":"string"},"language":{"type":"string"}}},"Namespaces":{"type":"object","properties":{"namespaces":{"type":"object","additionalProperties":{"$ref":"#/definitions/Namespace"}}}},"Types":{"type":"object","properties":{"types":{"type":"array","items":{"$ref":"#/definitions/TypeDefinition"}}}},"NodeAssociation":{"type":"object","properties":{"source":{"$ref":"#/definitions/NodeRef"},"target":{"$ref":"#/definitions/NodeRef"},"type":{"$ref":"#/definitions/QName"}}},"MetadataChanges":{"type":"object","properties":{"type":{"$ref":"#/definitions/QName"},"aspectsToAdd":{"type":"array","items":{"$ref":"#/definitions/QName"}},"aspectsToRemove":{"type":"array","items":{"$ref":"#/definitions/QName"}},"propertiesToSet":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"HighlightFieldOption":{"type":"object","properties":{"field":{"type":"string"},"snippetCount":{"type":"integer","format":"int32"},"fragmentSize":{"type":"integer","format":"int32"},"mergeContinuous":{"type":"boolean","default":false},"prefix":{"type":"string"},"suffix":{"type":"string"}}},"Access":{"type":"object","properties":{"allowed":{"type":"boolean","default":false},"authority":{"type":"string"},"permission":{"type":"string"}}},"SearchQueryResult":{"type":"object","properties":{"noderefs":{"type":"array","items":{"type":"string"}},"facets":{"type":"array","items":{"$ref":"#/definitions/FacetSearchResult"}},"totalResultCount":{"type":"integer","format":"int64"},"highlights":{"$ref":"#/definitions/Highlights"}}},"VersionOptions":{"type":"object","properties":{"initialVersion":{"type":"boolean","default":false},"autoVersion":{"type":"boolean","default":false},"autoVersionOnUpdateProps":{"type":"boolean","default":false}}},"Version":{"type":"object","properties":{"modifier":{"type":"string"},"modifiedDate":{"type":"string","format":"date-time"},"label":{"type":"string"},"description":{"type":"string"},"type":{"type":"string","enum":["MAJOR","MINOR","UNKNOWN"]},"nodeRef":{"$ref":"#/definitions/NodeRef"}}},"CheckinBody":{"type":"object","properties":{"comment":{"type":"string","readOnly":true},"majorVersion":{"type":"boolean","readOnly":true,"default":false}}},"PropertyIndexOptions":{"type":"object","properties":{"stored":{"type":"boolean","default":false},"tokenised":{"type":"string","enum":["TRUE","FALSE","BOTH"]},"facetable":{"type":"string","enum":["TRUE","FALSE","DEFAULT"]}}},"ISite":{"type":"object","properties":{"public":{"type":"boolean","default":false},"title":{"type":"string"},"description":{"type":"string"},"shortName":{"type":"string"},"nodeRef":{"$ref":"#/definitions/NodeRef"},"components":{"type":"object","additionalProperties":{"$ref":"#/definitions/NodeRef"}}}},"CreateAssociationOptions":{"type":"object","required":["target"],"properties":{"target":{"$ref":"#/definitions/NodeRef"},"type":{"description":"Defaults to cm:content","$ref":"#/definitions/QName"}}},"StoreRef":{"type":"object","properties":{"id":{"type":"string"},"protocol":{"type":"string"}}},"SiteInfo":{"type":"object","properties":{"site":{"$ref":"#/definitions/ISite"},"nodeInfo":{"$ref":"#/definitions/NodeInfo"}}},"Categories":{"type":"object","properties":{"categories":{"type":"array","items":{"$ref":"#/definitions/Category"}}}},"PropertyConstraintDefinition":{"type":"object","properties":{"constraintType":{"type":"string"},"parameters":{"type":"object","additionalProperties":{"type":"object"}}}},"ChildParentAssociation":{"type":"object","properties":{"source":{"$ref":"#/definitions/NodeRef"},"target":{"$ref":"#/definitions/NodeRef"},"type":{"$ref":"#/definitions/QName"},"primary":{"type":"boolean","default":false}}},"VersionHistory":{"type":"object","properties":{"versionHistory":{"type":"array","items":{"$ref":"#/definitions/Version"}}}},"NodePath":{"type":"object","properties":{"displayPath":{"type":"string"},"qnamePath":{"type":"string"}}},"Namespace":{"type":"object","properties":{"URI":{"type":"string"},"prefixes":{"type":"array","items":{"type":"string"}}}},"NoderefResult":{"type":"object","properties":{"noderef":{"$ref":"#/definitions/NodeRef"}}},"HighlightOptions":{"type":"object","properties":{"prefix":{"type":"string"},"postfix":{"type":"string"},"snippetCount":{"type":"integer","format":"int32"},"fragmentSize":{"type":"integer","format":"int32"},"maxAnalyzedCharacters":{"type":"integer","format":"int32"},"mergeContiguous":{"type":"boolean","default":false},"usePhraseHighlighter":{"type":"boolean","default":false},"fields":{"type":"array","items":{"$ref":"#/definitions/HighlightFieldOption"}}}},"SearchSyntaxNode":{"type":"object"},"AncestorsObject":{"type":"object","properties":{"node":{"$ref":"#/definitions/NodeRef"},"ancestors":{"type":"array","items":{"$ref":"#/definitions/NodeRef"}}}},"TranslationValue":{"type":"object","properties":{"qname":{"$ref":"#/definitions/QName"},"title":{"type":"string"},"description":{"type":"string"}}},"NodeInfo":{"type":"object","properties":{"noderef":{"$ref":"#/definitions/NodeRef"},"metadata":{"$ref":"#/definitions/NodeMetadata"},"permissions":{"type":"object","additionalProperties":{"type":"string","enum":["ALLOW","DENY","UNDETERMINED"]}},"associations":{"$ref":"#/definitions/NodeAssociations"},"path":{"$ref":"#/definitions/NodePath"}}},"PropertyTranslationValue":{"type":"object","properties":{"qname":{"$ref":"#/definitions/QName"},"title":{"type":"string"},"description":{"type":"string"},"values":{"type":"object","additionalProperties":{"type":"string"}}}},"ConfigurationFile":{"type":"object","properties":{"content":{"type":"string"},"nodeRef":{"$ref":"#/definitions/NodeRef"},"metadata":{"$ref":"#/definitions/NodeMetadata"},"path":{"$ref":"#/definitions/NodePath"},"parsedContent":{"type":"object"}}},"Translations":{"type":"object","properties":{"types":{"type":"array","items":{"$ref":"#/definitions/TranslationValue"}},"aspects":{"type":"array","items":{"$ref":"#/definitions/TranslationValue"}},"association":{"type":"array","items":{"$ref":"#/definitions/TranslationValue"}},"properties":{"type":"array","items":{"$ref":"#/definitions/PropertyTranslationValue"}}}},"Person":{"type":"object","properties":{"nodeRef":{"$ref":"#/definitions/NodeRef"},"userName":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"emailAddress":{"type":"string"},"groups":{"type":"array","items":{"type":"string"}}}},"Group":{"type":"object","properties":{"nodeRef":{"$ref":"#/definitions/NodeRef"},"identifier":{"type":"string"},"displayName":{"type":"string"}}},"Highlights":{"type":"object","properties":{"noderefs":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/definitions/HighlightResult"}}}}},"Category":{"type":"object","properties":{"noderef":{"type":"string"},"name":{"type":"string"},"qnamePath":{"type":"string"},"subcategories":{"type":"array","items":{"$ref":"#/definitions/Category"}}}},"TranslationChecksum":{"type":"object","properties":{"checksum":{"type":"integer","format":"int64"}}},"Properties":{"type":"object","properties":{"properties":{"type":"array","items":{"$ref":"#/definitions/PropertyDefinition"}}}},"RangeValue":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}}},"TypeDefinition":{"type":"object","properties":{"name":{"$ref":"#/definitions/QName"},"parent":{"$ref":"#/definitions/QName"},"title":{"type":"string"},"description":{"type":"string"},"properties":{"type":"array","items":{"$ref":"#/definitions/QName"}},"mandatoryAspects":{"type":"array","items":{"$ref":"#/definitions/QName"}}}},"InheritFromParent":{"type":"object","required":["inheritFromParent"],"properties":{"inheritFromParent":{"type":"boolean","default":false}}},"NodeRef":{"type":"string","example":"workspace://SpacesStore/987-978-79-797-797-978"},"CreateNodeOptions":{"type":"object","required":["parent"],"properties":{"parent":{"type":"string","readOnly":true},"name":{"type":"string","readOnly":true},"type":{"type":"string","readOnly":true},"properties":{"type":"object","readOnly":true,"additionalProperties":{"type":"array","items":{"type":"string"}}},"aspectsToAdd":{"type":"array","readOnly":true,"items":{"$ref":"#/definitions/QName"}},"aspectsToRemove":{"type":"array","readOnly":true,"items":{"$ref":"#/definitions/QName"}},"copyFrom":{"type":"string","readOnly":true}}},"FacetValue":{"type":"object","properties":{"value":{"type":"string"},"range":{"$ref":"#/definitions/RangeValue"},"label":{"type":"string"},"count":{"type":"integer","format":"int32"}}},"NodeAssociations":{"type":"object","properties":{"children":{"type":"array","items":{"$ref":"#/definitions/ChildParentAssociation"}},"parents":{"type":"array","items":{"$ref":"#/definitions/ChildParentAssociation"}},"targets":{"type":"array","items":{"$ref":"#/definitions/NodeAssociation"}},"sources":{"type":"array","items":{"$ref":"#/definitions/NodeAssociation"}}}},"ChangeParentOptions":{"type":"object","required":["parent"],"properties":{"parent":{"type":"string","readOnly":true}}},"CheckoutBody":{"type":"object","required":["original"],"properties":{"original":{"readOnly":true,"$ref":"#/definitions/NodeRef"},"destinationFolder":{"description":"Optional, if not specified uses the original node's folder. If current user does not have permissions for this folder, the working copy is created in the user's home folder","readOnly":true,"$ref":"#/definitions/NodeRef"}}},"Configurations":{"type":"object","properties":{"files":{"type":"array","items":{"$ref":"#/definitions/ConfigurationFile"}}}},"SetUsersInGroupOptions":{"type":"object","required":["users"],"properties":{"users":{"type":"array","readOnly":true,"items":{"type":"string"}}}},"OrderBy":{"type":"object","properties":{"property":{"$ref":"#/definitions/QName"},"order":{"type":"string","enum":["DESCENDING","ASCENDING"]}}},"SearchQuery":{"type":"object","required":["query"],"properties":{"query":{"$ref":"#/definitions/SearchSyntaxNode"},"paging":{"$ref":"#/definitions/PagingOptions"},"facets":{"$ref":"#/definitions/FacetOptions"},"orderBy":{"type":"array","items":{"$ref":"#/definitions/OrderBy"}},"consistency":{"type":"string","enum":["EVENTUAL","TRANSACTIONAL","TRANSACTIONAL_IF_POSSIBLE"]},"locale":{"$ref":"#/definitions/Locale"},"workspace":{"$ref":"#/definitions/StoreRef"},"highlight":{"$ref":"#/definitions/HighlightOptions"}}},"Comment":{"type":"object","properties":{"id":{"$ref":"#/definitions/NodeRef"},"title":{"type":"string"},"content":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"modifiedAt":{"type":"string"},"modifiedBy":{"type":"string"},"editable":{"type":"boolean","default":false},"deletable":{"type":"boolean","default":false}}},"HighlightResult":{"type":"object","properties":{"field":{"type":"string"},"snippets":{"type":"array","items":{"type":"string"}}}},"VersionDescription":{"type":"object","properties":{"version":{"type":"string"},"description":{"type":"string"},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"},"patch":{"type":"integer","format":"int32"}}},"QName":{"type":"string","example":"{http://www.alfresco.org/model/content/1.0}content"},"AspectDefinition":{"type":"object","properties":{"name":{"$ref":"#/definitions/QName"},"parent":{"$ref":"#/definitions/QName"},"title":{"type":"string"},"description":{"type":"string"},"properties":{"type":"array","items":{"$ref":"#/definitions/QName"}},"mandatoryAspects":{"type":"array","items":{"$ref":"#/definitions/QName"}}}},"NodePermission":{"type":"object","properties":{"inheritFromParent":{"type":"boolean","default":false},"ownAccessList":{"type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/Access"}},"inheritedAccessList":{"type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/Access"}}}},"PropertyDefinition":{"type":"object","properties":{"name":{"$ref":"#/definitions/QName"},"container":{"$ref":"#/definitions/QName"},"title":{"type":"string"},"description":{"type":"string"},"defaultValue":{"type":"string"},"dataType":{"$ref":"#/definitions/QName"},"multiValued":{"type":"boolean","default":false},"mandatory":{"type":"boolean","default":false},"enforced":{"type":"boolean","default":false},"isProtected":{"type":"boolean","default":false},"indexed":{"$ref":"#/definitions/PropertyIndexOptions"},"constraints":{"type":"array","items":{"$ref":"#/definitions/PropertyConstraintDefinition"}}}},"FacetOptions":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"limit":{"type":"integer","format":"int32","description":"Limits the number of values returned per facet"},"mincount":{"type":"integer","format":"int32","description":"Return only facet values with count >= mincount"},"custom":{"type":"array","items":{"type":"string"}}}},"NodeMetadata":{"type":"object","properties":{"id":{"$ref":"#/definitions/NodeRef"},"type":{"$ref":"#/definitions/QName"},"baseType":{"$ref":"#/definitions/QName"},"transactionId":{"type":"integer","format":"int64"},"properties":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"aspects":{"type":"array","items":{"$ref":"#/definitions/QName"}}}},"PagingOptions":{"type":"object","properties":{"limit":{"type":"integer","format":"int32"},"skip":{"type":"integer","format":"int32"}}},"BulkRequest":{"type":"object","required":["method","url"],"properties":{"method":{"type":"string","enum":["get","put","post","delete"]},"url":{"type":"string","example":"/version?alf_ticket=TICKET_4654..."},"body":{"type":"object"}}},"Aspects":{"type":"object","properties":{"aspects":{"type":"array","items":{"$ref":"#/definitions/AspectDefinition"}}}},"ChangeAclsOptions":{"type":"object","properties":{"inheritFromParent":{"type":"boolean","default":false},"ownAccessList":{"type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/Access"}}}},"SetSubgroupOptions":{"type":"object","required":["subgroups"],"properties":{"subgroups":{"type":"array","readOnly":true,"items":{"type":"string"}}}},"FacetSearchResult":{"type":"object","properties":{"name":{"type":"string"},"values":{"type":"array","items":{"$ref":"#/definitions/FacetValue"}}}},"BulkSubResult":{"type":"object","properties":{"statusCode":{"type":"integer","format":"int32","example":200,"description":"The HTTP status code of the sub call"},"body":{"type":"object","description":"JSON result body of the sub call"},"headers":{"type":"object","additionalProperties":{"type":"string"}}}}}} +{ + "swagger": "2.0", + "info": { + "description": "This is the swagger specification for Api-X REST API\n\nExamples can be found at: https://docs.xenit.eu/alfred-api", + "version": "5.0.0", + "title": "Api-X REST API", + "contact": { + "name": "XeniT", + "url": "http://www.xenit.eu", + "email": "engineering@xenit.eu" + }, + "license": { + "name": "GNU Lesser General Public License v3", + "url": "https://www.gnu.org/licenses/lgpl-3.0.txt" + } + }, + "basePath": "/alfresco/s/apix", + "tags": [ + { + "name": "WIP", + "description": "Don't use in production!" + }, + { + "name": "Bulk", + "description": "Perform multiple operations in a single call" + }, + { + "name": "Category", + "description": "Retrieves Category information" + }, + { + "name": "Configuration", + "description": "Retrieves configuration data files from the datadictionary" + }, + { + "name": "Dictionary", + "description": "Retrieves Dictionary information" + }, + { + "name": "Documentation", + "description": "Access API Documentation" + }, + { + "name": "General", + "description": "General API operations" + }, + { + "name": "Nodes", + "description": "Access operations on nodes" + }, + { + "name": "Search", + "description": "Perform search queries" + }, + { + "name": "Sites", + "description": "Access operations on sites" + }, + { + "name": "Translations", + "description": "Retrieve translations" + }, + { + "name": "VersionHistory", + "description": "Retrieves version history information" + }, + { + "name": "Workingcopies", + "description": "Access operations on working copies" + }, + { + "name": "People", + "description": "Retrieves person information" + }, + { + "name": "Properties", + "description": "Retrieves Property information" + }, + { + "name": "Groups", + "description": "Retrieves group information and links users/groups to parent groups" + } + ], + "schemes": [ + "https", + "http" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v1/bulk": { + "post": { + "tags": [ + "Bulk" + ], + "summary": "Performs multiple Api-X operations in a single rest call", + "description": "", + "operationId": "bulk", + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/BulkRequest" + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/BulkSubResult" + } + } + } + } + } + }, + "/v1/category/aspect/{qname}": { + "get": { + "tags": [ + "Category" + ], + "summary": "Return the categories available for an aspect", + "description": "", + "operationId": "getCategoriesForAspect", + "parameters": [ + { + "name": "qname", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Categories" + } + } + } + } + }, + "/v1/comments/{space}/{store}/{guid}": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Returns the comment with the given id.", + "description": "", + "operationId": "getComment", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + }, + "404": { + "description": "Not Found" + } + } + }, + "put": { + "tags": [ + "Nodes" + ], + "summary": "Updates the comment with the given id.", + "description": "", + "operationId": "updateComment", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/Comment" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + }, + "404": { + "description": "Not Found" + } + } + }, + "delete": { + "tags": [ + "Nodes" + ], + "summary": "Deletes the comment with the given id.", + "description": "", + "operationId": "deleteComment", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + }, + "404": { + "description": "Not Found" + } + } + } + }, + "/v1/configuration": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Returns configuration files information and content", + "description": "", + "operationId": "getConfigurationFiles", + "parameters": [ + { + "name": "fields", + "in": "query", + "description": "Comma separated field names to include.", + "required": true, + "type": "string", + "default": "content,nodeRef", + "enum": [ + "content", + "nodeRef", + "path", + "metadata", + "parsedContent" + ] + }, + { + "name": "searchDirectory", + "in": "query", + "description": "The directory to search for configuration files, relative to the data dictionary", + "required": true, + "type": "string" + }, + { + "name": "filter.name", + "in": "query", + "description": "Regular expression that the node name should match.", + "required": false, + "type": "string" + }, + { + "name": "callback", + "in": "query", + "description": "Javascript callback function", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Configurations" + } + } + } + } + }, + "/v1/dictionary/aspects": { + "get": { + "tags": [ + "Dictionary" + ], + "summary": "Return apects", + "description": "", + "operationId": "getAspects", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Aspects" + } + } + } + } + }, + "/v1/dictionary/aspects/{qname}": { + "get": { + "tags": [ + "Dictionary" + ], + "summary": "Return the definition of a aspect", + "description": "", + "operationId": "getAspectDefinition", + "parameters": [ + { + "name": "qname", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AspectDefinition" + } + } + } + } + }, + "/v1/dictionary/namespaces": { + "get": { + "tags": [ + "Dictionary" + ], + "summary": "Returns the namespaces", + "description": "", + "operationId": "getNamespaces", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Namespaces" + } + } + } + } + }, + "/v1/dictionary/properties": { + "get": { + "tags": [ + "Dictionary" + ], + "summary": "Return properties", + "description": "", + "operationId": "getProperties", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Properties" + } + } + } + } + }, + "/v1/dictionary/properties/{qname}": { + "get": { + "tags": [ + "Dictionary" + ], + "summary": "Return the definition of a property", + "description": "", + "operationId": "getPropertyDefinition", + "parameters": [ + { + "name": "qname", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PropertyDefinition" + } + } + } + } + }, + "/v1/dictionary/types": { + "get": { + "tags": [ + "Dictionary" + ], + "summary": "Return the definitions of types", + "description": "", + "operationId": "getSubTypeDefinitions", + "parameters": [ + { + "name": "parent", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Types" + } + } + } + } + }, + "/v1/dictionary/types/{qname}": { + "get": { + "tags": [ + "Dictionary" + ], + "summary": "Return the definition of a type", + "description": "", + "operationId": "getTypeDefinition", + "parameters": [ + { + "name": "qname", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/TypeDefinition" + } + }, + "404": { + "description": "Not Found" + } + } + } + }, + "/v1/docs/swagger.json": { + "get": { + "tags": [ + "Documentation" + ], + "summary": "The Swagger Spec for Alfred API", + "description": "", + "operationId": "execute", + "parameters": [], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/v1/docs/ui": { + "get": { + "tags": [ + "Documentation" + ], + "summary": "Shows this swagger spec in a user interface", + "parameters": [], + "responses": { + "200": { + "description": "Swagger UI interface", + "schema": { + "type": "file" + } + } + } + } + }, + "/v1/nodes": { + "post": { + "tags": [ + "Nodes" + ], + "summary": "Creates or copies a node", + "description": "Example of POST body:\n\n```\nPOST /apix/v1/nodes\n{\n\"parent\" : \"workspace://SpacesStore/d5dac928-e581-4507-9be7-9a2416adc318\", \n\"name\" : \"mydocument.txt\", \n\"type\" : \"{http://www.alfresco.org/model/content/1.0}content\", \n\"properties\" : {\n \"{namespace}property1\": [\n \"string\"\n ],\n \"{namespace}property2\": [\n \"string\"\n ],\n \"{namespace}property3\": [\n \"string\"\n ]\n}, \n\"aspectsToAdd\" : [\n \"{namespace}aspect1\"\n], \n\"aspectsToRemove\" : [\n \"{namespace}aspect1\"\n], \n\"copyFrom\" : \"workspace://SpacesStore/f0d15919-3841-4170-807f-b81d2ebdeb80\", \n}\n```\n\"aspectsToRemove\" is only relevant when copying a node.\n", + "operationId": "createNode", + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/CreateNodeOptions" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NodeInfo" + } + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/nodeInfo": { + "post": { + "tags": [ + "Nodes" + ], + "summary": "Returns combined information of multiple nodes. Nodes errors or without appropriate permissions will not be included in return, and will not cause failure of the call.", + "description": "Example to get combined information of multiple nodes:\n\n```\nPOST /apix/v1/nodes/nodeInfo\n{\n\"retrieveMetadata\" : true, \n\"retrievePath\" : true, \n\"retrievePermissions\" : true, \n\"retrieveAssocs\" : true, \n\"retrieveChildAssocs\" : true, \n\"retrieveParentAssocs\" : true, \n\"retrieveTargetAssocs\" : true, \n\"noderefs\": [ \n \"workspace://SpacesStore/123456789\", \n \"workspace://SpacesStore/147258369\", \n \"workspace://SpacesStore/478159236\" \n]}\n```\n'retrieveMetadata', 'retrievePath', 'retrievePermissions', 'retrieveAssocs', 'retrieveChildAssocs',\n'retrieveParentAssocs', 'retrieveTargetAssocs' are optional parameters.\nSet 'retrieveMetadata' to false to omit the aspects and properties from the result.\nSet 'retrievePath' to false to omit the path from the result.\nSet 'retrievePermissions' to false to omit the permissions from the result.\nSet 'retrieveAssocs' to false to omit the associations(parent associations, child associations, peer associations) from the result.\nSet 'retrieveChildAssocs' to false to omit the child associations from the result.\nSet 'retrieveParentAssocs' to false to omit the parent associations from the result.\nSet 'retrieveTargetAssocs' to false to omit the peer target associations from the result.\nSet 'retrieveSourceAssocs' to false to omit the peer source associations from the result. Note: versionstore does not support sourceAssocs. For version nodes, an empty list added to the result\n", + "operationId": "getAllInfoOfNodes", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeInfo" + } + } + }, + "400": { + "description": "Bad Request" + } + } + } + }, + "/v1/nodes/upload": { + "post": { + "tags": [ + "Nodes" + ], + "summary": "Creates a new node with given content", + "description": "", + "operationId": "uploadNode", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "name": "parent", + "in": "formData", + "description": "Noderef of parent for the new node", + "required": true, + "type": "string" + }, + { + "name": "type", + "in": "formData", + "description": "QName type for the new node", + "required": false, + "type": "string" + }, + { + "name": "file", + "in": "formData", + "required": true, + "type": "file" + }, + { + "name": "metadata", + "in": "formData", + "description": "Metadata for this file", + "required": false, + "type": "string" + }, + { + "name": "extractMetadata", + "in": "formData", + "description": "Enable metadata extraction from the content, for example for msg files", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NodeInfo" + } + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Returns combined information of a node.\nNote: versionstore does not support sourceAssocs. For version nodes, an empty list added to the result", + "description": "", + "operationId": "getAllInfoOfNode", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NodeInfo" + } + }, + "403": { + "description": "Not Authorized" + }, + "404": { + "description": "Not Found" + } + } + }, + "delete": { + "tags": [ + "Nodes" + ], + "summary": "Delete a node", + "description": "", + "operationId": "deleteNode", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "permanently", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + }, + "404": { + "description": "Not Found" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/acl": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Gets the ACLs for a node.", + "description": "", + "operationId": "getAcls", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NodePermission" + } + }, + "403": { + "description": "Not Authorized" + } + } + }, + "put": { + "tags": [ + "Nodes" + ], + "summary": "Sets the ACL for a node.", + "description": "Example:\n\n```\n{\n \"inheritFromParent\": false,\n \"ownAccessList\": [\n {\n \"allowed\": true,\n \"authority\": \"MYGROUP\",\n \"permission\": \"Collaborator\"\n }\n]}\n```", + "operationId": "setAcls", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ChangeAclsOptions" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/acl/inheritFromParent": { + "post": { + "tags": [ + "Nodes" + ], + "operationId": "setInheritParentPermissions", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/InheritFromParent" + } + } + ], + "responses": { + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/ancestors": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Retrieves the ancestors of the nodes", + "description": "It is possible to add \"root\" as a request parameter.\nIt is the node reference up to which point ancestors will be retrieved.\nThe default root reference will be the reference of Company Home", + "operationId": "retrieveAncestors", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "root", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AncestorsObject" + } + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/associations": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Retrieve node associations.\nVersionstore does not support sourceAssocs. For version nodes, an empty list is returned for this component of the result.", + "description": "", + "operationId": "getAssociations", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NodeAssociations" + } + }, + "403": { + "description": "Not Authorized" + } + } + }, + "post": { + "tags": [ + "Nodes" + ], + "summary": "Create new association with given node as source", + "description": "", + "operationId": "createAssociation", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/CreateAssociationOptions" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + } + } + }, + "delete": { + "tags": [ + "Nodes" + ], + "summary": "Deletes an association with given node as source", + "description": "", + "operationId": "deleteAssociation", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "target", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "type", + "in": "query", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/associations/children": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Retrieve node child associations", + "description": "", + "operationId": "getChildAssociations", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ChildParentAssociation" + } + } + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/associations/parents": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Retrieve node parent associations", + "description": "", + "operationId": "getParentAssociations", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ChildParentAssociation" + } + } + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/associations/targets": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Retrieve node peer associations with given node being the source", + "description": "", + "operationId": "getSourcePeerAssociations", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeAssociation" + } + } + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/comments": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Retrieves all comments for a given node", + "description": "", + "operationId": "getComments", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "skipcount", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "pagesize", + "in": "query", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + }, + "404": { + "description": "Not Found" + } + } + }, + "post": { + "tags": [ + "Nodes" + ], + "summary": "Appends a new comment to the given node.", + "description": "", + "operationId": "addComment", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/Comment" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + }, + "404": { + "description": "Not Found" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/content": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Downloads content file for given node", + "description": "", + "operationId": "getContent", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + }, + "404": { + "description": "Not Found" + } + } + }, + "put": { + "tags": [ + "Nodes" + ], + "summary": "Sets or updates the content for given node. If no file is given the content will be set to empty.", + "description": "", + "operationId": "setContent", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "file", + "in": "formData", + "required": false, + "type": "file" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + } + } + }, + "delete": { + "tags": [ + "Nodes" + ], + "summary": "Sets the content for given node to empty", + "description": "", + "operationId": "deleteContent", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/content/previews/pdf": { + "get": { + "tags": [ + "WIP" + ], + "summary": "Downloads preview file for given node", + "description": "", + "operationId": "getPreviewPdf", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "file", + "in": "formData", + "required": true, + "type": "file" + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/exists": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Checks if the given node exists", + "description": "", + "operationId": "exists", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/metadata": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Retrieve node metadata", + "description": "", + "operationId": "getMetadata", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NodeMetadata" + } + }, + "403": { + "description": "Not Authorized" + } + } + }, + "post": { + "tags": [ + "Nodes" + ], + "summary": "Change node metadata", + "description": "Example to set a node's title and add the sys:versionable aspect:\n\n```\nPOST /apix/v1/nodes/workspace/SpacesStore/b54287de-381e-44b1-b6d1-e6c9a9d632fd/metadata\n{\n \"aspectsToAdd\": [\"{http://www.alfresco.org/model/system/1.0}temporary\"],\n \"propertiesToSet\": {\"{http://www.alfresco.org/model/content/1.0}title\":[\"My new title\"]}\n}\n```\n\nWhen you generalize the type of a node instead of specializing, the default properties of the initial **type** that are not present in the new type are removed, however, the default aspects are not. This is the default behaviour. If you also want to remove these aspects on type generalization, add the parameter **cleanUpAspectsOnGeneralization** to the request body.\n\nExample for cleaning up aspects on type generalization:\n\n```\nPOST /apix/v1/nodes/workspace/SpacesStore/b54287de-381e-44b1-b6d1-e6c9a9d632fd/metadata\n{\n \"type\": \"{http://www.alfresco.org/model/content/1.0}content\",\n \"cleanUpAspectsOnGeneralization\": true\n}\n```\n\nChanging the cm:name property will also update the qname path of the node so it is in sync with it.\nThis only applies to nodes of type or subtype cm:content or cm:folder but not of type or subtype of cm:systemfolder.", + "operationId": "setMetadata", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/MetadataChanges" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NodeMetadata" + } + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/parent": { + "put": { + "tags": [ + "Nodes" + ], + "summary": "Moves a node by changing its parent", + "description": "", + "operationId": "setParent", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ChangeParentOptions" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/path": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Returns path of the node", + "description": "", + "operationId": "getPath", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NodePath" + } + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/permissions": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Retrieve current user's permissions for a node", + "description": "Returns a key-value map of permissions keys to a value of 'DENY' or 'ALLOW'. Possible keys are: Read, Write, Delete, CreateChildren, ReadPermissions, ChangePermissions, or custom permissions", + "operationId": "getPermissions", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "enum": [ + "ALLOW", + "DENY", + "UNDETERMINED" + ] + } + } + } + } + } + }, + "/v1/nodes/{space}/{store}/{guid}/permissions/authority/{authority}/permission/{permission}": { + "post": { + "tags": [ + "Nodes" + ], + "summary": "sets a user a permission for a node.", + "description": "", + "operationId": "setPermission", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "authority", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "permission", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + } + } + }, + "delete": { + "tags": [ + "Nodes" + ], + "summary": "removes a user its permission for a node.", + "description": "", + "operationId": "deletePermission", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "authority", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "permission", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not Authorized" + } + } + } + }, + "/v1/people": { + "get": { + "tags": [ + "People" + ], + "summary": "Returns person information given a userName", + "description": "", + "operationId": "getPersonViaUserName", + "parameters": [ + { + "name": "userName", + "in": "query", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Person" + } + } + } + } + }, + "/v1/people/{space}/{store}/{guid}": { + "get": { + "tags": [ + "People" + ], + "summary": "Returns person information", + "description": "", + "operationId": "getPerson", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Person" + } + } + } + } + }, + "/v1/properties/{qname}": { + "get": { + "tags": [ + "Properties" + ], + "summary": "Return the definition of a property", + "description": "", + "operationId": "getPropertyDefinition", + "parameters": [ + { + "name": "qname", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "qnameWithSlash", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PropertyDefinition" + } + } + } + } + }, + "/v1/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Performs a search for nodes", + "description": "# Request components\n\n## query\nObject containing subcomponents that build the requested query.\nInfo about the Search query syntax can be found here: https://docs.xenit.eu/alfred-api/user/rest-api\n### special search terms:\n- type: searches for nodes of that type (for example: \"type\" : \"cm:content\")\n- aspect: searches for nodes with that aspect (for example: \"aspect\" : \"cm:titled\")\n- noderef: searches the node with that noderef (for example: \"noderef\" : \"workspace://SpacesStore/f0d15919-3841-4170-807f-b81d2ebdeb80\")\n- parent: searches the nodes with that parent (for example: \"parent\" : \"workspace://SpacesStore/f0d15919-3841-4170-807f-b81d2ebdeb80\")\n- path: searches the nodes with that path (for example: \"path\" : \"/\")\n- category: searches the nodes with that category (for example: \"category\" : \"workspace://SpacesStore/f0d15919-3841-4170-807f-b81d2ebdeb80\")\n- text: searches the nodes with content containing that text (for example: \"text\" : \"this text\")\n- all: searches the nodes with content, cm:name, cm:creator, cm:modifier or cm:author containing the value (for example: \"all\" : \"search term\")\n- isunset: searches the nodes with where the value of the property is not set (for example: \"isunset\" : \"cm:author\")\n- isnull: searches the nodes with where the value of the property is null (for example: \"isnull\" : \"cm:author\")\n- isnotnull: searches the nodes with where the value of the property is not null (for example: \"isnotnull\" : \"cm:author\")\n- exists: searches the nodes that have the property (for example: \"exists\" : \"cm:author\")\n\n## paging\n`Optional`\n\nOptions to skip over results starting from the top of the result and to limit the total number of results.\n\n## facets\n`Optional`\n\nOptions to enable, limit the total amount, minimum number of hits and customize input of facets.\n\nNote: facets with 0 hits are not returned in the result\n\n## orderBy\n`Optional`\n\nOptions to select the property to order by and the direction of sorting.\n\n## consistency\n`Optional`\n\nOption to request specific consistency\n\n## locale\n`Optional`\n\nOptions to request specific locale and encoding options\n\n## workspace\n`Optional`\n\nOptions to change the target alfresco workspace\n\n## highlight\n`5.2 and up`\n\n`Optional`\n\nOptions to change the highlight configuration.\nMinimal requirement is the `fields` array, which takes object containing at least the `field` property. Each list element specifies a property on which higlighting needs to be applied. When no fields are specified, the call defaults to `cm:content` as field.\nFull documentation can be found on the alfresco [documentation](https://docs.alfresco.com/5.2/concepts/search-api-highlight.html) page.\n\n# Examples\n\nSearch for the first 10 nodes in the `cm:content` namespace:\n```json\n{\n \"query\": {\"type\":\"{http://www.alfresco.org/model/content/1.0}content\"},\n \"paging\": {\n \"limit\": 10,\n \"skip\": 0\n },\n \"facets\": {\n \"enabled\": false\n }\n}\n```\n\nSearch for all nodes with the term 'budget' in the `cm:content` property (fulltext), and show two highlighted hits with delimiter \\\\:\n```json\n{\n \"query\": {\n \"property\": {\n \"exact\": false,\n \"name\": \"cm:content\",\n \"value\": \"budget\"\n }\n },\n \"highlight\":{\n \"prefix\":\"\",\n \"postfix\":\"\",\n \"snippetCount\":2,\n\t\t\"fields\":[{\"field\":\"cm:content\"}]\n }\n}\n```", + "operationId": "execute", + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SearchQuery" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SearchQueryResult" + } + }, + "400": { + "description": "Failure" + } + } + } + }, + "/v1/sites/mySites": { + "get": { + "tags": [ + "Sites" + ], + "summary": "Retrieves information about the available sites of the current user", + "description": "Returns a list of sites. For each site the node reference, short name, title, description,\nsite visibility and list of site components (document libray, links, data lists, wiki,\ndiscussions) are returned.\n\nThere are no mandatory request parameters. However, there are optional ones:\nSet 'retrieveMetadata' to true to return the aspects and properties of the sites.\nSet 'retrievePath' to true to return the path of the sites.\nSet 'retrievePermissions' to true to return the permissions of the sites.\nSet 'retrieveChildAssocs' to true to return the child associations of the sites.\nSet 'retrieveParentAssocs' to true to return the parent associations of the sites.\nSet 'retrieveTargetAssocs' to true to return the target peer associations of the sites.\nSet 'retrieveSourceAssocs' to true to return the source peer associations of the sites.\n", + "operationId": "getMySites", + "parameters": [ + { + "name": "retrieveMetadata", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "retrievePath", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "retrievePermissions", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "retrieveChildAssocs", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "retrieveParentAssocs", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "retrieveTargetAssocs", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "retrieveSourceAssocs", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SiteInfo" + } + } + } + } + } + }, + "/v1/translations/{locale}": { + "get": { + "tags": [ + "Translations" + ], + "summary": "Get all available translations for given locale", + "description": "", + "operationId": "getTranslations", + "parameters": [ + { + "name": "locale", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Translations" + } + } + } + } + }, + "/v1/translations/{locale}/checksum": { + "get": { + "tags": [ + "Translations" + ], + "summary": "Retrieve a checksum of all translations for given locale", + "description": "", + "operationId": "getChecksum", + "parameters": [ + { + "name": "locale", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/TranslationChecksum" + } + } + } + } + }, + "/v1/version": { + "get": { + "tags": [ + "General" + ], + "summary": "Access the version information for Api-X", + "description": "", + "operationId": "getApixVersion", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/VersionDescription" + } + } + } + } + }, + "/v1/versionhistory/{space}/{store}/{guid}": { + "put": { + "tags": [ + "VersionHistory" + ], + "summary": "Enables versioning for this node, creating an initial version", + "description": "", + "operationId": "setVersionHistory", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/VersionOptions" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "VersionHistory" + ], + "summary": "Permanently emoves version history", + "description": "", + "operationId": "deleteVersionHistory", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/v1/versionhistory/{space}/{store}/{guid}/head": { + "get": { + "tags": [ + "VersionHistory" + ], + "summary": "Returns the head (newest) version", + "description": "", + "operationId": "getVersionHistoryHead", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Version" + } + } + } + } + }, + "/v1/versionhistory/{space}/{store}/{guid}/root": { + "get": { + "tags": [ + "VersionHistory" + ], + "summary": "Returns the root (oldest) version", + "description": "", + "operationId": "getVersionHistoryRoot", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Version" + } + } + } + } + }, + "/v1/versionhistory/{space}/{store}/{guid}/versions": { + "get": { + "tags": [ + "VersionHistory" + ], + "summary": "Returns list of chronological version information for give node", + "description": "", + "operationId": "getVersionHistory", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/VersionHistory" + } + } + } + } + }, + "/v1/versionhistory/{space}/{store}/{guid}/versions/{label}": { + "delete": { + "tags": [ + "VersionHistory" + ], + "summary": "Permanently remove version with given label", + "description": "", + "operationId": "deleteVersion", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "label", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/v1/versionhistory/{space}/{store}/{guid}/versions/{label}/revert": { + "post": { + "tags": [ + "VersionHistory" + ], + "summary": "(Shallow) Revert the node to version with given label", + "description": "", + "operationId": "revertVersionHistory", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "label", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/v1/workingcopies": { + "post": { + "tags": [ + "Workingcopies" + ], + "summary": "Checks out a new working copy for given node", + "description": "", + "operationId": "createWorkingcopy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/CheckoutBody" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NoderefResult" + } + } + } + } + }, + "/v1/workingcopies/{space}/{store}/{guid}": { + "delete": { + "tags": [ + "Workingcopies" + ], + "summary": "Cancels and removes a working copy", + "description": "Returns the noderef of the original node", + "operationId": "cancelWorkingcopy", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NoderefResult" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/v1/workingcopies/{space}/{store}/{guid}/checkin": { + "post": { + "tags": [ + "Workingcopies" + ], + "summary": "Checks in given working copy and removes it", + "description": "Returns the noderef of the original node", + "operationId": "checkinWorkingcopy", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/CheckinBody" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NoderefResult" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/v1/workingcopies/{space}/{store}/{guid}/original": { + "get": { + "tags": [ + "Workingcopies" + ], + "summary": "Returns the original node for given working copy", + "description": "", + "operationId": "getWorkingCopySource", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NoderefResult" + } + }, + "404": { + "description": "Not Found" + } + } + } + }, + "/v2/groups": { + "get": { + "tags": [ + "Groups" + ], + "summary": "Returns a list containing all groups", + "description": "", + "operationId": "GetAllGroups", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Group" + } + } + } + } + } + }, + "/v2/groups/{name}/groups": { + "get": { + "tags": [ + "Groups" + ], + "summary": "Returns the groups within a specific group", + "description": "", + "operationId": "GetGroupsOfGroup", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "immediate", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Group" + } + } + } + } + }, + "put": { + "tags": [ + "Groups" + ], + "summary": "Sets the complete list of direct subgroups for this group", + "description": "", + "operationId": "SetGroupsOfGroup", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SetSubgroupOptions" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Group" + } + } + } + } + } + }, + "/v2/groups/{name}/people": { + "get": { + "tags": [ + "Groups" + ], + "summary": "Returns the persons within a specific group", + "description": "", + "operationId": "GetPeopleOfGroup", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "immediate", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Person" + } + } + } + } + }, + "put": { + "tags": [ + "Groups" + ], + "summary": "Sets the complete list of people as direct members of this group", + "description": "", + "operationId": "SetPeopleInGroup", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SetUsersInGroupOptions" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Group" + } + } + } + } + } + }, + "/v2/nodes": { + "post": { + "tags": [ + "Nodes" + ], + "summary": "Creates or copies a node", + "description": "", + "operationId": "createNode", + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/CreateNodeOptions" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NodeInfo" + } + } + } + } + }, + "/v2/nodes/nodeInfo": { + "post": { + "tags": [ + "Nodes" + ], + "summary": "Returns combined information of multiple nodes", + "description": "Example to get combined information of multiple nodes:\n\n```\nPOST /apix/v1/nodes/nodeInfo\n{\n\"retrieveMetadata\" : true, \n\"retrievePath\" : true, \n\"retrievePermissions\" : true, \n\"retrieveAssocs\" : true, \n\"retrieveChildAssocs\" : true, \n\"retrieveParentAssocs\" : true, \n\"retrieveTargetAssocs\" : true, \n\"noderefs\": [ \n \"workspace://SpacesStore/123456789\", \n \"workspace://SpacesStore/147258369\", \n \"workspace://SpacesStore/478159236\" \n]}\n```\n'retrieveMetadata', 'retrievePath', 'retrievePermissions', 'retrieveAssocs', 'retrieveChildAssocs',\n'retrieveParentAssocs', 'retrieveTargetAssocs' are optional parameters.\nSet 'retrieveMetadata' to false to omit the aspects and properties from the result.\nSet 'retrievePath' to false to omit the path from the result.\nSet 'retrievePermissions' to false to omit the permissions from the result.\nSet 'retrieveAssocs' to false to omit the associations (parent associations, child associations, peer associations) from the result.\nSet 'retrieveChildAssocs' to false to omit the child associations from the result.\nSet 'retrieveParentAssocs' to false to omit the parent associations from the result.\nSet 'retrieveTargetAssocs' to false to omit the peer target associations from the result.\nSet 'retrieveSourceAssocs' to false to omit the peer source associations from the result. Note: versionstore does not support sourceAssocs. For version nodes, an empty list added to the result\n", + "operationId": "getAllInfos", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeInfo" + } + } + } + } + } + }, + "/v2/nodes/{space}/{store}/{guid}": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Returns combined information of a node.\nNote: versionstore does not support sourceAssocs. For version nodes, an empty list added to the result", + "description": "", + "operationId": "getAllInfo", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NodeInfo" + } + } + } + } + }, + "/v2/nodes/{space}/{store}/{guid}/permissions": { + "get": { + "tags": [ + "Nodes" + ], + "summary": "Retrieve current user's permissions for a node", + "description": "Returns a key-value map of permissions keys to a value of 'DENY' or 'ALLOW'. Possible keys are: Read, Write, Delete, CreateChildren, ReadPermissions, ChangePermissions, or custom permissions", + "operationId": "getPermissions", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "enum": [ + "ALLOW", + "DENY", + "UNDETERMINED" + ] + } + } + } + } + } + }, + "/v2/people": { + "get": { + "tags": [ + "People" + ], + "summary": "Returns all people", + "description": "", + "operationId": "getAllPeople", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Person" + } + } + } + } + } + }, + "/v2/people/-me-": { + "get": { + "tags": [ + "People" + ], + "summary": "Returns current user information", + "description": "", + "operationId": "getPersonCurrentUser", + "parameters": [], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Person" + } + } + } + } + }, + "/v2/people/containergroups/{name}": { + "get": { + "tags": [ + "People" + ], + "summary": "Returns container groups of person", + "description": "", + "operationId": "getContainerGroupsOf", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "/v2/people/id/{space}/{store}/{guid}": { + "get": { + "tags": [ + "People" + ], + "summary": "Returns person information", + "description": "", + "operationId": "getPerson", + "parameters": [ + { + "name": "space", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "store", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "guid", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Person" + } + } + } + } + }, + "/v2/people/{name}": { + "get": { + "tags": [ + "People" + ], + "summary": "Returns person information", + "description": "", + "operationId": "getPersonWithName", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Person" + } + } + } + } + } + }, + "definitions": { + "Locale": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "script": { + "type": "string" + }, + "country": { + "type": "string" + }, + "variant": { + "type": "string" + }, + "extensionKeys": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "unicodeLocaleAttributes": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "unicodeLocaleKeys": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "iso3Language": { + "type": "string" + }, + "iso3Country": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "language": { + "type": "string" + } + } + }, + "Namespaces": { + "type": "object", + "properties": { + "namespaces": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Namespace" + } + } + } + }, + "Types": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "$ref": "#/definitions/TypeDefinition" + } + } + } + }, + "NodeAssociation": { + "type": "object", + "properties": { + "source": { + "$ref": "#/definitions/NodeRef" + }, + "target": { + "$ref": "#/definitions/NodeRef" + }, + "type": { + "$ref": "#/definitions/QName" + } + } + }, + "MetadataChanges": { + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/QName" + }, + "aspectsToAdd": { + "type": "array", + "items": { + "$ref": "#/definitions/QName" + } + }, + "aspectsToRemove": { + "type": "array", + "items": { + "$ref": "#/definitions/QName" + } + }, + "propertiesToSet": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "HighlightFieldOption": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "snippetCount": { + "type": "integer", + "format": "int32" + }, + "fragmentSize": { + "type": "integer", + "format": "int32" + }, + "mergeContinuous": { + "type": "boolean", + "default": false + }, + "prefix": { + "type": "string" + }, + "suffix": { + "type": "string" + } + } + }, + "Access": { + "type": "object", + "properties": { + "allowed": { + "type": "boolean", + "default": false + }, + "authority": { + "type": "string" + }, + "permission": { + "type": "string" + } + } + }, + "SearchQueryResult": { + "type": "object", + "properties": { + "noderefs": { + "type": "array", + "items": { + "type": "string" + } + }, + "facets": { + "type": "array", + "items": { + "$ref": "#/definitions/FacetSearchResult" + } + }, + "totalResultCount": { + "type": "integer", + "format": "int64" + }, + "highlights": { + "$ref": "#/definitions/Highlights" + } + } + }, + "VersionOptions": { + "type": "object", + "properties": { + "initialVersion": { + "type": "boolean", + "default": false + }, + "autoVersion": { + "type": "boolean", + "default": false + }, + "autoVersionOnUpdateProps": { + "type": "boolean", + "default": false + } + } + }, + "Version": { + "type": "object", + "properties": { + "modifier": { + "type": "string" + }, + "modifiedDate": { + "type": "string", + "format": "date-time" + }, + "label": { + "type": "string" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "MAJOR", + "MINOR", + "UNKNOWN" + ] + }, + "nodeRef": { + "$ref": "#/definitions/NodeRef" + } + } + }, + "CheckinBody": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "readOnly": true + }, + "majorVersion": { + "type": "boolean", + "readOnly": true, + "default": false + } + } + }, + "PropertyIndexOptions": { + "type": "object", + "properties": { + "stored": { + "type": "boolean", + "default": false + }, + "tokenised": { + "type": "string", + "enum": [ + "TRUE", + "FALSE", + "BOTH" + ] + }, + "facetable": { + "type": "string", + "enum": [ + "TRUE", + "FALSE", + "DEFAULT" + ] + } + } + }, + "ISite": { + "type": "object", + "properties": { + "public": { + "type": "boolean", + "default": false + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "shortName": { + "type": "string" + }, + "nodeRef": { + "$ref": "#/definitions/NodeRef" + }, + "components": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/NodeRef" + } + } + } + }, + "CreateAssociationOptions": { + "type": "object", + "required": [ + "target" + ], + "properties": { + "target": { + "$ref": "#/definitions/NodeRef" + }, + "type": { + "description": "Defaults to cm:content", + "$ref": "#/definitions/QName" + } + } + }, + "StoreRef": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "protocol": { + "type": "string" + } + } + }, + "SiteInfo": { + "type": "object", + "properties": { + "site": { + "$ref": "#/definitions/ISite" + }, + "nodeInfo": { + "$ref": "#/definitions/NodeInfo" + } + } + }, + "Categories": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "$ref": "#/definitions/Category" + } + } + } + }, + "PropertyConstraintDefinition": { + "type": "object", + "properties": { + "constraintType": { + "type": "string" + }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "ChildParentAssociation": { + "type": "object", + "properties": { + "source": { + "$ref": "#/definitions/NodeRef" + }, + "target": { + "$ref": "#/definitions/NodeRef" + }, + "type": { + "$ref": "#/definitions/QName" + }, + "primary": { + "type": "boolean", + "default": false + } + } + }, + "VersionHistory": { + "type": "object", + "properties": { + "versionHistory": { + "type": "array", + "items": { + "$ref": "#/definitions/Version" + } + } + } + }, + "NodePath": { + "type": "object", + "properties": { + "displayPath": { + "type": "string" + }, + "qnamePath": { + "type": "string" + } + } + }, + "Namespace": { + "type": "object", + "properties": { + "URI": { + "type": "string" + }, + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "NoderefResult": { + "type": "object", + "properties": { + "noderef": { + "$ref": "#/definitions/NodeRef" + } + } + }, + "HighlightOptions": { + "type": "object", + "properties": { + "prefix": { + "type": "string" + }, + "postfix": { + "type": "string" + }, + "snippetCount": { + "type": "integer", + "format": "int32" + }, + "fragmentSize": { + "type": "integer", + "format": "int32" + }, + "maxAnalyzedCharacters": { + "type": "integer", + "format": "int32" + }, + "mergeContiguous": { + "type": "boolean", + "default": false + }, + "usePhraseHighlighter": { + "type": "boolean", + "default": false + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/HighlightFieldOption" + } + } + } + }, + "SearchSyntaxNode": { + "type": "object" + }, + "AncestorsObject": { + "type": "object", + "properties": { + "node": { + "$ref": "#/definitions/NodeRef" + }, + "ancestors": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeRef" + } + } + } + }, + "TranslationValue": { + "type": "object", + "properties": { + "qname": { + "$ref": "#/definitions/QName" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + } + } + }, + "NodeInfo": { + "type": "object", + "properties": { + "noderef": { + "$ref": "#/definitions/NodeRef" + }, + "metadata": { + "$ref": "#/definitions/NodeMetadata" + }, + "permissions": { + "type": "object", + "additionalProperties": { + "type": "string", + "enum": [ + "ALLOW", + "DENY", + "UNDETERMINED" + ] + } + }, + "associations": { + "$ref": "#/definitions/NodeAssociations" + }, + "path": { + "$ref": "#/definitions/NodePath" + } + } + }, + "PropertyTranslationValue": { + "type": "object", + "properties": { + "qname": { + "$ref": "#/definitions/QName" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "ConfigurationFile": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "nodeRef": { + "$ref": "#/definitions/NodeRef" + }, + "metadata": { + "$ref": "#/definitions/NodeMetadata" + }, + "path": { + "$ref": "#/definitions/NodePath" + }, + "parsedContent": { + "type": "object" + } + } + }, + "Translations": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "$ref": "#/definitions/TranslationValue" + } + }, + "aspects": { + "type": "array", + "items": { + "$ref": "#/definitions/TranslationValue" + } + }, + "association": { + "type": "array", + "items": { + "$ref": "#/definitions/TranslationValue" + } + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/definitions/PropertyTranslationValue" + } + } + } + }, + "Person": { + "type": "object", + "properties": { + "nodeRef": { + "$ref": "#/definitions/NodeRef" + }, + "userName": { + "type": "string" + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "groups": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Group": { + "type": "object", + "properties": { + "nodeRef": { + "$ref": "#/definitions/NodeRef" + }, + "identifier": { + "type": "string" + }, + "displayName": { + "type": "string" + } + } + }, + "Highlights": { + "type": "object", + "properties": { + "noderefs": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/HighlightResult" + } + } + } + } + }, + "Category": { + "type": "object", + "properties": { + "noderef": { + "type": "string" + }, + "name": { + "type": "string" + }, + "qnamePath": { + "type": "string" + }, + "subcategories": { + "type": "array", + "items": { + "$ref": "#/definitions/Category" + } + } + } + }, + "TranslationChecksum": { + "type": "object", + "properties": { + "checksum": { + "type": "integer", + "format": "int64" + } + } + }, + "Properties": { + "type": "object", + "properties": { + "properties": { + "type": "array", + "items": { + "$ref": "#/definitions/PropertyDefinition" + } + } + } + }, + "RangeValue": { + "type": "object", + "properties": { + "start": { + "type": "string" + }, + "end": { + "type": "string" + } + } + }, + "TypeDefinition": { + "type": "object", + "properties": { + "name": { + "$ref": "#/definitions/QName" + }, + "parent": { + "$ref": "#/definitions/QName" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/definitions/QName" + } + }, + "mandatoryAspects": { + "type": "array", + "items": { + "$ref": "#/definitions/QName" + } + } + } + }, + "InheritFromParent": { + "type": "object", + "required": [ + "inheritFromParent" + ], + "properties": { + "inheritFromParent": { + "type": "boolean", + "default": false + } + } + }, + "NodeRef": { + "type": "string", + "example": "workspace://SpacesStore/987-978-79-797-797-978" + }, + "CreateNodeOptions": { + "type": "object", + "required": [ + "parent" + ], + "properties": { + "parent": { + "type": "string", + "readOnly": true + }, + "name": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "readOnly": true + }, + "properties": { + "type": "object", + "readOnly": true, + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "aspectsToAdd": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/QName" + } + }, + "aspectsToRemove": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/QName" + } + }, + "copyFrom": { + "type": "string", + "readOnly": true + } + } + }, + "FacetValue": { + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "range": { + "$ref": "#/definitions/RangeValue" + }, + "label": { + "type": "string" + }, + "count": { + "type": "integer", + "format": "int32" + } + } + }, + "NodeAssociations": { + "type": "object", + "properties": { + "children": { + "type": "array", + "items": { + "$ref": "#/definitions/ChildParentAssociation" + } + }, + "parents": { + "type": "array", + "items": { + "$ref": "#/definitions/ChildParentAssociation" + } + }, + "targets": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeAssociation" + } + }, + "sources": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeAssociation" + } + } + } + }, + "ChangeParentOptions": { + "type": "object", + "required": [ + "parent" + ], + "properties": { + "parent": { + "type": "string", + "readOnly": true + } + } + }, + "CheckoutBody": { + "type": "object", + "required": [ + "original" + ], + "properties": { + "original": { + "readOnly": true, + "$ref": "#/definitions/NodeRef" + }, + "destinationFolder": { + "description": "Optional, if not specified uses the original node's folder. If current user does not have permissions for this folder, the working copy is created in the user's home folder", + "readOnly": true, + "$ref": "#/definitions/NodeRef" + } + } + }, + "Configurations": { + "type": "object", + "properties": { + "files": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigurationFile" + } + } + } + }, + "SetUsersInGroupOptions": { + "type": "object", + "required": [ + "users" + ], + "properties": { + "users": { + "type": "array", + "readOnly": true, + "items": { + "type": "string" + } + } + } + }, + "OrderBy": { + "type": "object", + "properties": { + "property": { + "$ref": "#/definitions/QName" + }, + "order": { + "type": "string", + "enum": [ + "DESCENDING", + "ASCENDING" + ] + } + } + }, + "SearchQuery": { + "type": "object", + "required": [ + "query" + ], + "properties": { + "query": { + "$ref": "#/definitions/SearchSyntaxNode" + }, + "paging": { + "$ref": "#/definitions/PagingOptions" + }, + "facets": { + "$ref": "#/definitions/FacetOptions" + }, + "orderBy": { + "type": "array", + "items": { + "$ref": "#/definitions/OrderBy" + } + }, + "consistency": { + "type": "string", + "enum": [ + "EVENTUAL", + "TRANSACTIONAL", + "TRANSACTIONAL_IF_POSSIBLE" + ] + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "workspace": { + "$ref": "#/definitions/StoreRef" + }, + "highlight": { + "$ref": "#/definitions/HighlightOptions" + } + } + }, + "Comment": { + "type": "object", + "properties": { + "id": { + "$ref": "#/definitions/NodeRef" + }, + "title": { + "type": "string" + }, + "content": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "modifiedAt": { + "type": "string" + }, + "modifiedBy": { + "type": "string" + }, + "editable": { + "type": "boolean", + "default": false + }, + "deletable": { + "type": "boolean", + "default": false + } + } + }, + "HighlightResult": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "snippets": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "VersionDescription": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "description": { + "type": "string" + }, + "major": { + "type": "integer", + "format": "int32" + }, + "minor": { + "type": "integer", + "format": "int32" + }, + "patch": { + "type": "integer", + "format": "int32" + } + } + }, + "QName": { + "type": "string", + "example": "{http://www.alfresco.org/model/content/1.0}content" + }, + "AspectDefinition": { + "type": "object", + "properties": { + "name": { + "$ref": "#/definitions/QName" + }, + "parent": { + "$ref": "#/definitions/QName" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/definitions/QName" + } + }, + "mandatoryAspects": { + "type": "array", + "items": { + "$ref": "#/definitions/QName" + } + } + } + }, + "NodePermission": { + "type": "object", + "properties": { + "inheritFromParent": { + "type": "boolean", + "default": false + }, + "ownAccessList": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Access" + } + }, + "inheritedAccessList": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Access" + } + } + } + }, + "PropertyDefinition": { + "type": "object", + "properties": { + "name": { + "$ref": "#/definitions/QName" + }, + "container": { + "$ref": "#/definitions/QName" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "defaultValue": { + "type": "string" + }, + "dataType": { + "$ref": "#/definitions/QName" + }, + "multiValued": { + "type": "boolean", + "default": false + }, + "mandatory": { + "type": "boolean", + "default": false + }, + "enforced": { + "type": "boolean", + "default": false + }, + "isProtected": { + "type": "boolean", + "default": false + }, + "indexed": { + "$ref": "#/definitions/PropertyIndexOptions" + }, + "constraints": { + "type": "array", + "items": { + "$ref": "#/definitions/PropertyConstraintDefinition" + } + } + } + }, + "FacetOptions": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": false + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "Limits the number of values returned per facet" + }, + "mincount": { + "type": "integer", + "format": "int32", + "description": "Return only facet values with count >= mincount" + }, + "custom": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "NodeMetadata": { + "type": "object", + "properties": { + "id": { + "$ref": "#/definitions/NodeRef" + }, + "type": { + "$ref": "#/definitions/QName" + }, + "baseType": { + "$ref": "#/definitions/QName" + }, + "transactionId": { + "type": "integer", + "format": "int64" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "aspects": { + "type": "array", + "items": { + "$ref": "#/definitions/QName" + } + } + } + }, + "PagingOptions": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32" + }, + "skip": { + "type": "integer", + "format": "int32" + } + } + }, + "BulkRequest": { + "type": "object", + "required": [ + "method", + "url" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "get", + "put", + "post", + "delete" + ] + }, + "url": { + "type": "string", + "example": "/version?alf_ticket=TICKET_4654..." + }, + "body": { + "type": "object" + } + } + }, + "Aspects": { + "type": "object", + "properties": { + "aspects": { + "type": "array", + "items": { + "$ref": "#/definitions/AspectDefinition" + } + } + } + }, + "ChangeAclsOptions": { + "type": "object", + "properties": { + "inheritFromParent": { + "type": "boolean", + "default": false + }, + "ownAccessList": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Access" + } + } + } + }, + "SetSubgroupOptions": { + "type": "object", + "required": [ + "subgroups" + ], + "properties": { + "subgroups": { + "type": "array", + "readOnly": true, + "items": { + "type": "string" + } + } + } + }, + "FacetSearchResult": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "$ref": "#/definitions/FacetValue" + } + } + } + }, + "BulkSubResult": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "The HTTP status code of the sub call" + }, + "body": { + "type": "object", + "description": "JSON result body of the sub call" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } +} diff --git a/docs/user/user-guide.md b/docs/user/user-guide.md index 072038ee..261e3944 100644 --- a/docs/user/user-guide.md +++ b/docs/user/user-guide.md @@ -742,9 +742,38 @@ Currently Alfred API supports the following Alfresco versions: * 7.3 * 7.4 -Note that previous versions of Alfred API needed +Alfred API depends on the [Alfresco MVC framework](https://github.com/dgradecak/alfresco-mvc) version `8.0.0`. +Installation depends on the tools that you use to build and install, but below are examples of a few common ways. +Further details can be found on its [README](https://github.com/dgradecak/alfresco-mvc/blob/master/README.md). + +(Note that previous versions of Alfred API needed [Dynamic Extensions For Alfresco](https://github.com/xenit-eu/dynamic-extensions-for-alfresco). -Since version 5.0.0, however, Dynamic Extensions is no longer needed. +Since version 5.0.0, however, Dynamic Extensions is no longer needed.) + + +### Install with Gradle + +An example when using Gradle and the +[Alfresco Docker Gradle plugin](https://github.com/xenit-eu/alfresco-docker-gradle-plugin/blob/master/docs/02-plugin-docker-alfresco.md) +is: +```groovy +alfrescoSM group: 'com.gradecak.alfresco-mvc', name: 'alfresco-mvc-rest', version: '8.0.0' +alfrescoSM group: 'com.gradecak.alfresco-mvc', name: 'alfresco-mvc-aop', version: '8.0.0' +alfrescoAmp group: 'eu.xenit.alfred.api', name: 'alfred-api-74', version: '5.0.0' +``` +Note above example also installs Alfred API as AMP. + +### Install manually + +If you install your Alfresco manually, you can download the JARs directly from +[Maven Central](https://search.maven.org/search?q=g:com.gradecak.alfresco-mvc) +and place them on your Tomcat's classpath. + +```bash +cp alfresco-mvc-aop-8.0.0.jar /usr/local/tomcat/shared/lib/ +cp alfresco-mvc-rest-8.0.0.jar /usr/local/tomcat/shared/lib/ +``` + ## Artifacts ### Prebuilt