diff --git a/.github/workflows/plugin-fc-syncplicity-publish.yml b/.github/workflows/plugin-fc-syncplicity-publish.yml new file mode 100644 index 00000000..ff2fc947 --- /dev/null +++ b/.github/workflows/plugin-fc-syncplicity-publish.yml @@ -0,0 +1,73 @@ +# The name of the plugin to appear in the actions and badge! +name: Syncplicity Connector Release + +on: + release: + types: + - published + tags: + # If this tag is pushed, a release is created + - '*plugin-fc-syncplicity*' + +jobs: + build: + # This is a required check, as the on:release can't be filtered on given tags + if: contains(github.ref, 'plugin-fc-sap-lama') + env: + # This must be aligned with the folder-name of you plugin + workingDirectory: 'api-builder-plugin-fc-syncplicity' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12 + - name: Run npm tests + working-directory: ${{env.workingDirectory}} + run: | + npm ci + npm test + + publish-gpr: + env: + # This must be aligned with the folder-name of you plugin + workingDirectory: 'api-builder-plugin-fc-syncplicity' + CI: true + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12 + registry-url: https://npm.pkg.github.com/ + scope: '@Axway-API-Builder-Ext' + - name: Publish to GitHub package repo + working-directory: ${{env.workingDirectory}} + env: + NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} + run: | + npm ci + npm publish + + publish-npm: + env: + # This must be aligned with the folder-name of you plugin + workingDirectory: 'api-builder-plugin-fc-syncplicity' + CI: true + needs: [build, publish-gpr] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12 + registry-url: https://registry.npmjs.org/ + - name: Publish to NPM package repo + working-directory: ${{env.workingDirectory}} + env: + NODE_AUTH_TOKEN: ${{secrets.npm_token}} + run: | + npm ci + echo "//registry.npmjs.org/:_authToken=${{ secrets.npm_token }}" > ~/.npmrc + npm publish --access public diff --git a/.github/workflows/plugin-fc-syncplicity-tests.yml b/.github/workflows/plugin-fc-syncplicity-tests.yml new file mode 100644 index 00000000..9b08313d --- /dev/null +++ b/.github/workflows/plugin-fc-syncplicity-tests.yml @@ -0,0 +1,40 @@ +# The name of the workflow node to appear in the actions and badge! +name: Syncplicity Connector Tests + +on: + push: + paths: + # This must be aligned with the folder-name of you plugin + - 'api-builder-plugin-fc-syncplicity/**' + - '.github/workflows/**' + pull_request: + paths: + # This must be aligned with the folder-name of you plugin + - 'api-builder-plugin-fc-syncplicity/**' + - '.github/workflows/**' + +jobs: + build: + env: + # This must be aligned with the folder-name of you plugin + workingDirectory: 'api-builder-plugin-fc-syncplicity' + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [8.x, 10.x, 12.x] + steps: +# - name: Debug +# uses: hmarr/debug-action@v1.0.0 + - uses: actions/checkout@v1 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: npm install, build, and test + working-directory: ${{env.workingDirectory}} + env: + CI: true + run: | + npm ci + npm run build --if-present + npm test diff --git a/api-builder-plugin-fc-syncplicity/LICENSE b/api-builder-plugin-fc-syncplicity/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/api-builder-plugin-fc-syncplicity/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/api-builder-plugin-fc-syncplicity/README.md b/api-builder-plugin-fc-syncplicity/README.md new file mode 100644 index 00000000..1be2d8f8 --- /dev/null +++ b/api-builder-plugin-fc-syncplicity/README.md @@ -0,0 +1,105 @@ +# API-Builder Syncplicity Connector + +Use this connector to communicate with the [Syncplicity by Axway](https://www.syncplicity.com/en) and make it part of your API-Management platform. + +## Installation +To install it into you API-Builder project execute: +```npm +npm install @axway-api-builder-ext/syncplicity-connector --no-optional +``` +To install a specific version please use: +```npm +npm install @axway-api-builder-ext/syncplicity@1.0.0 --no-optional +``` + +This connector is using the Swagger-Flow node: +https://docs.axway.com/bundle/API_Builder_4x_allOS_en/page/swagger_flow-node.html + + +## Configuration +After restarting your API-Builder project you get the following connector: +![Syncplicity Node][connector] +Depending on the selected method different options appear on the right, when using the connector as part of the flow. +![Syncplicity Node Settings][connector-settings] + +## Setup Syncplicity connector +A new config file has been automatically created for the Syncplicity Connector which can be used to setup the connection details: +![Syncplicity Node Settings][connector-config] +Additional details can be found here: https://docs.axway.com/bundle/API_Builder_4x_allOS_en/page/swagger_flow-node.html#Swaggerflow-node-ConfiguretheSwaggerplugin + + +Please note, that the connector is configured to use OAuth 2.0 to communicate with Syncplicuty. In order to use that, please configure the Authentication-Credentials as described here: +https://docs.axway.com/bundle/API_Builder_4x_allOS_en/page/oauth_2_0_credentials.html + + +```javascript +module.exports = { + // The configuration settings for your Swagger service. + pluginConfig: { + '@axway/api-builder-plugin-fn-swagger': { + 'syncplicity': { + // It is possible to override Swagger URI options when constructing + // outbound requests from the Swagger plugin. + uri: { + // protocol: 'https', + // host: 'hostname', + // port: 443, + // basePath: '/api' + } + } + } + }, + // The following authorization credentials needed to use the Swagger service. + // Please follow this guide to manually configure the credentials: + // https://docs.axway.com/bundle/API_Builder_4x_allOS_en/page/api_builder_credentials.html + authorization: { + credentials: { + 'Syncplicity oauth': { + type: 'oauth2', + flow: 'accessCode', + authentication_url: 'https://api.syncplicity.com/oauth/authorize', + token_url: 'https://api.syncplicity.com/oauth/token', + scope: 'readwrite read', + client_id: 'YOUR_CLIENT_ID_GOES_HERE', + client_secret: 'YOUR_SECRET_GOES_HERE', + access_token: null, + refresh_token: null + } + } + } +}; +``` + +## Compatibility +Tested with Syncplicity version Q1/2020 + +## Changelog +- 1.0.0 - 02.02.2020 + - Initial version + +## Limitations/Caveats +- OAuth doesn't work with API-Builder - Will be fixed with release 16.02.20 + Adjust the following to make it work + In node_modules\@axway\axway-flow-authorization\src\handlers\oauth2.js + In function oauthRequest add an HTTP-Basic Authorization header (headers) based on client-id & secret + Example: + 'Authorization': 'Basic YWQ0ODA1YWUtZ........Y2JlOGQ0OTI5YQ==' + +## Contributing + +Please read [Contributing.md](https://github.com/Axway-API-Management-Plus/Common/blob/master/Contributing.md) for details on our code of conduct, and the process for submitting pull requests to us. + + +## Team + +![alt text][Axwaylogo] Axway Team + +[Axwaylogo]: https://github.com/Axway-API-Management/Common/blob/master/img/AxwayLogoSmall.png "Axway logo" + + +## License +[Apache License 2.0](/LICENSE) + +[connector]: misc/images/Syncplicity-Connector.png +[connector-settings]: misc/images/Syncplicity-Connector-Settings.png +[connector-config]: misc/images/Syncplicity-Connector-Config.png diff --git a/api-builder-plugin-fc-syncplicity/misc/images/Syncplicity-Connector-Config.png b/api-builder-plugin-fc-syncplicity/misc/images/Syncplicity-Connector-Config.png new file mode 100644 index 00000000..07d85364 Binary files /dev/null and b/api-builder-plugin-fc-syncplicity/misc/images/Syncplicity-Connector-Config.png differ diff --git a/api-builder-plugin-fc-syncplicity/misc/images/Syncplicity-Connector-Settings.png b/api-builder-plugin-fc-syncplicity/misc/images/Syncplicity-Connector-Settings.png new file mode 100644 index 00000000..9bf74fba Binary files /dev/null and b/api-builder-plugin-fc-syncplicity/misc/images/Syncplicity-Connector-Settings.png differ diff --git a/api-builder-plugin-fc-syncplicity/misc/images/Syncplicity-Connector.png b/api-builder-plugin-fc-syncplicity/misc/images/Syncplicity-Connector.png new file mode 100644 index 00000000..571e3524 Binary files /dev/null and b/api-builder-plugin-fc-syncplicity/misc/images/Syncplicity-Connector.png differ diff --git a/api-builder-plugin-fc-syncplicity/package-lock.json b/api-builder-plugin-fc-syncplicity/package-lock.json new file mode 100644 index 00000000..38a6b4c4 --- /dev/null +++ b/api-builder-plugin-fc-syncplicity/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "@axway-api-builder-ext/syncplicity-connector", + "version": "1.0.5", + "lockfileVersion": 1 +} diff --git a/api-builder-plugin-fc-syncplicity/package.json b/api-builder-plugin-fc-syncplicity/package.json new file mode 100644 index 00000000..00fd2a56 --- /dev/null +++ b/api-builder-plugin-fc-syncplicity/package.json @@ -0,0 +1,34 @@ +{ + "name": "@axway-api-builder-ext/syncplicity-connector", + "version": "1.0.0", + "description": "Use this connector to integrate with Axway Syncplicity", + "main": "index.js", + "scripts": { + "postinstall": "node scripts/postinstall.js", + "uninstall": "node scripts/uninstall.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/Axway-API-Builder-Ext/api-builder-extras.git" + }, + "keywords": [ + "amplify", + "api-builder", + "flow", + "axway", + "syncplicity" + ], + "author": "Chris Wiechmann (http://www.axway.com)", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/Axway-API-Builder-Ext/api-builder-extras/issues" + }, + "homepage": "https://github.com/Axway-API-Builder-Ext/api-builder-extras/tree/master/api-builder-plugin-fc-syncplicity", + "files": [ + "swagger", + "scripts", + "README.md", + "LICENSE" + ], + "dependencies": {} +} diff --git a/api-builder-plugin-fc-syncplicity/scripts/postinstall.js b/api-builder-plugin-fc-syncplicity/scripts/postinstall.js new file mode 100644 index 00000000..f18a2af1 --- /dev/null +++ b/api-builder-plugin-fc-syncplicity/scripts/postinstall.js @@ -0,0 +1,11 @@ +const fs = require('fs'); +const path = require('path'); +const dest = path.join(process.env.INIT_CWD, 'swagger'); +if(process.env.CI) { + console.log("Skipping postinstall during CI."); + process.exit(0); +} +console.log("Copy syncplicity.json and syncplicity.png to API-Builder swagger folder."); +fs.copyFileSync(path.join(__dirname, '..', 'swagger', 'syncplicity.json'), path.join(dest, 'syncplicity.json')); +fs.copyFileSync(path.join(__dirname, '..', 'swagger', 'syncplicity.png'), path.join(dest, 'syncplicity.png')); +console.log("Files successfully copied."); diff --git a/api-builder-plugin-fc-syncplicity/scripts/uninstall.js b/api-builder-plugin-fc-syncplicity/scripts/uninstall.js new file mode 100644 index 00000000..f31cdba0 --- /dev/null +++ b/api-builder-plugin-fc-syncplicity/scripts/uninstall.js @@ -0,0 +1,10 @@ +const path = require('path'); +const fs = require('fs'); + +if(process.env.CI) { + console.log("Skipping postinstall during CI."); + process.exit(0); +} + +fs.unlinkSync(path.join(process.env.INIT_CWD, 'swagger', 'syncplicity.json')); +fs.unlinkSync(path.join(process.env.INIT_CWD, 'swagger', 'syncplicity.png')); diff --git a/api-builder-plugin-fc-syncplicity/swagger/syncplicity.json b/api-builder-plugin-fc-syncplicity/swagger/syncplicity.json new file mode 100644 index 00000000..1c41bb05 --- /dev/null +++ b/api-builder-plugin-fc-syncplicity/swagger/syncplicity.json @@ -0,0 +1,7307 @@ +{ + "swagger": "2.0", + "info": { + "description": "Syncplicity Connector based on API-Version 1.1", + "version": "1.1", + "title": "Syncplicity", + "contact": {} + }, + "host": "api.syncplicity.com", + "basePath": "/", + "schemes": [ + "https" + ], + "tags": [ + { + "name": "Company" + }, + { + "name": "Users" + }, + { + "name": "Devices" + }, + { + "name": "Groups" + }, + { + "name": "Group Members" + }, + { + "name": "Policies" + }, + { + "name": "Folders" + }, + { + "name": "Files" + }, + { + "name": "Files/Folder Metadata" + }, + { + "name": "Folder Participation" + }, + { + "name": "Links" + } + ], + "paths": { + "/provisioning/company.svc/{COMPANY_GUID}": { + "get": { + "tags": [ + "Company" + ], + "summary": "Get company information", + "description": "Obtains the metadata about a company.
Note: if the current user is an administrator of the company, the following additional fields will be returned: Owner, AccountType, SubscriptionPlan, TrialEndDateUtc. The Owner field will populate the EmailAddress, FirstName, LastName, and AccountType of the Owner.
Required Scope: Company, Read", + "operationId": "Company GET", + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Company" + }, + "examples": { + "application/json": "{ \"Name\":\"\", \"Owner\": { \"EmailAddress\": \"\", \"FirstName\":\"\", \"LastName\":\"\", \"AccountType\":3 }, \"Storage\":600, \"Seats\":50, \"AccountType\":3, \"SeatsUsed\":48, \"StorageUsed\":150, \"TrialEndDateUtc\":\"/Date(1539291391450-0700)/\", \"SubscriptionPlan\": { \"PremiumSupport\": true, \"Type\": 2, \"RenewalDateUtc\": \"/Date(1539291391450-0700)/\", \"BillingInterval\": 1 }}" + } + }, + "300": { + "description": "(Multiple Choices) - Ambiguous data found in request" + }, + "400": { + "description": "(Bad Request) - Invalid Company ID" + }, + "401": { + "description": "(Unauthorized) - Not Authorized: The token is invalid, the header is missing, or the user is inactive" + }, + "404": { + "description": "(Not Found) - Company Not Found: The specified company does not exist" + } + } + }, + "parameters": [ + { + "name": "COMPANY_GUID", + "in": "path", + "required": true, + "type": "string", + "description": "Public Syncplicity Guid associated with the company" + } + ] + }, + "/provisioning/users.svc/": { + "post": { + "tags": [ + "Users" + ], + "summary": "Create users", + "description": "Creates one or more users in the system. The response will contain only those users that have been successfully created. Users that were not created will not appear in the response list. The user objects in response will contain only properties which were set for new users. If an error occurred during the user creation process, the API will return a non-200 HTTP status code.
Note: the number of users created cannot exceed the number of users provisioned in the account. In addition, the application must be working on behalf of an authorized administrator account.
Required Scope: Users, Create", + "operationId": "Users POST", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "modifier", + "in": "query", + "required": false, + "type": "string", + "description": "A modifier to the API's behavior. If the value is 'no_email' an email is not sent to the specified user upon successful creation. If the value is 'simulate', then this API call is a dry-run, no users are created. If the value is empty, then the API will attempt to create the specified users.", + "enum": [ + "no_email", + "simulate" + ] + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Users_Post" + }, + "example": "[ { \"EmailAddress\": \"User's Email\", \"FirstName\": \"User's First Name\", \"LastName\": \"User's Last Name\", \"AccountType\": 7, \"Roles\": [ ] }]" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Users_POST_response" + } + } + }, + "400": { + "description": "(Bad Request) - Email address was not set or was invalid
(Bad Request) - Email Domain Restricted: The domain of the email address provided is restricted from signing up
" + }, + "401": { + "description": "(Unauthorized) - Not Authorized: The token is invalid, the header is missing, or the user is inactive" + }, + "402": { + "description": "(Payment Required) - Company Seat Count Exceeded: No available seats are available in the specified company" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The user attempting to execute this request is not a company administrator
(Forbidden) - Not A Business Admin: only global administrator is able to create another admin" + } + } + }, + "put": { + "tags": [ + "Users" + ], + "summary": "Change users", + "description": "Updates one or more users in the system. The response will contain only those users that have been successfully changed.
Required Scope: Users, Update", + "operationId": "Users PUT", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Users_Put" + }, + "example": "[ { \"EmailAddress\": \"User's Email\", \"FirstName\": \"User's First Name\", \"LastName\": \"User's Last Name\", \"Password\": \"\", \"Roles\": [ ] }]" + } + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Users_Put_response" + } + } + } + } + } + }, + "/provisioning/company_users.svc/company/{COMPANY_GUID}/users": { + "get": { + "tags": [ + "Users" + ], + "summary": "Get multiple users", + "description": "Using the internal Syncplicity company ID represented as a Guid, the API can retrieve all the defined users associated with the specified Company. Guid must be associated with a company that the application has authorization to access.
Required Scope: Users, Read", + "operationId": "Users GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "lastUserGuid", + "in": "query", + "required": false, + "type": "string", + "description": "Used for paginated mode. Put here the last user guid from previous set in order to get next set of users" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "description": "Maximum number of users to be returned." + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "description": "Array of users in company", + "items": { + "$ref": "#/definitions/CompanyUsers_Get" + }, + "example": "[ { \"Id\": \"5e004d2c-3fb1-4a7c-a0e8-092493422b93\", \"EmailAddress\": \"some_mail@domain.com\", \"FirstName\": \"Some Name\", \"LastName\": \"Some Last name\", \"Roles\": [ 1, 2 ], \"Active\": true, \"Status\": 2 }]" + }, + "examples": { + "application/json": "[ { \"Id\": \"5e004d2c-3fb1-4a7c-a0e8-092493422b93\", \"EmailAddress\": \"some_mail@domain.com\", \"FirstName\": \"Some Name\", \"LastName\": \"Some Last name\", \"Roles\": [ 1, 2 ], \"Active\": true, \"Status\": 2 }]" + } + }, + "403": { + "description": "(Forbidden) - Not This Company User" + }, + "404": { + "description": "(Not Found) - Unknown Company ID
(Not Found) - Wrong Company ID" + } + } + }, + "parameters": [ + { + "name": "COMPANY_GUID", + "in": "path", + "required": true, + "type": "string", + "description": "Unique ID associated with the company.
Related Information: The Company ID (Guid) is obtained as part of the JSON response from the initial OAuth connection" + } + ] + }, + "/provisioning/user.svc/{USER_EMAIL}": { + "get": { + "tags": [ + "Users" + ], + "summary": "Get a user", + "description": "Retrieves basic information about a Syncplicity user account using the user's email.
Required Scope: Users, Read", + "operationId": "User GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "An optional parameter that extends the logic of the API. If the value is 'active_users' or empty string, then the API will return the user record if it's active. If the value is 'inactive_users', then the API will return the record only if it's not active. Finally if the value is 'all_users' then the API will return the user record regardless whether it's active or not", + "enum": [ + "active_users", + "inactive_users", + "all_users" + ] + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "$ref": "#/definitions/User_Get" + }, + "examples": { + "application/json": "{ \"Id\": \"5e004d2c-3fb1-4a7c-a0e8-09249d422b9c\", \"EmailAddress\": \"some_email@domain.com\", \"FirstName\": \"some name\", \"LastName\": \"some last name\", \"Roles\": [ 1, 2 ], \"AccountType\": 14, \"Status\": 2, \"LastLoginDateUtc\": \"/Date(1491567679760-0500)/\", \"CreatedDateUtc\": \"/Date(1462453662697-0500)/\"}" + } + }, + "400": { + "description": "(Bad Request) - Invalid Email Format: The format of the supplied email address is bad
(Bad Request) - Invalid Include Modifier Value" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The user attempting to execute this request is not a company administrator, or user with this email does not exists" + } + } + }, + "put": { + "tags": [ + "Users" + ], + "summary": "Update a user", + "description": "Updates user information.
Required Scope: Users, Update", + "operationId": "User PUT", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "modifier", + "in": "query", + "required": false, + "type": "string", + "description": "If the value contains 'no_email', then no email will be sent to the user being modified", + "enum": [ + "no_email" + ] + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/User_Put" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "$ref": "#/definitions/Users_Put_response" + }, + "examples": { + "application/json": "{ \"Id\": \"5e004d2c-3fb1-4a7c-a0e8-09249d422b9c\", \"EmailAddress\": \"some_email@domain.com\", \"FirstName\": \"some name\", \"LastName\": \"some last name\", \"Roles\": [ 1, 2 ], \"AccountType\": 14, \"Status\": 2, \"Active\": true, \"Disabled\": false}" + } + }, + "400": { + "description": "(Bad Request) - Invalid Email Format: The format of the supplied email address is bad
(Bad Request) - Invalid First Name or Invalid Last Name: field is empty or contains unsupported characters
(Bad Request) - Invalid Role Value" + }, + "401": { + "description": "(Unauthorized) - Not An Admin" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The user attempting to execute this request is not a company administrator, or user with this email does not exists
(Forbidden) - Not A Group Admin or Not A Global Admin or Not An Admin: The user attempting to execute this request is not a company administrator" + }, + "404": { + "description": "(Not Found) - Email Address Unknown: A user with the provided email address does not exist in Syncplicity" + } + } + }, + "delete": { + "tags": [ + "Users" + ], + "summary": "Delete a user", + "description": "Deletes the user from the system specified by the email address.
Required Scope: Users, Delete", + "operationId": "User DELETE", + "parameters": [], + "responses": { + "200": { + "description": "Successful operation" + }, + "403": { + "description": "(Forbidden) - Not An Admin: The user attempting to execute this request is not a company administrator
(Forbidden) - User Not An Employee
(Forbidden) - Owner of the company cannot be removed
(Forbidden) - Must always be at least one admin in a company" + }, + "404": { + "description": "(Not Found) - Email Address Unknown" + } + } + }, + "parameters": [ + { + "name": "USER_EMAIL", + "in": "path", + "required": true, + "type": "string", + "description": "Email address of the target user" + } + ] + }, + "/provisioning/machine.svc/{MACHINE_GUID}": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get a linked device", + "description": "Reads information about synchronization device by its identifier
Required Scope: Devices, Read", + "operationId": "Machine GET", + "parameters": [], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "$ref": "#/definitions/Machine_Get" + } + } + } + }, + "parameters": [ + { + "name": "MACHINE_GUID", + "in": "path", + "required": true, + "type": "string", + "description": "Guid identifier of the device" + } + ] + }, + "/provisioning/machines.svc/": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get linked devices", + "description": "Retrieve the metadata identifying a sync client related to a specified user.
Required Scope: Devices, Read", + "operationId": "Machines GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "user", + "in": "query", + "required": false, + "type": "string", + "description": "Unique ID associated with the user, which is needed to get all machines. If it is not specified, the results will be returned for the current user" + }, + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "Optional string that extends the method's logic. If not specified, only active machines will be returned. If the include parameter is set to 'inactive', inactive machines will be returned as well (meaning all machines, inactive and active, will be returned)", + "enum": [ + "inactive" + ] + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "description": "Object with the devices information", + "items": { + "$ref": "#/definitions/Machines_Get" + }, + "example": "[ { \"Id\": \"d1cb1f94-b588-4bdf-96e8-467cabb32d49\", \"Name\": \"some_machine_name\", \"SystemName\": \"Windows\", \"SystemVersion\": \"6.0.6002\", \"LastLoginDateUtc\": \"/Date(1475242925973)/\", \"ClientVersion\": \"1.0.0\" }]" + }, + "examples": { + "application/json": "[ { \"Id\": \"d1cb1f94-b588-4bdf-96e8-467cabb32d49\", \"Name\": \"some_machine_name\", \"SystemName\": \"Windows\", \"SystemVersion\": \"6.0.6002\", \"LastLoginDateUtc\": \"/Date(1475242925973)/\", \"ClientVersion\": \"1.0.0\" }]" + } + }, + "400": { + "description": "(Bad Request) - Invalid user ID: The supplied user ID is invalid" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The user attempting to execute this request is not a company administrator" + }, + "404": { + "description": "(Not Found) - User Not Found: The specified user does not exist" + } + } + }, + "post": { + "tags": [ + "Devices" + ], + "summary": "Create a linked device", + "description": "Creates device which can be used for syncpoints synchronization
Required Scope: Devices, Create", + "operationId": "Machines POST", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Machines_Post" + }, + "example": "[{\"Name\": \"API-migration\",\"SystemName\": \"Windows\",\"SystemVersion\": \"9.9.9\",\"ClientVersion\": \"9.9.9\"}]" + } + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Machines_Post_response" + } + } + } + } + } + }, + "/provisioning/groups.svc/{COMPANY_GUID}/groups": { + "get": { + "tags": [ + "Groups" + ], + "summary": "Get groups", + "description": "Retrieves all groups for a given company. Only members of the company are authorized to make this call.
Required Scope: Groups, Read", + "operationId": "Groups GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "An optional parameter that extends the logic of the API. If the value is 'members' then the API will return members of the group in addition to the group information. If the value is empty, then the API will return just the group metadata
If equals members,
Required Scope: Group Members, Read", + "enum": [ + "members" + ] + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "description": "Object with the Group information", + "items": { + "$ref": "#/definitions/Groups_Get" + }, + "example": "[ { \"Id\": \"111ac911-9f1b-e711-80d8-002590860674\", \"Name\": \"group_name\", \"Company\": { \"Id\": \"897e67cd-799c-4fe9-9bcc-77e822bce777\", \"Name\": \"company_name\" }, \"Owner\": { \"EmailAddress\": \"some_email@company_name.com\", \"FirstName\": \"firstname\", \"LastName\": \"lastname\" }, \"Members\": [ { \"EmailAddress\": \"someuser1email@domain.com\", \"FirstName\": \"\", \"LastName\": \"API\" }, { \"EmailAddress\": \"someuser2email@domain.com\", \"FirstName\": \"\", \"LastName\": \"\" } ], \"StorageQuotas\": [ { \"StorageEndpointId\": \"11111111-1111-1111-1111-111111111111\", \"StorageQuotaGb\": 2, \"StorageEndpoint\": { \"Id\": \"11111111-1111-1111-1111-111111111111\", \"Name\": \"Syncplicity Cloud Storage US\", \"Version\": 0, \"SizeGb\": 0, \"RequiresStorageAuthentication\": false, \"UserHasStoragePassword\": false, \"Company\": null, \"UserStoragePasswordStatus\": 0, \"Default\": false, \"IrmRmsOption\": 0, \"ConsumedGb\": 0 } } ], \"PolicySet\": { \"Id\": \"11192d62-1111-4f16-98c2-919405d41111\", \"Name\": \"Default Policy Set\", \"Priority\": 2, \"IsDefault\": true, \"EntitySetType\": 1 }, \"PolicySets\": [ { \"Id\": \"11192d62-1111-4f16-98c2-919405d41111\", \"Name\": \"Default Policy Set\", \"Priority\": 2, \"IsDefault\": true, \"EntitySetType\": 1 }, { \"Id\": \"2226db52-9feb-2222-9566-14884c429222\", \"Name\": \"Default Storage Set\", \"Priority\": 1, \"IsDefault\": true, \"EntitySetType\": 2 } ] }]" + }, + "examples": { + "application/json": "[ { \"Id\": \"111ac911-9f1b-e711-80d8-002590860674\", \"Name\": \"group_name\", \"Company\": { \"Id\": \"897e67cd-799c-4fe9-9bcc-77e822bce777\", \"Name\": \"company_name\" }, \"Owner\": { \"EmailAddress\": \"some_email@company_name.com\", \"FirstName\": \"firstname\", \"LastName\": \"lastname\" }, \"Members\": [ { \"EmailAddress\": \"someuser1email@domain.com\", \"FirstName\": \"\", \"LastName\": \"API\" }, { \"EmailAddress\": \"someuser2email@domain.com\", \"FirstName\": \"\", \"LastName\": \"\" } ], \"StorageQuotas\": [ { \"StorageEndpointId\": \"11111111-1111-1111-1111-111111111111\", \"StorageQuotaGb\": 2, \"StorageEndpoint\": { \"Id\": \"11111111-1111-1111-1111-111111111111\", \"Name\": \"Syncplicity Cloud Storage US\", \"Version\": 0, \"SizeGb\": 0, \"RequiresStorageAuthentication\": false, \"UserHasStoragePassword\": false, \"Company\": null, \"UserStoragePasswordStatus\": 0, \"Default\": false, \"IrmRmsOption\": 0, \"ConsumedGb\": 0 } } ], \"PolicySet\": { \"Id\": \"11192d62-1111-4f16-98c2-919405d41111\", \"Name\": \"Default Policy Set\", \"Priority\": 2, \"IsDefault\": true, \"EntitySetType\": 1 }, \"PolicySets\": [ { \"Id\": \"11192d62-1111-4f16-98c2-919405d41111\", \"Name\": \"Default Policy Set\", \"Priority\": 2, \"IsDefault\": true, \"EntitySetType\": 1 }, { \"Id\": \"2226db52-9feb-2222-9566-14884c429222\", \"Name\": \"Default Storage Set\", \"Priority\": 1, \"IsDefault\": true, \"EntitySetType\": 2 } ] }]" + } + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The current user is not a company administrator for the specified group" + }, + "404": { + "description": "(Not Found) - Unknown Company Id: The specified company does not exist" + } + } + }, + "post": { + "tags": [ + "Groups" + ], + "summary": "Create groups", + "description": "Creates one or more user groups in the company.
Note: any groups in the input values that match an already existing group (by name) will be ignored. The response will contain only those groups that have been successfully created.
Required Scope: Groups, Create", + "operationId": "Groups CREATE", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "description": "Array with groups to create", + "items": { + "$ref": "#/definitions/Groups_Post_request" + } + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "description": "Array with created groups with Ids", + "items": { + "$ref": "#/definitions/Groups_Post_response" + } + }, + "examples": { + "application/json": "[ { \"Id\": \"bf789a82-fbc1-e411-80e9-000c294594a5\", \"Name\": \"\", \"Owner\": { \"EmailAddress\": \"\" } }, { \"Id\": \"bf789a82-fbc1-e411-80e9-000c29427kf0\", \"Name\": \"\", \"Owner\": { \"EmailAddress\": \"\" } }]" + } + }, + "400": { + "description": "(Bad Request) - Group Array Must Be Set: Request body must contain ArrayOfGroup element
(Bad Request) - Unknown Group Owner Email Address: Group owner must be an existing user account
(Bad Request) - Only Company Users Allowed: Group owner must be a member of the company
(Bad Request) - Unknown Group Set ID: Unknown Id in PolicySet object
(Bad Request) - Multiple Entity Sets Of One Type Are Not Allowed" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The user attempting to execute this request is not a company administrator
(Forbidden) - Not This Company User: The user attempting to execute this request is not a member of the company
(Forbidden) - StorageVault Feature Is Disabled
(Forbidden) - Max limit on creation reached" + }, + "404": { + "description": "(Not Found) - Wrong Company Id: Company ID must be a Guid
(Not Found) - Unknown Company Id: A company with the provided ID (Guid) does not exist in Syncplicity" + } + } + }, + "parameters": [ + { + "name": "COMPANY_GUID", + "in": "path", + "required": true, + "type": "string", + "description": "Unique ID associated with the company" + } + ] + }, + "/provisioning/user_groups.svc/user/{USER_GUID}/groups": { + "get": { + "tags": [ + "Groups" + ], + "summary": "Get groups which include a user", + "description": "Retrieves the groups for which the specified user is a member.
Required Scope: Groups, Read", + "operationId": "User groups GET", + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "description": "Object with the Group information", + "items": { + "$ref": "#/definitions/UserGroup_Get" + }, + "example": "[ { \"Group\": { \"Id\": \"3e083451-baa7-e411-80e8-000c294594a5\", \"Name\": \"\", \"StorageQuotas\": [ { \"StorageEndpointId\": \"11111111-1111-1111-1111-111111111111\", \"StorageQuotaGb\": \"4\", \"StorageEndpoint\": { \"Id\": \"11111111-1111-1111-1111-111111111111\", \"Name\": \"\" } } ] } }]" + }, + "examples": { + "application/json": "[ { \"Group\": { \"Id\": \"3e083451-baa7-e411-80e8-000c294594a5\", \"Name\": \"\", \"StorageQuotas\": [ { \"StorageEndpointId\": \"11111111-1111-1111-1111-111111111111\", \"StorageQuotaGb\": \"4\", \"StorageEndpoint\": { \"Id\": \"11111111-1111-1111-1111-111111111111\", \"Name\": \"\" } } ] } }]" + } + }, + "400": { + "description": "(Bad Request) - Wrong UUID Format: User Guid is invalid" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The current user is not a company administrator for the specified group
(Forbidden) - Not This Company User: The user attempting to execute this request is not a member of the company" + }, + "404": { + "description": "(Not Found) - User Not Found: User with specified Guid does not exist" + } + } + }, + "parameters": [ + { + "name": "USER_GUID", + "in": "path", + "required": true, + "type": "string", + "description": "Target user's Guid." + } + ] + }, + "/provisioning/group.svc/{GROUP_GUID}": { + "put": { + "tags": [ + "Groups" + ], + "summary": "Update a group", + "description": "Updates the name, owner or other attributes of the user group.
Note: Only administrators can invoke this API.
Required Scope: Groups, Update", + "operationId": "Group PUT", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Group_Put" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "$ref": "#/definitions/Group_Put" + }, + "examples": { + "application/json": "{ \"Name\": \"\", \"Owner\": { \"EmailAddress\": \"\" }, \"StorageQuotas\": [ { \"StorageEndpointId\": \"\", \"StorageQuotaGb\" : \"\" } ], \"PolicySets\": [ { \"Id\": \"\" } ]}" + } + }, + "304": { + "description": "(Not Modified) - No update was made to the Syncplicity Product" + }, + "400": { + "description": "(Bad Request) - Company not updateable: If the Company property is included, this error is returned
(Bad Request) - Invalid Company Argument
(Bad Request) - Missing Company Owner Argument
(Bad Request) - Invalid Values in Input
(Bad Request) - Invalid Account Type
(Bad Request) - Member not updateable
(Bad Request) - Group Must be Set: Request body must contain Group element
(Bad Request) - Illegal HTML in name: Group name contains illegal characters
(Bad Request) - Owner email address must be set and valid: If the Owner property is set, owner email address must be set and valid
(Bad Request) - Unknown group owner email address: Group owner must have an existing user account
(Bad Request) - Only Company Users Allowed: Group owner must be a member of the group's company (Business)" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The current user is not a company administrator for the specified group
(Forbidden) - Not This Company Group: Requester must be a member of the group's company" + }, + "404": { + "description": "(Not Found) - Unknown Group ID: A group with the provided ID (Guid) does not exist in Syncplicity
(Not Found) - Wrong Group ID: Group ID must be a Guid
(Not Found) - Company Not Found" + }, + "409": { + "description": "(Conflict) - Name already exists: Group with the same name already exists in the company" + } + } + }, + "delete": { + "tags": [ + "Groups" + ], + "summary": "Delete a group", + "description": "Removes the group specified by the supplied group Guid.
Required Scope: Groups, Delete", + "operationId": "Group DELETE", + "parameters": [], + "responses": { + "200": { + "description": "Successful operation" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The user attempting to execute this request is not a company administrator
(Forbidden) - Not This Company Group: Requester must be a member of the group's company" + }, + "404": { + "description": "(Not Found) - Unknown Group ID: A group with the provided ID (Guid) does not exist in Syncplicity
(Not Found) - Wrong Group ID: Group ID must be a Guid" + } + } + }, + "parameters": [ + { + "name": "GROUP_GUID", + "in": "path", + "required": true, + "type": "string", + "description": "Unique ID associated with the group" + } + ] + }, + "/provisioning/group_members.svc/{GROUP_GUID}": { + "get": { + "tags": [ + "Group Members" + ], + "summary": "Get members of a group", + "description": "Retrieves the users associated with the specified group identified by the group unique ID (Guid).
Required Scope: Group Members, Read", + "operationId": "Group members GET", + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "description": "Array with the Group members information", + "items": { + "$ref": "#/definitions/ResourceMember" + }, + "example": "[ { \"EmailAddress\": \"User's Email\", \"FirstName\": \"User's First Name\", \"LastName\": \"User's Last Name\" }, { \"EmailAddress\": \"User 2's Email\", \"FirstName\": \"User 2's First Name\", \"LastName\": \"User 2's Last Name\" } ]" + }, + "examples": { + "application/json": "[ { \"EmailAddress\": \"User's Email\", \"FirstName\": \"User's First Name\", \"LastName\": \"User's Last Name\" }, { \"EmailAddress\": \"User 2's Email\", \"FirstName\": \"User 2's First Name\", \"LastName\": \"User 2's Last Name\" } ]" + } + }, + "403": { + "description": "(Forbidden) - Not A Business User
(Forbidden) - Not This Company Group
(Forbidden) - User Not Authorized For Action" + }, + "404": { + "description": "(Not Found) - Unknown Group ID: A group with the provided ID (Guid) does not exist in Syncplicity
(Not Found) - Wrong Group ID: Group ID must be a Guid" + } + } + }, + "post": { + "tags": [ + "Group Members" + ], + "summary": "Add members to a group", + "description": "Adds one or more members into a group. Any members in the request with a name matching an existing group member are skipped.
Required Scope: Group Members, Create", + "operationId": "Group members POST", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Group_Members_POST" + }, + "example": "[ { \"EmailAddress\": \"User's Email\" }, { \"EmailAddress\": \"User 2's Email\" }]" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "description": "Object with the Group information", + "items": { + "$ref": "#/definitions/Group_Members_POST" + }, + "example": "[ { \"EmailAddress\": \"User's Email\" }, { \"EmailAddress\": \"User 2's Email\" } ]" + }, + "examples": { + "application/json": "[ { \"EmailAddress\": \"User's Email\" }, { \"EmailAddress\": \"User 2's Email\" } ]" + } + }, + "400": { + "description": "(Bad Request) - Only Company Users Allowed: Members in the request are not part of the company
(Bad Request) - Member array must be set: Request body must contain an array of users
(Bad Request) - Unknown member email address: Member email address must be an existing user account
(Bad Request) - Member email address must be set and valid" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The user attempting to execute this request is not a company administrator
(Forbidden) - Not This Company Group: Requester must be a member of the group's company" + }, + "404": { + "description": "(Not Found) - Unknown Group ID: A group with the provided ID (Guid) does not exist in Syncplicity
(Not Found) - Wrong Group ID: Group ID must be a Guid" + } + } + }, + "parameters": [ + { + "name": "GROUP_GUID", + "in": "path", + "required": true, + "type": "string", + "description": "Unique ID associated with the group" + } + ] + }, + "/provisioning/group_member.svc/{GROUP_GUID}/member/{USER_EMAIL}": { + "get": { + "tags": [ + "Group Members" + ], + "summary": "Get member of a group", + "description": "Returns properties of exact group member
Required Scope: Group Members, Read", + "operationId": "Group member GET", + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "$ref": "#/definitions/ResourceMember" + }, + "examples": { + "application/json": "{ \"EmailAddress\": \"User's Email\", \"FirstName\": \"User's First Name\", \"LastName\": \"User's Last Name\" }" + } + }, + "400": { + "description": "(Bad Request) - Only Company Users Allowed
(Bad Request) - Member Email Address Must Be Set And Valid" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The user attempting to execute this request is not a company administrator
(Forbidden) - Not This Company Group: Requester must be a member of the group's company
(Forbidden) - Request Came From Unapproved IP Address
(Forbidden) - User Not Authorized For Action" + }, + "404": { + "description": "(Not Found) - Unknown Group ID: A group with the provided ID (Guid) does not exist in Syncplicity
(Not Found) - Wrong Group ID: Group ID must be a Guid
(Not Found) - Not This Group Member
(Not Found) - Unknown User Email" + } + } + }, + "delete": { + "tags": [ + "Group Members" + ], + "summary": "Remove member from a group", + "description": "Removes the specified user from the group. The application must be running as a user that has administrator rights to perform the delete action.
Required Scope: Group Members, Delete", + "operationId": "Group member DELETE", + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful operation" + }, + "400": { + "description": "(Bad Request) - Only Company Users Allowed
(Bad Request) - Member Email Address Must Be Set And Valid" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin: The user attempting to execute this request is not a company administrator
(Forbidden) - Not This Company Group: Requester must be a member of the group's company
(Forbidden) - Request Came From Unapproved IP Address
(Forbidden) - User Not Authorized For Action" + }, + "404": { + "description": "(Not Found) - Unknown Group ID: A group with the provided ID (Guid) does not exist in Syncplicity
(Not Found) - Wrong Group ID: Group ID must be a Guid
(Not Found) - Not This Group Member
(Not Found) - Unknown User Email" + } + } + }, + "parameters": [ + { + "name": "GROUP_GUID", + "in": "path", + "required": true, + "type": "string", + "description": "Unique ID associated with the group" + }, + { + "name": "USER_EMAIL", + "in": "path", + "required": true, + "type": "string", + "description": "Email address of the group member. The email address must be registered with Syncplicity and associated with the user group" + } + ] + }, + "/provisioning/policyset.svc/{POLICYSET_GUID}": { + "get": { + "tags": [ + "Policies" + ], + "summary": "Get a policyset by ID", + "description": "Retrieves the PolicySet definition and current settings by the identified Guid. A policyset is a grouping of various policies that should be applied concurrently. Policy sets can be applied by name and Id to various parts of the system including storage systems, user groups and allow the administrator to control the various behaviors of the Syncplicity system by the specific attributes of the policy definitions.
Required Scope: Policies, Read", + "operationId": "Policyset GET", + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "$ref": "#/definitions/PolicySet_Get" + }, + "examples": { + "application/json": " { \"Id\":\"de53a76c-0311-44d1-8a70-808eb470d5b9\", \"Name\": \"\", \"IsDefault\": true, \"Priority\": 14, \"Policy\": { \"ClientAutoUpdatePolicy\": 3, \"ClientPreconfiguredPolicy\": 2, \"SharedFolderPolicy\": 3, \"IncludeOwnerInFolderNamePolicy\": 1, \"RemoteWipeSyncpointPolicy\": 2, \"MobileSyncPolicy\": 1, \"MobileUnencryptedSyncPolicy\": 2, \"MobileSyncLimitsPolicy\": 1, \"MobileDataSyncLimit\": { \"TransferLimit\": 1024, \"BillingCycleResetDay\": 1 }, \"ShareLinkPasswordProtectedPolicy\": 2, \"ShareLinkPasswordComplexity\": 1, \"ShareLinkPasswordLength\": 6, \"ShareLinkExpirationPolicy\": 1, \"ShareLinkExpireInDays\": 10, \"ShareLinkPolicy\": 4, \"DesktopShareLinkFlowPolicy\": 2, \"ReportExportOutputFolderPolicy\": 1, \"AdminIpRestrictionPolicy\": 1, \"AdminIpRestriction\": { \"AllowedIPs\": \"\", \"Message\": \"You are attempting to perform an administrator action from an IP address that your company has not approved.\" }, \"AdminPasswordComplexityPolicy\": 2, \"AdminPasswordComplexity\": { \"AdminPasswordComplexityOptions\": 55, \"AdminPasswordComplexityMinimumLength\": 10, \"AdminPasswordComplexityMaximumLength\": 15 }, \"RestrictMobileAccessPolicy\": 1, \"RestrictWebsiteAccessPolicy\": 1, \"RssNewsFeedPolicy\": 2, \"BranchingPolicy\": 2, \"RemoteWipeUsersPolicy\": 1, \"RemoteWipeEndpointPolicy\": 1, \"EnforceClientMemberActiveDirectoryPolicy\": 1, \"EnforceClientMemberActiveDirectoryPolicyDomains\": \"\", \"IrmPolicy\": { \"SecureSendPolicy\": 1 }, \"GeoRestrictionPolicy\": 1, \"GeoRestrictionCountryList\": [], \"RolePermissionsList\": [], \"DefaultStorageEndpointId\": \"11111111-1111-1111-1111-111111111111\", \"PasscodeEnforcementPolicy\": 1, \"PasscodeFailurePolicy\": 1, \"PasscodeFailures\": { \"AllowablePasscodeFailures\": 10 }, \"OpenInPolicy\": 1, \"SharedFolderResharingPolicy\": 3, \"GeolocationPrivacyPolicy\": 2, \"SharePointConnectorPolicy\": 2, \"SharePointConnectors\": [ { \"Id\": \"\", \"Name\":\"\", \"Url\": \"\", \"Enabled\": true, \"Bookmarks\": { \"Id\":\"\", \"Name\": \"\", \"Url\": \"\", \"Enabled\": true } } ], \"NetworkShareConnectorPolicy\": 2, \"NetworkShareConnectors\": [ { \"Id\": \"\", \"Name\": \"\", \"Url\": \"\", \"Enabled\": true, \"Bookmarks\": { \"Id\":\"\", \"Name\": \"\", \"Url\": \"\", \"Enabled\": true } } ], \"HomeDirectoryPolicy\": { \"Name\": \"\", \"ConnectorId\": \"\", \"ConnectorUrl\": \"\" }, \"FileExclusionPolicy\": 2, \"FileExclusions\": [ { \"Extension\": \"bak\" }, { \"Extension\": \"tmp\" } ], \"OutlookClientAutoUpdatePolicy\": 3, \"OutlookFileExclusionPolicy\": 2, \"OutlookFileExclusionValues\": [ { \"Extension\": \"bak\" }, { \"Extension\": \"ost\" }, { \"Extension\": \"tmp\" } ], \"OutlookFileSizePolicy\": 1, \"OutlookFileSizeValue\": 10, \"OutlookIntegrationPolicy\": 1, \"OutlookSharedLinkAccessPolicy\": 3, \"OutlookSharedLinkExpirationPolicy\": 1, \"OutlookSharedLinkExpirationDays\": 10, \"OutlookSharedLinkPasswordProtectionPolicy\": 1, \"OutlookShareLinkPasswordComplexity\": 2, \"OutlookShareLinkPasswordLength\": 8, \"BandwidthRestrictionPolicy\": 1, \"BandwidthRestrictionUploadPolicy\": 1, \"BandwidthRestrictionUploadSize\": \"999999\", \"BandwidthRestrictionDownloadPolicy\": 1, \"BandwidthRestrictionDownloadSize\": \"0\", \"SilentOnboardPolicy\": 1, \"SilentOnboardDisplayMachineScreenPolicy\": 2, \"SilentOnboardDisplayCustomFolderScreenPolicy\": 2, \"SilentOnboardDisplayTutorialScreensPolicy\": 2, \"SilentOnboardDefaultLocationPolicy\": 1, \"SilentOnboardWinDefaultLocationPolicy\": 1, \"SilentOnboardWinDefaultLocationValue\": \"\", \"SilentOnboardMacDefaultLocationPolicy\": 1, \"SilentOnboardMacDefaultLocationValue\": \"\" }, \"Groups\": [ { \"Id\": \"\", \"Name\": \"\" }, { \"Id\": \"\", \"Name\": \"\" } ], \"EntitySetType\": 1 }" + } + }, + "400": { + "description": "(Bad Request) - Not A Business Admin" + }, + "403": { + "description": "(Forbidden) - Request Came From An Unapproved IP Address
(Forbidden) - Not This Company User" + }, + "404": { + "description": "(Not Found) - Wrong PolicySet ID
(Not Found) - Unknown PolicySet" + } + } + }, + "parameters": [ + { + "name": "POLICYSET_GUID", + "in": "path", + "required": true, + "type": "string", + "description": "Guid associated with PolicySet" + } + ] + }, + "/provisioning/policyset.svc/": { + "put": { + "tags": [ + "Policies" + ], + "summary": "Update a policyset", + "description": "Updates an existing PolicySet definition. A policyset is a grouping of various policies that should be applied concurrently. Policy sets can be applied by name and Id to various parts of the system including storage systems, user groups and allow the administrator to control the various behaviors of the Syncplicity system by the specific attributes of the policy definitions.
Note: only one PolicySet can be updated per request.
Required Scope: Policies, Update", + "operationId": "Policyset PUT", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PolicySet_Put_Request" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "$ref": "#/definitions/PolicySet_Get" + }, + "examples": { + "application/json": "{ \"Id\":\"de53a76c-0311-44d1-8a70-808eb470d5b9\", \"Name\":\"\", \"IsDefault\":true, \"Priority\":14, \"Policy\":{ \"ClientAutoUpdatePolicy\":3, \"ClientPreconfiguredPolicy\":2, \"SharedFolderPolicy\":3, \"IncludeOwnerInFolderNamePolicy\":1, \"RemoteWipeSyncpointPolicy\":2, \"MobileSyncPolicy\":1, \"MobileUnencryptedSyncPolicy\":2, \"MobileSyncLimitsPolicy\":1, \"MobileDataSyncLimit\":{ \"TransferLimit\":1024, \"BillingCycleResetDay\":1 }, \"ShareLinkPasswordProtectedPolicy\":2, \"ShareLinkPasswordComplexity\":1, \"ShareLinkPasswordLength\":6, \"ShareLinkExpirationPolicy\":1, \"ShareLinkExpireInDays\":10, \"ShareLinkPolicy\":4, \"DesktopShareLinkFlowPolicy\":2, \"ReportExportOutputFolderPolicy\":1, \"AdminIpRestrictionPolicy\":1, \"AdminIpRestriction\":{ \"AllowedIPs\":\"\", \"Message\": \"You are attempting to perform an administrator action from an IP address that your company has not approved.\" }, \"AdminPasswordComplexityPolicy\":2, \"AdminPasswordComplexity\":{ \"AdminPasswordComplexityOptions\":55, \"AdminPasswordComplexityMinimumLength\":10, \"AdminPasswordComplexityMaximumLength\":15 }, \"RestrictMobileAccessPolicy\":1, \"RestrictWebsiteAccessPolicy\":1, \"RssNewsFeedPolicy\":2, \"BranchingPolicy\":2, \"RemoteWipeUsersPolicy\":1, \"RemoteWipeEndpointPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicyDomains\":\"\", \"IrmPolicy\":{ \"SecureSendPolicy\":1 }, \"GeoRestrictionPolicy\":1, \"GeoRestrictionCountryList\": [], \"RolePermissionsList\": [], \"DefaultStorageEndpointId\":\"11111111-1111-1111-1111-111111111111\", \"PasscodeEnforcementPolicy\":1, \"PasscodeFailurePolicy\":1, \"PasscodeFailures\":{ \"AllowablePasscodeFailures\":10 }, \"OpenInPolicy\":1, \"SharedFolderResharingPolicy\":3, \"GeolocationPrivacyPolicy\":2, \"SharePointConnectorPolicy\":2, \"SharePointConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"NetworkShareConnectorPolicy\":2, \"NetworkShareConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"HomeDirectoryPolicy\":{ \"Name\":\"\", \"ConnectorId\":\"\", \"ConnectorUrl\":\"\" }, \"FileExclusionPolicy\":2, \"FileExclusions\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"tmp\" } ], \"OutlookClientAutoUpdatePolicy\":3, \"OutlookFileExclusionPolicy\":2, \"OutlookFileExclusionValues\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"ost\" }, { \"Extension\":\"tmp\" } ], \"OutlookFileSizePolicy\":1, \"OutlookFileSizeValue\":10, \"OutlookIntegrationPolicy\":1, \"OutlookSharedLinkAccessPolicy\":3, \"OutlookSharedLinkExpirationPolicy\":1, \"OutlookSharedLinkExpirationDays\":10, \"OutlookSharedLinkPasswordProtectionPolicy\":1, \"OutlookShareLinkPasswordComplexity\":2, \"OutlookShareLinkPasswordLength\":8, \"BandwidthRestrictionPolicy\":1, \"BandwidthRestrictionUploadPolicy\":1, \"BandwidthRestrictionUploadSize\":\"999999\", \"BandwidthRestrictionDownloadPolicy\":1, \"BandwidthRestrictionDownloadSize\":\"0\", \"SilentOnboardPolicy\":1, \"SilentOnboardDisplayMachineScreenPolicy\":2, \"SilentOnboardDisplayCustomFolderScreenPolicy\":2, \"SilentOnboardDisplayTutorialScreensPolicy\":2, \"SilentOnboardDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationValue\":\"\", \"SilentOnboardMacDefaultLocationPolicy\":1, \"SilentOnboardMacDefaultLocationValue\":\"\" }, \"Groups\":[ { \"Id\":\"\", \"Name\":\"\" }, { \"Id\":\"\", \"Name\":\"\" } ], \"EntitySetType\":1}" + } + }, + "400": { + "description": "(Bad Request) - Not A Business Admin
(Bad Request) - Invalid EntitySetType: Type should be different from zero
(Bad Request) - Invalid Name: Name of policy set must be not empty" + }, + "403": { + "description": "(Forbidden) - Request Came From An Unapproved IP Address
(Forbidden) - Not This Company User
" + }, + "404": { + "description": "(Not Found) - Unknown Policy Set: Policyset with supplied Id is not found
(Not Found) - Unknown Group Id: Group with supplied Id is not found" + }, + "409": { + "description": "(Conflict) - Name Already Exists
(Conflict) - Home Directory Display Name Already Exists" + } + } + }, + "delete": { + "tags": [ + "Policies" + ], + "summary": "Delete a policyset", + "description": "Deletes an existing policyset defined in request body
Required Scope: Policies, Delete", + "operationId": "Policyset DELETE", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PolicySet_Delete", + "example": "{ \"Id\": \"abc1234d-6ea3-4058-a25b-fbd9726f25ae\" }" + } + } + ], + "responses": { + "200": { + "description": "Status 200" + } + } + } + }, + "/provisioning/policysets.svc/": { + "get": { + "tags": [ + "Policies" + ], + "summary": "Get policysets", + "description": "Retrieves the PolicySet definition and current settings associated with the given user and PolicySet type. A policyset is a grouping of various policies that should be applied concurrently. Policy sets can be applied by name and Id to various parts of the system including storage systems, user groups and allow the administrator to control the various behaviors of the Syncplicity system by the specific attributes of the policy definitions.
Required Scope: Policies, Read", + "operationId": "Policysets GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "user", + "in": "query", + "required": false, + "type": "string", + "description": "Guid identifier of the user. Controls only Groups property population - only those groups that user belongs to are returned for each set." + }, + { + "name": "entity_type", + "in": "query", + "required": false, + "type": "string", + "description": "If specified, only policysets of that entity type will be returned. Otherwise, all types of policysets will be returned.", + "enum": [ + "PolicySet", + "StorageSet", + "HomeDirectorySet" + ] + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PolicySet_Get" + } + }, + "examples": { + "application/json": "{ \"Id\":\"de53a76c-0311-44d1-8a70-808eb470d5b9\", \"Name\":\"\", \"IsDefault\":true, \"Priority\":14, \"Policy\":{ \"ClientAutoUpdatePolicy\":3, \"ClientPreconfiguredPolicy\":2, \"SharedFolderPolicy\":3, \"IncludeOwnerInFolderNamePolicy\":1, \"RemoteWipeSyncpointPolicy\":2, \"MobileSyncPolicy\":1, \"MobileUnencryptedSyncPolicy\":2, \"MobileSyncLimitsPolicy\":1, \"MobileDataSyncLimit\":{ \"TransferLimit\":1024, \"BillingCycleResetDay\":1 }, \"ShareLinkPasswordProtectedPolicy\":2, \"ShareLinkPasswordComplexity\":1, \"ShareLinkPasswordLength\":6, \"ShareLinkExpirationPolicy\":1, \"ShareLinkExpireInDays\":10, \"ShareLinkPolicy\":4, \"DesktopShareLinkFlowPolicy\":2, \"ReportExportOutputFolderPolicy\":1, \"AdminIpRestrictionPolicy\":1, \"AdminIpRestriction\":{ \"AllowedIPs\":\"\", \"Message\":\"You are attempting to perform an administrator action from an IP address that your company has not approved.\" }, \"AdminPasswordComplexityPolicy\":2, \"AdminPasswordComplexity\":{ \"AdminPasswordComplexityOptions\":55, \"AdminPasswordComplexityMinimumLength\":10, \"AdminPasswordComplexityMaximumLength\":15 }, \"RestrictMobileAccessPolicy\":1, \"RestrictWebsiteAccessPolicy\":1, \"RssNewsFeedPolicy\":2, \"BranchingPolicy\":2, \"RemoteWipeUsersPolicy\":1, \"RemoteWipeEndpointPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicyDomains\":\"\", \"IrmPolicy\":{ \"SecureSendPolicy\":1 }, \"GeoRestrictionPolicy\":1, \"GeoRestrictionCountryList\":[], \"RolePermissionsList\": [], \"DefaultStorageEndpointId\":\"11111111-1111-1111-1111-111111111111\", \"PasscodeEnforcementPolicy\":1, \"PasscodeFailurePolicy\":1, \"PasscodeFailures\":{ \"AllowablePasscodeFailures\":10 }, \"OpenInPolicy\":1, \"SharedFolderResharingPolicy\":3, \"GeolocationPrivacyPolicy\":2, \"SharePointConnectorPolicy\":2, \"SharePointConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"NetworkShareConnectorPolicy\":2, \"NetworkShareConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"HomeDirectoryPolicy\":{ \"Name\":\"\", \"ConnectorId\":\"\", \"ConnectorUrl\":\"\" }, \"FileExclusionPolicy\":2, \"FileExclusions\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"tmp\" } ], \"OutlookClientAutoUpdatePolicy\":3, \"OutlookFileExclusionPolicy\":2, \"OutlookFileExclusionValues\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"ost\" }, { \"Extension\":\"tmp\" } ], \"OutlookFileSizePolicy\":1, \"OutlookFileSizeValue\":10, \"OutlookIntegrationPolicy\":1, \"OutlookSharedLinkAccessPolicy\":3, \"OutlookSharedLinkExpirationPolicy\":1, \"OutlookSharedLinkExpirationDays\":10, \"OutlookSharedLinkPasswordProtectionPolicy\":1, \"OutlookShareLinkPasswordComplexity\":2, \"OutlookShareLinkPasswordLength\":8, \"BandwidthRestrictionPolicy\":1, \"BandwidthRestrictionUploadPolicy\":1, \"BandwidthRestrictionUploadSize\":\"999999\", \"BandwidthRestrictionDownloadPolicy\":1, \"BandwidthRestrictionDownloadSize\":\"0\", \"SilentOnboardPolicy\":1, \"SilentOnboardDisplayMachineScreenPolicy\":2, \"SilentOnboardDisplayCustomFolderScreenPolicy\":2, \"SilentOnboardDisplayTutorialScreensPolicy\":2, \"SilentOnboardDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationValue\":\"\", \"SilentOnboardMacDefaultLocationPolicy\":1, \"SilentOnboardMacDefaultLocationValue\":\"\" }, \"Groups\":[ { \"Id\":\"\", \"Name\":\"\" }, { \"Id\":\"\", \"Name\":\"\" } ], \"EntitySetType\":1}" + } + }, + "400": { + "description": "(Bad Request) - Not A Business Admin
(Bad Request) - Invalid User Id: The supplied userId is invalid" + }, + "403": { + "description": "(Forbidden) - Request Came From An Unapproved IP Address
(Forbidden) - Not A Business Admin: The current user is not an administrator and the \"user\" query parameter is specified
(Forbidden) - Not This Company User: \"user\" query parameter is specified but the user is not from current company" + }, + "404": { + "description": "(Not Found) - The \"user\" query parameter is specified, but the user does not exist" + } + } + }, + "post": { + "tags": [ + "Policies" + ], + "summary": "Create policysets", + "description": "Creates PolicySets. A policyset is a grouping of various policies that should be applied concurrently. Policy sets can be applied by name and Id to various parts of the system including storage systems, user groups and allow the administrator to control the various behaviors of the Syncplicity system by the specific attributes of the policy definitions.
Required Scope: Policies, Create", + "operationId": "Policysets POST", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PolicySets_Post_Request" + } + }, + "x-examples": { + "application/json": "[ { \"Name\":\"\", \"IsDefault\":true, \"Priority\":\"\", \"Policy\":{ \"ClientAutoUpdatePolicy\":3, \"ClientPreconfiguredPolicy\":2, \"SharedFolderPolicy\":3, \"IncludeOwnerInFolderNamePolicy\":1, \"RemoteWipeSyncpointPolicy\":2, \"MobileSyncPolicy\":1, \"MobileUnencryptedSyncPolicy\":2, \"MobileSyncLimitsPolicy\":1, \"MobileDataSyncLimit\":{ \"TransferLimit\":1024, \"BillingCycleResetDay\":1 }, \"ShareLinkPasswordProtectedPolicy\":2, \"ShareLinkPasswordComplexity\":1, \"ShareLinkPasswordLength\":6, \"ShareLinkExpirationPolicy\":1, \"ShareLinkExpireInDays\":10, \"ShareLinkPolicy\":4, \"DesktopShareLinkFlowPolicy\":2, \"ReportExportOutputFolderPolicy\":1, \"AdminIpRestrictionPolicy\":1, \"AdminIpRestriction\":{ \"AllowedIPs\":\"\", \"Message\":\"You are attempting to perform an administrator action from an IP address that your company has not approved.\" }, \"AdminPasswordComplexityPolicy\":2, \"AdminPasswordComplexity\":{ \"AdminPasswordComplexityOptions\":55, \"AdminPasswordComplexityMinimumLength\":10, \"AdminPasswordComplexityMaximumLength\":15 }, \"RestrictMobileAccessPolicy\":1, \"RestrictWebsiteAccessPolicy\":1, \"RssNewsFeedPolicy\":2, \"BranchingPolicy\":2, \"RemoteWipeUsersPolicy\":1, \"RemoteWipeEndpointPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicyDomains\":\"\", \"IrmPolicy\":{ \"SecureSendPolicy\":1 }, \"GeoRestrictionPolicy\":1, \"GeoRestrictionCountryList\": [], \"RolePermissionsList\": [], \"DefaultStorageEndpointId\":\"11111111-1111-1111-1111-111111111111\", \"PasscodeEnforcementPolicy\":1, \"PasscodeFailurePolicy\":1, \"PasscodeFailures\":{ \"AllowablePasscodeFailures\":10 }, \"OpenInPolicy\":1, \"SharedFolderResharingPolicy\":3, \"GeolocationPrivacyPolicy\":2, \"SharePointConnectorPolicy\":2, \"SharePointConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"NetworkShareConnectorPolicy\":2, \"NetworkShareConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"HomeDirectoryPolicy\":{ \"Name\":\"\", \"ConnectorId\":\"\", \"ConnectorUrl\":\"\" }, \"FileExclusionPolicy\":2, \"FileExclusions\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"tmp\" } ], \"OutlookClientAutoUpdatePolicy\":3, \"OutlookFileExclusionPolicy\":2, \"OutlookFileExclusionValues\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"ost\" }, { \"Extension\":\"tmp\" } ], \"OutlookFileSizePolicy\":1, \"OutlookFileSizeValue\":10, \"OutlookIntegrationPolicy\":1, \"OutlookSharedLinkAccessPolicy\":3, \"OutlookSharedLinkExpirationPolicy\":1, \"OutlookSharedLinkExpirationDays\":10, \"OutlookSharedLinkPasswordProtectionPolicy\":1, \"OutlookShareLinkPasswordComplexity\":2, \"OutlookShareLinkPasswordLength\":8, \"BandwidthRestrictionPolicy\":1, \"BandwidthRestrictionUploadPolicy\":1, \"BandwidthRestrictionUploadSize\":\"999999\", \"BandwidthRestrictionDownloadPolicy\":1, \"BandwidthRestrictionDownloadSize\":\"0\", \"SilentOnboardPolicy\":1, \"SilentOnboardDisplayMachineScreenPolicy\":2, \"SilentOnboardDisplayCustomFolderScreenPolicy\":2, \"SilentOnboardDisplayTutorialScreensPolicy\":2, \"SilentOnboardDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationValue\":\"\", \"SilentOnboardMacDefaultLocationPolicy\":1, \"SilentOnboardMacDefaultLocationValue\":\"\" }, \"CopiedFromSetId\":\"\", \"Groups\":[ \"\", \"\" ], \"EntitySetType\":1 }]" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PolicySets_Post_Response" + }, + "example": "[{ \"Id\":\"de53a76c-0311-44d1-8a70-808eb470d5b9\", \"Name\":\"\", \"IsDefault\":true, \"Priority\":14, \"Policy\":{ \"ClientAutoUpdatePolicy\":3, \"ClientPreconfiguredPolicy\":2, \"SharedFolderPolicy\":3, \"IncludeOwnerInFolderNamePolicy\":1, \"RemoteWipeSyncpointPolicy\":2, \"MobileSyncPolicy\":1, \"MobileUnencryptedSyncPolicy\":2, \"MobileSyncLimitsPolicy\":1, \"MobileDataSyncLimit\":{ \"TransferLimit\":1024, \"BillingCycleResetDay\":1 }, \"ShareLinkPasswordProtectedPolicy\":2, \"ShareLinkPasswordComplexity\":1, \"ShareLinkPasswordLength\":6, \"ShareLinkExpirationPolicy\":1, \"ShareLinkExpireInDays\":10, \"ShareLinkPolicy\":4, \"DesktopShareLinkFlowPolicy\":2, \"ReportExportOutputFolderPolicy\":1, \"AdminIpRestrictionPolicy\":1, \"AdminIpRestriction\":{ \"AllowedIPs\":\"\", \"Message\":\"You are attempting to perform an administrator action from an IP address that your company has not approved.\" }, \"AdminPasswordComplexityPolicy\":2, \"AdminPasswordComplexity\":{ \"AdminPasswordComplexityOptions\":55, \"AdminPasswordComplexityMinimumLength\":10, \"AdminPasswordComplexityMaximumLength\":15 }, \"RestrictMobileAccessPolicy\":1, \"RestrictWebsiteAccessPolicy\":1, \"RssNewsFeedPolicy\":2, \"BranchingPolicy\":2, \"RemoteWipeUsersPolicy\":1, \"RemoteWipeEndpointPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicyDomains\":\"\", \"IrmPolicy\":{ \"SecureSendPolicy\":1 }, \"GeoRestrictionPolicy\":1, \"GeoRestrictionCountryList\":[], \"RolePermissionsList\": [], \"DefaultStorageEndpointId\":\"11111111-1111-1111-1111-111111111111\", \"PasscodeEnforcementPolicy\":1, \"PasscodeFailurePolicy\":1, \"PasscodeFailures\":{ \"AllowablePasscodeFailures\":10 }, \"OpenInPolicy\":1, \"SharedFolderResharingPolicy\":3, \"GeolocationPrivacyPolicy\":2, \"SharePointConnectorPolicy\":2, \"SharePointConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"NetworkShareConnectorPolicy\":2, \"NetworkShareConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"HomeDirectoryPolicy\":{ \"Name\":\"\", \"ConnectorId\":\"\", \"ConnectorUrl\":\"\" }, \"FileExclusionPolicy\":2, \"FileExclusions\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"tmp\" } ], \"OutlookClientAutoUpdatePolicy\":3, \"OutlookFileExclusionPolicy\":2, \"OutlookFileExclusionValues\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"ost\" }, { \"Extension\":\"tmp\" } ], \"OutlookFileSizePolicy\":1, \"OutlookFileSizeValue\":10, \"OutlookIntegrationPolicy\":1, \"OutlookSharedLinkAccessPolicy\":3, \"OutlookSharedLinkExpirationPolicy\":1, \"OutlookSharedLinkExpirationDays\":10, \"OutlookSharedLinkPasswordProtectionPolicy\":1, \"OutlookShareLinkPasswordComplexity\":2, \"OutlookShareLinkPasswordLength\":8, \"BandwidthRestrictionPolicy\":1, \"BandwidthRestrictionUploadPolicy\":1, \"BandwidthRestrictionUploadSize\":\"999999\", \"BandwidthRestrictionDownloadPolicy\":1, \"BandwidthRestrictionDownloadSize\":\"0\", \"SilentOnboardPolicy\":1, \"SilentOnboardDisplayMachineScreenPolicy\":2, \"SilentOnboardDisplayCustomFolderScreenPolicy\":2, \"SilentOnboardDisplayTutorialScreensPolicy\":2, \"SilentOnboardDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationValue\":\"\", \"SilentOnboardMacDefaultLocationPolicy\":1, \"SilentOnboardMacDefaultLocationValue\":\"\" }, \"Groups\":[ { \"Id\":\"\", \"Name\":\"\" }, { \"Id\":\"\", \"Name\":\"\" } ], \"EntitySetType\":1}]" + }, + "examples": { + "application/json": "[{ \"Id\":\"de53a76c-0311-44d1-8a70-808eb470d5b9\", \"Name\":\"\", \"IsDefault\":true, \"Priority\":14, \"Policy\":{ \"ClientAutoUpdatePolicy\":3, \"ClientPreconfiguredPolicy\":2, \"SharedFolderPolicy\":3, \"IncludeOwnerInFolderNamePolicy\":1, \"RemoteWipeSyncpointPolicy\":2, \"MobileSyncPolicy\":1, \"MobileUnencryptedSyncPolicy\":2, \"MobileSyncLimitsPolicy\":1, \"MobileDataSyncLimit\":{ \"TransferLimit\":1024, \"BillingCycleResetDay\":1 }, \"ShareLinkPasswordProtectedPolicy\":2, \"ShareLinkPasswordComplexity\":1, \"ShareLinkPasswordLength\":6, \"ShareLinkExpirationPolicy\":1, \"ShareLinkExpireInDays\":10, \"ShareLinkPolicy\":4, \"DesktopShareLinkFlowPolicy\":2, \"ReportExportOutputFolderPolicy\":1, \"AdminIpRestrictionPolicy\":1, \"AdminIpRestriction\":{ \"AllowedIPs\":\"\", \"Message\":\"You are attempting to perform an administrator action from an IP address that your company has not approved.\" }, \"AdminPasswordComplexityPolicy\":2, \"AdminPasswordComplexity\":{ \"AdminPasswordComplexityOptions\":55, \"AdminPasswordComplexityMinimumLength\":10, \"AdminPasswordComplexityMaximumLength\":15 }, \"RestrictMobileAccessPolicy\":1, \"RestrictWebsiteAccessPolicy\":1, \"RssNewsFeedPolicy\":2, \"BranchingPolicy\":2, \"RemoteWipeUsersPolicy\":1, \"RemoteWipeEndpointPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicyDomains\":\"\", \"IrmPolicy\":{ \"SecureSendPolicy\":1 }, \"GeoRestrictionPolicy\":1, \"GeoRestrictionCountryList\":[], \"RolePermissionsList\": [], \"DefaultStorageEndpointId\":\"11111111-1111-1111-1111-111111111111\", \"PasscodeEnforcementPolicy\":1, \"PasscodeFailurePolicy\":1, \"PasscodeFailures\":{ \"AllowablePasscodeFailures\":10 }, \"OpenInPolicy\":1, \"SharedFolderResharingPolicy\":3, \"GeolocationPrivacyPolicy\":2, \"SharePointConnectorPolicy\":2, \"SharePointConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"NetworkShareConnectorPolicy\":2, \"NetworkShareConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"HomeDirectoryPolicy\":{ \"Name\":\"\", \"ConnectorId\":\"\", \"ConnectorUrl\":\"\" }, \"FileExclusionPolicy\":2, \"FileExclusions\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"tmp\" } ], \"OutlookClientAutoUpdatePolicy\":3, \"OutlookFileExclusionPolicy\":2, \"OutlookFileExclusionValues\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"ost\" }, { \"Extension\":\"tmp\" } ], \"OutlookFileSizePolicy\":1, \"OutlookFileSizeValue\":10, \"OutlookIntegrationPolicy\":1, \"OutlookSharedLinkAccessPolicy\":3, \"OutlookSharedLinkExpirationPolicy\":1, \"OutlookSharedLinkExpirationDays\":10, \"OutlookSharedLinkPasswordProtectionPolicy\":1, \"OutlookShareLinkPasswordComplexity\":2, \"OutlookShareLinkPasswordLength\":8, \"BandwidthRestrictionPolicy\":1, \"BandwidthRestrictionUploadPolicy\":1, \"BandwidthRestrictionUploadSize\":\"999999\", \"BandwidthRestrictionDownloadPolicy\":1, \"BandwidthRestrictionDownloadSize\":\"0\", \"SilentOnboardPolicy\":1, \"SilentOnboardDisplayMachineScreenPolicy\":2, \"SilentOnboardDisplayCustomFolderScreenPolicy\":2, \"SilentOnboardDisplayTutorialScreensPolicy\":2, \"SilentOnboardDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationValue\":\"\", \"SilentOnboardMacDefaultLocationPolicy\":1, \"SilentOnboardMacDefaultLocationValue\":\"\" }, \"Groups\":[ { \"Id\":\"\", \"Name\":\"\" }, { \"Id\":\"\", \"Name\":\"\" } ], \"EntitySetType\":1}]" + } + }, + "400": { + "description": "(Bad Request) - Not A Business Admin
(Bad Request) - Invalid EntitySetType: Type should be different from zero
(Bad Request) - Invalid Name: Name of policy set must be not empty
(Bad Request) - Invalid Policy Set: Policy object must be set" + }, + "403": { + "description": "(Forbidden) - Request Came From An Unapproved IP Address" + } + } + }, + "delete": { + "tags": [ + "Policies" + ], + "summary": "Delete multiple policysets", + "description": "Deletes all existing PolicySets, passed in body. A policy set is a grouping of various policies that should be applied concurrently. Policy sets can be applied by name and Id to various parts of the system including storage systems, user groups and allow the administrator to control the various behaviors of the Syncplicity system by the specific attributes of the policy definitions.
Required Scope: Policies, Delete", + "operationId": "Policysets DELETE", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PolicySet_Delete" + }, + "example": "[{ \"Id\": \"abcdef01-2345-4058-a25b-fbd9726f25ae\" },{ \"Id\": \"cdedef01-5432-4058-a25b-fbd9726f25ae\" }]" + }, + "x-examples": { + "application/json": "[ { \"Name\":\"\", \"IsDefault\":true, \"Priority\":\"\", \"Policy\":{ \"ClientAutoUpdatePolicy\":3, \"ClientPreconfiguredPolicy\":2, \"SharedFolderPolicy\":3, \"IncludeOwnerInFolderNamePolicy\":1, \"RemoteWipeSyncpointPolicy\":2, \"MobileSyncPolicy\":1, \"MobileUnencryptedSyncPolicy\":2, \"MobileSyncLimitsPolicy\":1, \"MobileDataSyncLimit\":{ \"TransferLimit\":1024, \"BillingCycleResetDay\":1 }, \"ShareLinkPasswordProtectedPolicy\":2, \"ShareLinkPasswordComplexity\":1, \"ShareLinkPasswordLength\":6, \"ShareLinkExpirationPolicy\":1, \"ShareLinkExpireInDays\":10, \"ShareLinkPolicy\":4, \"DesktopShareLinkFlowPolicy\":2, \"ReportExportOutputFolderPolicy\":1, \"AdminIpRestrictionPolicy\":1, \"AdminIpRestriction\":{ \"AllowedIPs\":\"\", \"Message\":\"You are attempting to perform an administrator action from an IP address that your company has not approved.\" }, \"AdminPasswordComplexityPolicy\":2, \"AdminPasswordComplexity\":{ \"AdminPasswordComplexityOptions\":55, \"AdminPasswordComplexityMinimumLength\":10, \"AdminPasswordComplexityMaximumLength\":15 }, \"RestrictMobileAccessPolicy\":1, \"RestrictWebsiteAccessPolicy\":1, \"RssNewsFeedPolicy\":2, \"BranchingPolicy\":2, \"RemoteWipeUsersPolicy\":1, \"RemoteWipeEndpointPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicy\":1, \"EnforceClientMemberActiveDirectoryPolicyDomains\":\"\", \"IrmPolicy\":{ \"SecureSendPolicy\":1 }, \"GeoRestrictionPolicy\":1, \"GeoRestrictionCountryList\": [], \"RolePermissionsList\": [], \"DefaultStorageEndpointId\":\"11111111-1111-1111-1111-111111111111\", \"PasscodeEnforcementPolicy\":1, \"PasscodeFailurePolicy\":1, \"PasscodeFailures\":{ \"AllowablePasscodeFailures\":10 }, \"OpenInPolicy\":1, \"SharedFolderResharingPolicy\":3, \"GeolocationPrivacyPolicy\":2, \"SharePointConnectorPolicy\":2, \"SharePointConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"NetworkShareConnectorPolicy\":2, \"NetworkShareConnectors\":[ { \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true, \"Bookmarks\":{ \"Id\":\"\", \"Name\":\"\", \"Url\":\"\", \"Enabled\":true } } ], \"HomeDirectoryPolicy\":{ \"Name\":\"\", \"ConnectorId\":\"\", \"ConnectorUrl\":\"\" }, \"FileExclusionPolicy\":2, \"FileExclusions\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"tmp\" } ], \"OutlookClientAutoUpdatePolicy\":3, \"OutlookFileExclusionPolicy\":2, \"OutlookFileExclusionValues\":[ { \"Extension\":\"bak\" }, { \"Extension\":\"ost\" }, { \"Extension\":\"tmp\" } ], \"OutlookFileSizePolicy\":1, \"OutlookFileSizeValue\":10, \"OutlookIntegrationPolicy\":1, \"OutlookSharedLinkAccessPolicy\":3, \"OutlookSharedLinkExpirationPolicy\":1, \"OutlookSharedLinkExpirationDays\":10, \"OutlookSharedLinkPasswordProtectionPolicy\":1, \"OutlookShareLinkPasswordComplexity\":2, \"OutlookShareLinkPasswordLength\":8, \"BandwidthRestrictionPolicy\":1, \"BandwidthRestrictionUploadPolicy\":1, \"BandwidthRestrictionUploadSize\":\"999999\", \"BandwidthRestrictionDownloadPolicy\":1, \"BandwidthRestrictionDownloadSize\":\"0\", \"SilentOnboardPolicy\":1, \"SilentOnboardDisplayMachineScreenPolicy\":2, \"SilentOnboardDisplayCustomFolderScreenPolicy\":2, \"SilentOnboardDisplayTutorialScreensPolicy\":2, \"SilentOnboardDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationPolicy\":1, \"SilentOnboardWinDefaultLocationValue\":\"\", \"SilentOnboardMacDefaultLocationPolicy\":1, \"SilentOnboardMacDefaultLocationValue\":\"\" }, \"CopiedFromSetId\":\"\", \"Groups\":[ \"\", \"\" ], \"EntitySetType\":1 }]" + } + } + ], + "responses": { + "200": { + "description": "Successful operation" + }, + "404": { + "description": "(Not Found) - Policy Set Not Found" + } + } + } + }, + "/provisioning/policysets.svc/{COMPANY_GUID}/{ENTITYSET_TYPE_ID}": { + "get": { + "tags": [ + "Policies" + ], + "summary": "Select policysets by company and entity type", + "description": "Retrieves all PolicySets which belongs to the company with specified company id, and of specified entityset type.
A policyset is a grouping of various policies that should be applied concurrently. Policy sets can be applied by name and Id to various parts of the system including storage systems, user groups and allow the administrator to control the various behaviors of the Syncplicity system by the specific attributes of the policy definitions.
Required Scope: Policies, Read", + "operationId": "Policysets by company GET", + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "description": "Array of policysets", + "items": { + "$ref": "#/definitions/PolicySet_Get" + }, + "example": "[ { \"Id\":\"de53a76c-0311-44d1-8a70-808eb470d5b9\", \"Name\": \"\", \"IsDefault\": true, \"Priority\": 14, \"Policy\": { \"ClientAutoUpdatePolicy\": 3, \"ClientPreconfiguredPolicy\": 2, \"SharedFolderPolicy\": 3, \"IncludeOwnerInFolderNamePolicy\": 1, \"RemoteWipeSyncpointPolicy\": 2, \"MobileSyncPolicy\": 1, \"MobileUnencryptedSyncPolicy\": 2, \"MobileSyncLimitsPolicy\": 1, \"MobileDataSyncLimit\": { \"TransferLimit\": 1024, \"BillingCycleResetDay\": 1 }, \"ShareLinkPasswordProtectedPolicy\": 2, \"ShareLinkPasswordComplexity\": 1, \"ShareLinkPasswordLength\": 6, \"ShareLinkExpirationPolicy\": 1, \"ShareLinkExpireInDays\": 10, \"ShareLinkPolicy\": 4, \"DesktopShareLinkFlowPolicy\": 2, \"ReportExportOutputFolderPolicy\": 1, \"AdminIpRestrictionPolicy\": 1, \"AdminIpRestriction\": { \"AllowedIPs\": \"\", \"Message\": \"You are attempting to perform an administrator action from an IP address that your company has not approved.\" }, \"AdminPasswordComplexityPolicy\": 2, \"AdminPasswordComplexity\": { \"AdminPasswordComplexityOptions\": 55, \"AdminPasswordComplexityMinimumLength\": 10, \"AdminPasswordComplexityMaximumLength\": 15 }, \"RestrictMobileAccessPolicy\": 1, \"RestrictWebsiteAccessPolicy\": 1, \"RssNewsFeedPolicy\": 2, \"BranchingPolicy\": 2, \"RemoteWipeUsersPolicy\": 1, \"RemoteWipeEndpointPolicy\": 1, \"EnforceClientMemberActiveDirectoryPolicy\": 1, \"EnforceClientMemberActiveDirectoryPolicyDomains\": \"\", \"IrmPolicy\": { \"SecureSendPolicy\": 1 }, \"GeoRestrictionPolicy\": 1, \"GeoRestrictionCountryList\": [], \"RolePermissionsList\": [], \"DefaultStorageEndpointId\": \"11111111-1111-1111-1111-111111111111\", \"PasscodeEnforcementPolicy\": 1, \"PasscodeFailurePolicy\": 1, \"PasscodeFailures\": { \"AllowablePasscodeFailures\": 10 }, \"OpenInPolicy\": 1, \"SharedFolderResharingPolicy\": 3, \"GeolocationPrivacyPolicy\": 2, \"SharePointConnectorPolicy\": 2, \"SharePointConnectors\": [ { \"Id\": \"\", \"Name\":\"\", \"Url\": \"\", \"Enabled\": true, \"Bookmarks\": { \"Id\":\"\", \"Name\": \"\", \"Url\": \"\", \"Enabled\": true } } ], \"NetworkShareConnectorPolicy\": 2, \"NetworkShareConnectors\": [ { \"Id\": \"\", \"Name\": \"\", \"Url\": \"\", \"Enabled\": true, \"Bookmarks\": { \"Id\":\"\", \"Name\": \"\", \"Url\": \"\", \"Enabled\": true } } ], \"HomeDirectoryPolicy\": { \"Name\": \"\", \"ConnectorId\": \"\", \"ConnectorUrl\": \"\" }, \"FileExclusionPolicy\": 2, \"FileExclusions\": [ { \"Extension\": \"bak\" }, { \"Extension\": \"tmp\" } ], \"OutlookClientAutoUpdatePolicy\": 3, \"OutlookFileExclusionPolicy\": 2, \"OutlookFileExclusionValues\": [ { \"Extension\": \"bak\" }, { \"Extension\": \"ost\" }, { \"Extension\": \"tmp\" } ], \"OutlookFileSizePolicy\": 1, \"OutlookFileSizeValue\": 10, \"OutlookIntegrationPolicy\": 1, \"OutlookSharedLinkAccessPolicy\": 3, \"OutlookSharedLinkExpirationPolicy\": 1, \"OutlookSharedLinkExpirationDays\": 10, \"OutlookSharedLinkPasswordProtectionPolicy\": 1, \"OutlookShareLinkPasswordComplexity\": 2, \"OutlookShareLinkPasswordLength\": 8, \"BandwidthRestrictionPolicy\": 1, \"BandwidthRestrictionUploadPolicy\": 1, \"BandwidthRestrictionUploadSize\": \"999999\", \"BandwidthRestrictionDownloadPolicy\": 1, \"BandwidthRestrictionDownloadSize\": \"0\", \"SilentOnboardPolicy\": 1, \"SilentOnboardDisplayMachineScreenPolicy\": 2, \"SilentOnboardDisplayCustomFolderScreenPolicy\": 2, \"SilentOnboardDisplayTutorialScreensPolicy\": 2, \"SilentOnboardDefaultLocationPolicy\": 1, \"SilentOnboardWinDefaultLocationPolicy\": 1, \"SilentOnboardWinDefaultLocationValue\": \"\", \"SilentOnboardMacDefaultLocationPolicy\": 1, \"SilentOnboardMacDefaultLocationValue\": \"\" }, \"Groups\": [ { \"Id\": \"\", \"Name\": \"\" }, { \"Id\": \"\", \"Name\": \"\" } ], \"EntitySetType\": 1 }]" + }, + "examples": { + "application/json": "[ { \"Id\":\"de53a76c-0311-44d1-8a70-808eb470d5b9\", \"Name\": \"\", \"IsDefault\": true, \"Priority\": 14, \"Policy\": { \"ClientAutoUpdatePolicy\": 3, \"ClientPreconfiguredPolicy\": 2, \"SharedFolderPolicy\": 3, \"IncludeOwnerInFolderNamePolicy\": 1, \"RemoteWipeSyncpointPolicy\": 2, \"MobileSyncPolicy\": 1, \"MobileUnencryptedSyncPolicy\": 2, \"MobileSyncLimitsPolicy\": 1, \"MobileDataSyncLimit\": { \"TransferLimit\": 1024, \"BillingCycleResetDay\": 1 }, \"ShareLinkPasswordProtectedPolicy\": 2, \"ShareLinkPasswordComplexity\": 1, \"ShareLinkPasswordLength\": 6, \"ShareLinkExpirationPolicy\": 1, \"ShareLinkExpireInDays\": 10, \"ShareLinkPolicy\": 4, \"DesktopShareLinkFlowPolicy\": 2, \"ReportExportOutputFolderPolicy\": 1, \"AdminIpRestrictionPolicy\": 1, \"AdminIpRestriction\": { \"AllowedIPs\": \"\", \"Message\": \"You are attempting to perform an administrator action from an IP address that your company has not approved.\" }, \"AdminPasswordComplexityPolicy\": 2, \"AdminPasswordComplexity\": { \"AdminPasswordComplexityOptions\": 55, \"AdminPasswordComplexityMinimumLength\": 10, \"AdminPasswordComplexityMaximumLength\": 15 }, \"RestrictMobileAccessPolicy\": 1, \"RestrictWebsiteAccessPolicy\": 1, \"RssNewsFeedPolicy\": 2, \"BranchingPolicy\": 2, \"RemoteWipeUsersPolicy\": 1, \"RemoteWipeEndpointPolicy\": 1, \"EnforceClientMemberActiveDirectoryPolicy\": 1, \"EnforceClientMemberActiveDirectoryPolicyDomains\": \"\", \"IrmPolicy\": { \"SecureSendPolicy\": 1 }, \"GeoRestrictionPolicy\": 1, \"GeoRestrictionCountryList\": [], \"RolePermissionsList\": [], \"DefaultStorageEndpointId\": \"11111111-1111-1111-1111-111111111111\", \"PasscodeEnforcementPolicy\": 1, \"PasscodeFailurePolicy\": 1, \"PasscodeFailures\": { \"AllowablePasscodeFailures\": 10 }, \"OpenInPolicy\": 1, \"SharedFolderResharingPolicy\": 3, \"GeolocationPrivacyPolicy\": 2, \"SharePointConnectorPolicy\": 2, \"SharePointConnectors\": [ { \"Id\": \"\", \"Name\":\"\", \"Url\": \"\", \"Enabled\": true, \"Bookmarks\": { \"Id\":\"\", \"Name\": \"\", \"Url\": \"\", \"Enabled\": true } } ], \"NetworkShareConnectorPolicy\": 2, \"NetworkShareConnectors\": [ { \"Id\": \"\", \"Name\": \"\", \"Url\": \"\", \"Enabled\": true, \"Bookmarks\": { \"Id\":\"\", \"Name\": \"\", \"Url\": \"\", \"Enabled\": true } } ], \"HomeDirectoryPolicy\": { \"Name\": \"\", \"ConnectorId\": \"\", \"ConnectorUrl\": \"\" }, \"FileExclusionPolicy\": 2, \"FileExclusions\": [ { \"Extension\": \"bak\" }, { \"Extension\": \"tmp\" } ], \"OutlookClientAutoUpdatePolicy\": 3, \"OutlookFileExclusionPolicy\": 2, \"OutlookFileExclusionValues\": [ { \"Extension\": \"bak\" }, { \"Extension\": \"ost\" }, { \"Extension\": \"tmp\" } ], \"OutlookFileSizePolicy\": 1, \"OutlookFileSizeValue\": 10, \"OutlookIntegrationPolicy\": 1, \"OutlookSharedLinkAccessPolicy\": 3, \"OutlookSharedLinkExpirationPolicy\": 1, \"OutlookSharedLinkExpirationDays\": 10, \"OutlookSharedLinkPasswordProtectionPolicy\": 1, \"OutlookShareLinkPasswordComplexity\": 2, \"OutlookShareLinkPasswordLength\": 8, \"BandwidthRestrictionPolicy\": 1, \"BandwidthRestrictionUploadPolicy\": 1, \"BandwidthRestrictionUploadSize\": \"999999\", \"BandwidthRestrictionDownloadPolicy\": 1, \"BandwidthRestrictionDownloadSize\": \"0\", \"SilentOnboardPolicy\": 1, \"SilentOnboardDisplayMachineScreenPolicy\": 2, \"SilentOnboardDisplayCustomFolderScreenPolicy\": 2, \"SilentOnboardDisplayTutorialScreensPolicy\": 2, \"SilentOnboardDefaultLocationPolicy\": 1, \"SilentOnboardWinDefaultLocationPolicy\": 1, \"SilentOnboardWinDefaultLocationValue\": \"\", \"SilentOnboardMacDefaultLocationPolicy\": 1, \"SilentOnboardMacDefaultLocationValue\": \"\" }, \"Groups\": [ { \"Id\": \"\", \"Name\": \"\" }, { \"Id\": \"\", \"Name\": \"\" } ], \"EntitySetType\": 1 }]" + } + }, + "400": { + "description": "(Bad Request) - Not A Business Admin
(Bad Request) - Uknown Entity Set Type" + }, + "403": { + "description": "(Forbidden) - Request Came From An Unapproved IP Address
(Forbidden) - Not A Business Admin: The user attempting to execute this request is not a company administrator
(Forbidden) - Not This Company User: The user attempting to execute this request is not from specifiedcompany" + }, + "404": { + "description": "(Not Found) - Wrong Company Id: Company id is invalid Guid
(Not Found) - Unknown Company Id: Company with specified Id is not found" + } + } + }, + "parameters": [ + { + "name": "COMPANY_GUID", + "in": "path", + "required": true, + "type": "string", + "description": "Unique Id of a company" + }, + { + "name": "ENTITYSET_TYPE_ID", + "in": "path", + "required": true, + "type": "string", + "description": "Type of the entity set. Valid values: 'PolicySet', 'StorageSet', 'HomeDirectorySet'", + "enum": [ + "PolicySet", + "StorageSet", + "HomeDirectorySet" + ] + } + ] + }, + "/sync/folder_folders.svc/{SYNCPOINT_ID}/folder/{FOLDER_ID}/folders": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Get subfolders of a folder", + "description": "Retrieves the list of folders contained within the specified folder within a given syncpoint.
Required Scope: Folders, Read", + "operationId": "Folders from Folder GET", + "parameters": [ + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "Include option, can be comma-separated list of next string values:
'active' - include only active folders (default behaviour)
'deleted' - include deleted folders" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "description": "Maximum number of items to be loaded" + }, + { + "name": "last_folder_id", + "in": "query", + "required": false, + "type": "string", + "description": "Offset folder ID" + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Folder_Folders_GET" + }, + "example": "[{\"SyncpointId\": 4576152,\"FolderId\": 206421346,\"VirtualPath\": \"/2017/\",\"Name\": \"2017\",\"Status\": 1,\"Files\": [],\"Folders\": [],\"ParentFolderId\": 51178574}]" + }, + "examples": { + "application/json": "[{\"SyncpointId\": 4576152,\"FolderId\": 206421346,\"VirtualPath\": \"/2017/\",\"Name\": \"2017\",\"Status\": 1,\"Files\": [],\"Folders\": [],\"ParentFolderId\": 51178574}]" + } + }, + "400": { + "description": "(Bad request) - Invalid Folder ID
(Bad request) - Invalid SyncPoint Id
(Bad request) - Max Limit Is 1000" + }, + "404": { + "description": "(Not Found) - Unknown Folder Id
(Not Found) - Unknown Syncpoint Id" + } + } + }, + "post": { + "tags": [ + "Folders" + ], + "summary": "Create subfolders in a folder", + "description": "Creates one or more subfolders within a given syncpoint and specified parent folder.
Required Scope: Folders, Create", + "operationId": "Folders to Folder POST", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "description": "Statuses of all creating folders should be the same. ", + "items": { + "$ref": "#/definitions/Folder_Folder_POST" + }, + "example": "[ { \"Name\": \"Sub-folder\", \"Status\": 1 }, { \"Name\": \"Sub-folder 2\", \"Status\": 1 } ]" + } + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Folder_Folders_GET" + }, + "example": "[ { \"SyncpointId\": 1, \"FolderId\": 1, \"VirtualPath\": \"/Sub-folder/\", \"Name\": \"Sub-folder\", \"Status\": 1 }, { \"SyncpointId\": 1, \"FolderId\": 2, \"VirtualPath\": \"/Sub-folder 2/\", \"Name\": \"Sub-folder 2\", \"Status\": 1 }]" + }, + "examples": { + "application/json": "[ { \"SyncpointId\": 1, \"FolderId\": 1, \"VirtualPath\": \"/Sub-folder/\", \"Name\": \"Sub-folder\", \"Status\": 1 }, { \"SyncpointId\": 1, \"FolderId\": 2, \"VirtualPath\": \"/Sub-folder 2/\", \"Name\": \"Sub-folder 2\", \"Status\": 1 }]" + } + }, + "400": { + "description": "(Bad request) - Invalid Folder ID
(Bad request) - Different Statuses Are Not Allowed
(Bad request) - Bad Request
(Bad request) - Empty Folder Names Not Allowed
(Bad request) - Invalid Status" + }, + "401": { + "description": "(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - User Not Authorized For Action
(Forbidden) - Creating Directory In Private Folder Not Allowed
(Forbidden) - Syncpoint Shared With Reader Permission
(Forbidden) - User has no OnBehalfOf permission" + } + } + }, + "delete": { + "tags": [ + "Folders" + ], + "summary": "Delete a list of subfolders from a folder", + "description": "Deletes all folders specified in request body from the specified folder within the specified syncpoint.
Required Scope: Folders, Delete", + "operationId": "Folders from Folder DELETE", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "description": "Lists the subfolders to delete and whether to allow restore or delete permanently.", + "items": { + "$ref": "#/definitions/Folder_Folder_DELETE" + }, + "example": "[ { \"FolderId\": \"439745850223001\", \"Status\": 4 }, { \"FolderId\": \"499745850223001\", \"Status\": 4 } ]" + } + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Folder_Folders_GET" + }, + "example": "[ { \"SyncpointId\": 1, \"FolderId\": 1, \"VirtualPath\": \"/Sub-folder/\", \"Name\": \"Sub-folder\", \"Status\": 1 }, { \"SyncpointId\": 1, \"FolderId\": 2, \"VirtualPath\": \"/Sub-folder 2/\", \"Name\": \"Sub-folder 2\", \"Status\": 1 }]" + }, + "examples": { + "application/json": "[ { \"SyncpointId\": 1, \"FolderId\": 1, \"VirtualPath\": \"/Sub-folder/\", \"Name\": \"Sub-folder\", \"Status\": 1 }, { \"SyncpointId\": 1, \"FolderId\": 2, \"VirtualPath\": \"/Sub-folder 2/\", \"Name\": \"Sub-folder 2\", \"Status\": 1 }]" + } + }, + "400": { + "description": "(Bad request) - Invalid Folder ID
(Bad request) - Different Statuses Are Not Allowed
(Bad request) - Folder Already Deleted
(Bad request) - Purging Active Folder Not Allowed
(Bad request) - Invalid Status" + }, + "403": { + "description": "(Forbidden) - Syncpoint Shared With Reader Permission
(Forbidden) - User Not Authorized For Action" + }, + "404": { + "description": "(Not Found) - Folder Not Found In The Parent Folder" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the target syncpoint" + }, + { + "name": "FOLDER_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the folder within the syncpoint.
NOTE: If the folder is being created in the root of a syncpoint, the Syncpoint GET API call must be used to get the RootFolderID and that value should be used here." + } + ] + }, + "/sync/folder.svc/{SYNCPOINT_ID}/folder/{FOLDER_ID}": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Get folder properties and contents", + "description": "Gets properties and contents of a given folder, identified by its Id.
Required Scope: Folders, Read", + "operationId": "Folder GET", + "parameters": [ + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "A comma-separated list specifying optional data to include into result:
'active' - includes existing files and subfolders,
'deleted' - includes removed files and subfolders" + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "$ref": "#/definitions/Folder_GET" + } + }, + "400": { + "description": "(Bad request) - Invalid Folder ID" + }, + "403": { + "description": "(Forbidden) - Not An Owner" + }, + "404": { + "description": "(Not Found) - SyncPoint Does Not Exist" + } + } + }, + "delete": { + "tags": [ + "Folders" + ], + "summary": "Delete a folder", + "description": "Deletes a given folder and all of its contents.
Required Scope: Folders, Delete", + "operationId": "Folder DELETE", + "parameters": [ + { + "name": "modifier", + "in": "query", + "required": false, + "type": "string", + "description": "When the value is \"permanently\" this deletes the folder and contents permanently. When empty or not set, the folder and contents can be restored based on file retention policies set by the administrator." + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + } + ], + "responses": { + "200": { + "description": "Folder has been removed." + }, + "400": { + "description": "(Bad request) - Invalid Folder ID
(Bad request) - Purging Active Folder Not Allowed
(Bad request) - Folder Already Deleted" + }, + "401": { + "description": "(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - Syncpoint Shared With Reader Permission
(Forbidden) - Not An Owner
(Forbidden) - User Not Authorized For Action
(Forbidden) - User has no OnBehalfOf permission" + }, + "404": { + "description": "(Not Found) - SyncPoint Does Not Exist" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the target syncpoint" + }, + { + "name": "FOLDER_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the folder within the syncpoint" + } + ] + }, + "/sync/folder_files.svc/{SYNCPOINT_ID}/folder/{FOLDER_ID}/files": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Get files in a folder", + "description": "Gets a list of files within a given syncpoint, parent folder Id and ability to paginate.
Required Scope: Folders, Read", + "operationId": "Files GET", + "parameters": [ + { + "name": "limit", + "in": "query", + "required": false, + "type": "string", + "description": "Maximum number of items to be loaded" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "string", + "description": "File Id, which files list in response must start from." + }, + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "Comma-separated list of next values: \"active\", \"deleted\", \"hash\". When the value is \"active\", only active files will be returned. When the value is \"deleted\", only deleted items will be returned. When the value is \"active, deleted\", then both active and deleted files are returned. When \"hash\" is included, file hash will be returned" + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Folder_File_GET" + }, + "example": "[{\"SyncpointId\": 5502159,\"FileId\": 743320707,\"Filename\": \"csharp_cli.zip\",\"Length\": 259228,\"CreationTimeUtc\": \"2016-09-12T06:44:31.9000000Z\",\"LastWriteTimeUtc\": \"2016-09-12T06:44:31.9000000Z\",\"Status\": 1,\"LatestVersionId\": 999211663,\"Stored\": true,\"FolderId\": 248159204,\"DateAddedUtc\": \"2016-09-12T06:44:31.8570000Z\"},{\"SyncpointId\": 5502159,\"FileId\": 743320740,\"Filename\": \"Syncplicity API content guide_1_3_3.pdf\",\"Length\": 1324618,\"CreationTimeUtc\": \"2016-09-12T06:44:33.2700000Z\",\"LastWriteTimeUtc\": \"2016-09-12T06:44:33.2700000Z\",\"Status\": 1,\"LatestVersionId\": 999211700,\"Stored\": true,\"FolderId\": 248159204,\"DateAddedUtc\": \"2016-09-12T06:44:33.7500000Z\"},{\"SyncpointId\": 5502159,\"FileId\": 809229278,\"Filename\": \"provisioning-api.json\",\"Length\": 203173,\"CreationTimeUtc\": \"2016-10-13T06:58:03.6370000Z\",\"LastWriteTimeUtc\": \"2016-10-13T06:58:03.6370000Z\",\"Status\": 1,\"LatestVersionId\": 1100484743,\"Stored\": true,\"FolderId\": 248159204,\"DateAddedUtc\": \"2016-10-13T06:58:03.7000000Z\"}]" + }, + "examples": { + "application/json": "[{\"SyncpointId\": 5502159,\"FileId\": 743320707,\"Filename\": \"csharp_cli.zip\",\"Length\": 259228,\"CreationTimeUtc\": \"2016-09-12T06:44:31.9000000Z\",\"LastWriteTimeUtc\": \"2016-09-12T06:44:31.9000000Z\",\"Status\": 1,\"LatestVersionId\": 999211663,\"Stored\": true,\"FolderId\": 248159204,\"DateAddedUtc\": \"2016-09-12T06:44:31.8570000Z\"},{\"SyncpointId\": 5502159,\"FileId\": 743320740,\"Filename\": \"Syncplicity API content guide_1_3_3.pdf\",\"Length\": 1324618,\"CreationTimeUtc\": \"2016-09-12T06:44:33.2700000Z\",\"LastWriteTimeUtc\": \"2016-09-12T06:44:33.2700000Z\",\"Status\": 1,\"LatestVersionId\": 999211700,\"Stored\": true,\"FolderId\": 248159204,\"DateAddedUtc\": \"2016-09-12T06:44:33.7500000Z\"},{\"SyncpointId\": 5502159,\"FileId\": 809229278,\"Filename\": \"provisioning-api.json\",\"Length\": 203173,\"CreationTimeUtc\": \"2016-10-13T06:58:03.6370000Z\",\"LastWriteTimeUtc\": \"2016-10-13T06:58:03.6370000Z\",\"Status\": 1,\"LatestVersionId\": 1100484743,\"Stored\": true,\"FolderId\": 248159204,\"DateAddedUtc\": \"2016-10-13T06:58:03.7000000Z\"}]" + } + }, + "400": { + "description": "(Bad request) - Invalid Folder ID" + }, + "404": { + "description": "(Not Found) - VirtualFolder Not Found
(Not Found) - Directory Not Found" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the target syncpoint" + }, + { + "name": "FOLDER_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the folder within the syncpoint" + } + ] + }, + "/sync/file.svc/{SYNCPOINT_ID}/file/{FILE_OR_VERSION_ID}": { + "get": { + "tags": [ + "Files" + ], + "summary": "Get file metadata", + "description": "Reads the metadata of the file, identified by its ID.
Important! Here FILE_OR_VERSION_ID - must be a file ID, not file version ID.
Required Scope: Files, Read", + "operationId": "File by Id GET", + "parameters": [ + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "'hash' - include file's hash in result", + "enum": [ + "hash" + ] + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "$ref": "#/definitions/File_GET" + }, + "examples": { + "application/json": "{\"SyncpointId\": 5502159,\"FileId\": 743320707,\"Filename\": \"csharp_cli.zip\",\"Length\": 259228,\"CreationTimeUtc\": \"2016-09-12T06:44:31.9000000Z\",\"Status\": 1,\"LatestVersionId\": 999211663,\"Stored\": true,\"FolderId\": 248159204,\"DateAddedUtc\": \"2016-09-12T06:44:31.8570000Z\"}" + } + }, + "400": { + "description": "(Bad Request) - Invalid Version ID" + }, + "404": { + "description": "(Not Found) - SyncPoint Does Not Exist
(Not Found) - File Not Found" + } + } + }, + "delete": { + "tags": [ + "Files" + ], + "summary": "Delete a file", + "description": "Deletes a file by syncpoint ID and file version ID.
Important! Here FILE_OR_VERSION_ID - must be a file version ID, not file ID.
Required Scope: Files, Delete", + "operationId": "File by Id DELETE", + "parameters": [ + { + "name": "modifier", + "in": "query", + "required": false, + "type": "string", + "description": "Set the value to \"permanently\" delete a file permanently" + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + } + ], + "responses": { + "200": { + "description": "File has been removed." + }, + "400": { + "description": "Invalid SyncPoint ID
Invalid Version ID
Mismatched SyncPoint ID
Purging Active File Not Allowed (only if modifier=permanently)
File Already Deleted" + }, + "401": { + "description": "EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "User Not Authorized For Action
User has no OnBehalfOf permission" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the file syncpoint" + }, + { + "name": "FILE_OR_VERSION_ID", + "in": "path", + "required": true, + "type": "string", + "description": "Target file ID or target file version ID. Note: check method summary for instructions what is expected by the specific method." + } + ] + }, + "/sync/files.svc/{SYNCPOINT_ID}/files": { + "delete": { + "tags": [ + "Files" + ], + "summary": "Delete multiple files", + "description": "Deletes a list of files specified in body from a specified syncpoint. Can delete files from any subfolder, as specified in the VirtualPath property of each item.
Required Scope: Files, Delete", + "operationId": "Files from Syncpoint DELETE", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/File_DELETE" + }, + "example": "[{\"SyncpointId\":1234567,\"VirtualPath\":\"\\\\TestFolder\\\\\",\"Filename\":\"Test file.txt\",\"Status\":3}]" + }, + "x-examples": { + "application/json": "[{\"SyncpointId\":1234567,\"VirtualPath\":\"\\\\TestFolder\\\\\",\"Filename\":\"Test file.txt\",\"Status\":3}]" + } + } + ], + "responses": { + "200": { + "description": "File has been removed." + }, + "400": { + "description": "Invalid SyncPoint ID
SyncpointId Does Not Match
Only Removed/ConfirmedRemoved Files Allowed" + }, + "403": { + "description": "User Not Authorized For Action" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the file syncpoint" + } + ] + }, + "/sync/versions.svc/{SYNCPOINT_ID}/file/{FILE_VERSION_ID}/versions": { + "get": { + "tags": [ + "Files/Folder Metadata" + ], + "summary": "Get file versions", + "description": "Gets a list of versions for a specific file from a given syncpoint using a file version ID.
Required Scope: Files/Folder Metadata, Read", + "operationId": "File versions GET", + "parameters": [ + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/File_Version_GET" + }, + "example": "[{ \"SyncpointId\": 14123, \"Id\": 3, \"UserName\": \"\", \"DataSourceName\": \"\", \"Action\": 1, \"Length\": 1000, \"RevisionAge\": \"Revision age\", \"DateAddedUtc\": \"2018-09-10T12:30:48.2170000Z\"},{ \"SyncpointId\": 14123, \"Id\": 44, \"UserName\": \"\", \"DataSourceName\": \"\", \"Action\": 1, \"Length\": 100, \"RevisionAge\": \"Revision age\", \"DateAddedUtc\": \"2018-09-10T12:30:56.8600000Z\"}]" + }, + "examples": { + "application/json": "[{ \"SyncpointId\": 14123, \"Id\": 3, \"UserName\": \"\", \"DataSourceName\": \"\", \"Action\": 1, \"Length\": 1000, \"RevisionAge\": \"Revision age\", \"DateAddedUtc\": \"2018-09-10T12:30:48.2170000Z\"},{ \"SyncpointId\": 14123, \"Id\": 44, \"UserName\": \"\", \"DataSourceName\": \"\", \"Action\": 1, \"Length\": 100, \"RevisionAge\": \"Revision age\", \"DateAddedUtc\": \"2018-09-10T12:30:56.8600000Z\"}]" + } + }, + "400": { + "description": "(Bad Request) - Invalid SyncPoint ID
(Bad Request) - Invalid Version ID
(Bad Request) - Invalid File (Version) ID
(Bad Request) - Virtual Folder Does Not Exist" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the target syncpoint" + }, + { + "name": "FILE_VERSION_ID", + "in": "path", + "required": true, + "type": "string", + "description": "Version ID associated with the file" + } + ] + }, + "/sync/version.svc/{SYNCPOINT_ID}/file/{FILE_ID}/version/{VERSION_ID}": { + "delete": { + "tags": [ + "Files/Folder Metadata" + ], + "summary": "Delete file version", + "description": "Deletes file version from given syncpoint by file Id and file version Id
Required Scope: Files/Folder Metadata, Delete", + "operationId": "File version DELETE", + "parameters": [ + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200" + }, + "400": { + "description": "(Bad Request) - Invalid SyncPoint ID
(Bad Request) - Invalid Version ID
(Bad Request) - Virtual Folder Does Not Exist" + }, + "401": { + "description": "(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - Syncpoint Shared With Reader Permission
(Forbidden) - User has no OnBehalfOf permission" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the target syncpoint" + }, + { + "name": "FILE_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the file" + }, + { + "name": "VERSION_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the file version" + } + ] + }, + "/sync/folders.svc/{SYNCPOINT_ID}/folders": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Get all folders from a syncpoint", + "description": "Gets folders list from defined syncpoint. Also it is possible to find a folder by its virtual path, see usage of 'virtual_path' query parameter
Required Scope: Folders, Read", + "operationId": "Folders from Syncpoint GET", + "parameters": [ + { + "name": "offset", + "in": "query", + "required": false, + "type": "string", + "description": "Folder Id, which folders list in response must start from. 'limit' and 'offset' parameters will not work if 'virtual_path' is specified" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "description": "Maximum number of folders returned in response. 'limit' and 'offset' parameters will not work if 'virtual_path' is specified" + }, + { + "name": "virtual_path", + "in": "query", + "required": false, + "type": "string", + "description": "Virtual path to search folder by. 'limit' and 'offset' parameters will not work if 'virtual_path' is specified" + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Folders_GET" + }, + "example": "[{\"SyncpointId\":123456,\"FolderId\":222222,\"VirtualPath\":\"/TestFolder\",\"Name\":\"TestFolder\",\"Status\":4,\"Folders\":[],\"ParentFolderId\":2222221}]" + }, + "examples": { + "application/json": "[{\"SyncpointId\":123456,\"FolderId\":222222,\"VirtualPath\":\"/TestFolder\",\"Name\":\"TestFolder\",\"Status\":4,\"Folders\":[],\"ParentFolderId\":2222221}]" + } + }, + "400": { + "description": "(Bad request) - Invalid SyncPoint ID" + }, + "404": { + "description": "(Not Found) - Unknown Syncpoint Id" + } + } + }, + "post": { + "tags": [ + "Folders" + ], + "summary": "Add folders to a syncpoint", + "description": "Adds folders to defined syncpoint
Required Scope: Folders, Create", + "operationId": "Folders to syncpoint POST", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "description": "A list of folders to create", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Folders_POST" + }, + "example": "[{\"SyncpointId\":1,\"VirtualPath\":\"/TestFolder/\",\"Name\":\"TestFolder\",\"Status\":1}]" + }, + "x-examples": { + "application/json": "[{\"VirtualPath\":\"/TestFolder/\",\"Name\":\"TestFolder\",\"Status\":1}]" + } + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Folders_GET" + }, + "example": "[{\"SyncpointId\": 4576152,\"FolderId\": 206421346,\"VirtualPath\": \"/2017/\",\"Name\": \"2017\",\"Status\": 1,\"Files\": [],\"Folders\": [],\"ParentFolderId\": 51178574}]" + }, + "examples": { + "application/json": "[{\"SyncpointId\": 4576152,\"FolderId\": 206421346,\"VirtualPath\": \"/2017/\",\"Name\": \"2017\",\"Status\": 1,\"Files\": [],\"Folders\": [],\"ParentFolderId\": 51178574}]" + } + }, + "400": { + "description": "SyncpointId Does Not Match
Only Added or Removed Folders Allowed: wrong status
Invalid Parent Folder Id
All Folders Should Have The Same Source And Destination Folders
Invalid Folder Name
Invalid Syncpoint Type: only SyncplicityDrive types is allowed to move
Folder With The Same Name Already Exists" + }, + "403": { + "description": "Creating Directory In Private Folder Not Allowed
Syncpoint Shared With Reader Permission
Folder Move Is Forbidden" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the syncpoint." + } + ] + }, + "/syncpoint/syncpoints.svc/": { + "get": { + "tags": [ + "Files/Folder Metadata" + ], + "summary": "Get syncpoints", + "description": "Retrieves the syncpoint definitions (top-level folders) for a specific user or for the current user.
Required Scope: Files/Folder Metadata, Read", + "operationId": "Syncpoints GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "user", + "in": "query", + "required": false, + "type": "string", + "description": "If specified, retrieves the syncpoint definitions of the specified user; otherwise, the current user of the application is used. Value is GUID of the user" + }, + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "If specified, makes service return additional information about specified objects. One or several values, separated by comma.
Possible values:
'participants' - include Participants list (invited users, invited groups and inviters);
'inviter' - include user who invited current user to this syncpoint;
'remoteWipe' - include remotely wiped syncpoints;
'children' - include child syncpoints;
'lastnewsfeedevent' - fill LastEvent property with the last news feed;
'deleted' - include deleted syncpoints
If equals participants,
Required Scope: Folder Participation, Read" + }, + { + "name": "owner", + "in": "query", + "required": false, + "type": "string", + "description": "If specified, response will include only syncpoints of specified owner. Value can be Email or ID of the user" + }, + { + "name": "includeType", + "in": "query", + "required": false, + "type": "array", + "description": "If types are not passed, all types except SyncplicityDrive will be returned.
MyDocuments = 1,
MyMusic = 2,
MyPictures = 3,
Desktop = 4,
Favorites = 5,
Custom = 6,
Private = 7,
SyncplicityDrive = 8", + "items": { + "type": "string" + }, + "x-example": "1,2,3,4,5,6,7" + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Syncpoints_GET" + }, + "example": "[{\"Id\": 5698124,\"Type\": 6,\"Name\": \"123\",\"RootFolderId\": 264841158,\"Mapped\": false,\"DownloadEnabled\": true,\"UploadEnabled\": true,\"Shared\": true,\"Owner\": {\"Id\": \"7dae61c7-bf7a-499b-8ede-6481aba49ac9\",\"EmailAddress\": \"first_name_last_name@test.com\",\"FirstName\": \"Kiryl\",\"LastName\": \"last_name\",\"Company\": {\"Id\": \"9f398339-35fe-483e-82e9-eb1392ba1061\",\"Name\": \"Company name\"}},\"Permission\": 1,\"Mappings\": [],\"Policy\": {\"RemoteWipeSyncpointPolicy\": 1,\"ResharingPolicy\": 3,\"ShareLinkPolicy\": 3,\"ShareLinkPasswordProtectedPolicy\": 1,\"ShareLinkPasswordComplexity\": 1,\"ShareLinkPasswordLength\": 6,\"ShareLinkExpirationPolicy\": 2,\"ShareLinkExpireInDays\": 6,\"StoragePasswordPolicy\": 2,\"StoragePasswordComplexityPolicy\": 2,\"StoragePasswordComplexity\": {\"Options\": 6,\"MinimumLength\": 8},\"StorageCookiePersistancePolicy\": 2,\"DesktopShareLinkFlowPolicy\": 2,\"SFSCreationPolicy\": 2,\"WopiPolicy\": 2},\"StorageEndpointId\": \"11111111-1111-1111-1111-111111111111\",\"PathToRoot\": \"\\\\\",\"ServiceState\": {\"Status\": 1},\"SyncpointSize\": 6702574,\"ResharingPermission\": 1,\"NotifyAboutResharing\": false,\"EffectivePermission\": 1,\"EventServerId\": \"11111111-1111-1111-1111-111111111111\"}]" + }, + "examples": { + "application/json": "[{\"Id\": 5698124,\"Type\": 6,\"Name\": \"123\",\"RootFolderId\": 264841158,\"Mapped\": false,\"DownloadEnabled\": true,\"UploadEnabled\": true,\"Shared\": true,\"Owner\": {\"Id\": \"7dae61c7-bf7a-499b-8ede-6481aba49ac9\",\"EmailAddress\": \"first_name_last_name@test.com\",\"FirstName\": \"Kiryl\",\"LastName\": \"last_name\",\"Company\": {\"Id\": \"9f398339-35fe-483e-82e9-eb1392ba1061\",\"Name\": \"Company name\"}},\"Permission\": 1,\"Mappings\": [],\"Policy\": {\"RemoteWipeSyncpointPolicy\": 1,\"ResharingPolicy\": 3,\"ShareLinkPolicy\": 3,\"ShareLinkPasswordProtectedPolicy\": 1,\"ShareLinkPasswordComplexity\": 1,\"ShareLinkPasswordLength\": 6,\"ShareLinkExpirationPolicy\": 2,\"ShareLinkExpireInDays\": 6,\"StoragePasswordPolicy\": 2,\"StoragePasswordComplexityPolicy\": 2,\"StoragePasswordComplexity\": {\"Options\": 6,\"MinimumLength\": 8},\"StorageCookiePersistancePolicy\": 2,\"DesktopShareLinkFlowPolicy\": 2,\"SFSCreationPolicy\": 2,\"WopiPolicy\": 2},\"StorageEndpointId\": \"11111111-1111-1111-1111-111111111111\",\"PathToRoot\": \"\\\\\",\"ServiceState\": {\"Status\": 1},\"SyncpointSize\": 6702574,\"ResharingPermission\": 1,\"NotifyAboutResharing\": false,\"EffectivePermission\": 1,\"EventServerId\": \"11111111-1111-1111-1111-111111111111\"}]" + } + }, + "400": { + "description": "(Bad Request) - Invalid Email Format" + }, + "401": { + "description": "(Unauthorized) - Not Authorized" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin
(Forbidden) - User Not Authorized For Action" + }, + "404": { + "description": "(Not Found) - User Not Found. The \"user\" query parameter is specified, but the user does not exist" + } + } + }, + "post": { + "tags": [ + "Files/Folder Metadata" + ], + "summary": "Create syncpoints", + "description": "Creates one or more syncpoints for a specific user (owner). The response list only contains those syncpoints that were successfully created. If an error occurred during the user creation process, a non-200 HTTP status code is returned.
Required Scope: Files/Folder Metadata, Create", + "operationId": "Syncpoints POST", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Syncpoints_POST" + }, + "example": "[{\"Type\": 6,\"Name\": \"new-syncpoint\",\"Participants\": [{\"User\": {\"EmailAddress\": \"email@mail.com\"},\"Permission\": 3}]}]" + } + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Syncpoint_POST_response" + }, + "example": "[{\"Id\": 6281147,\"Type\": 6,\"Name\": \"new-syncpoint\",\"RootFolderId\": 307539760,\"Mapped\": true,\"Path\": \"\\\\\",\"DownloadEnabled\": true,\"UploadEnabled\": true,\"Owner\": {\"Id\": \"7dae61c7-bf7a-499b-8ede-6481aba49ac9\"},\"Permission\": 1,\"Participants\": [],\"Mappings\": [{\"Machine\": {\"Id\": \"f2147189-6e25-4afb-bf9d-59195b43a326\"},\"Path\": \"\\\\\",\"Mapped\": true,\"DownloadEnabled\": true,\"UploadEnabled\": true,\"MappingType\": 1}],\"StorageEndpointId\": \"11111111-1111-1111-1111-111111111111\",\"ServiceState\": {\"Status\": 1},\"SyncpointSize\": null,\"EffectivePermission\": 1,\"EventServerId\": \"11111111-1111-1111-1111-111111111111\"}]" + }, + "examples": { + "application/json": "[{\"Id\": 6281147,\"Type\": 6,\"Name\": \"new-syncpoint\",\"RootFolderId\": 307539760,\"Mapped\": true,\"Path\": \"\\\\\",\"DownloadEnabled\": true,\"UploadEnabled\": true,\"Owner\": {\"Id\": \"7dae61c7-bf7a-499b-8ede-6481aba49ac9\"},\"Permission\": 1,\"Participants\": [],\"Mappings\": [{\"Machine\": {\"Id\": \"f2147189-6e25-4afb-bf9d-59195b43a326\"},\"Path\": \"\\\\\",\"Mapped\": true,\"DownloadEnabled\": true,\"UploadEnabled\": true,\"MappingType\": 1}],\"StorageEndpointId\": \"11111111-1111-1111-1111-111111111111\",\"ServiceState\": {\"Status\": 1},\"SyncpointSize\": null,\"EffectivePermission\": 1,\"EventServerId\": \"11111111-1111-1111-1111-111111111111\"}]" + } + }, + "400": { + "description": "(Bad Request) - Invalid syncpoints list" + }, + "401": { + "description": "(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin - Caller is attempting to create syncpoints for other users but is not a company administrator
(Forbidden) - User Not Authorized For Action
(Forbidden) - Max Limit On Creation Reached
(Forbidden) - User has no OnBehalfOf permission" + }, + "404": { + "description": "(Not Found) - Storage Endpoint not found" + } + } + } + }, + "/syncpoint/syncpoint.svc/{SYNCPOINT_ID}": { + "get": { + "tags": [ + "Files/Folder Metadata" + ], + "summary": "Get a syncpoint", + "description": "Retrieves the syncpoint definition of a specific endpoint.
Required Scope: Files/Folder Metadata, Read", + "operationId": "Syncpoint GET", + "parameters": [ + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "If specified, make service return additional information about specified objects. One or several values, separated by comma.
Possible values:
'participants' - include Participants list (shared users, invited users and shared groups);
'inviter' - include user who invited current user to this syncpoint;
'children' - include child syncpoints;
'lastnewsfeedevent' - fill LastEvent property with the last news feed;
'deleted' - include deleted syncpoints
If equals participants,
Required Scope: Folder Participation, Read" + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "$ref": "#/definitions/Syncpoint_GET" + }, + "examples": { + "application/json": "{ \"Id\": 44444, \"Type\": 6, \"Name\": \"\", \"Owner\": { \"Id\": \"\", \"EmailAddress\": \"\", \"FirstName\": \"\", \"LastName\": \"\" }, \"Permission\": 1, \"StorageEndpointID\": \"\", \"Parent\": { \"Id\" : \"\" }, \"RootFolderID\": 33333, \"Mappings\": [{ \"Machine\": {\"Id\" : \"\",\"Path\": \"\"} } ], \"RemoteWipe\": false, \"DownloadEnabled\": true, \"UploadEnabled\": true, \"ServerID\": 3, \"ServerStatus\": 1}" + } + }, + "403": { + "description": "(Forbidden) - Not A Business Admin - Current user is not an administrator and the \"user\" query parameter is specified
(Forbidden) - User Not Authorized For Action" + }, + "404": { + "description": "(Not Found) - SyncPoint Does Not Exist" + } + } + }, + "put": { + "tags": [ + "Files/Folder Metadata" + ], + "summary": "Update a syncpoint", + "description": "Updates a Syncpoint specified by the ID. This call can be used to update properties of the Syncpoint, map or un-map a Syncpoint from an endpoint, restore removed syncpoint. Included properties of the input are updated if the values don't match existing values stored on the server, otherwise inputs are ignored if unchanged. Therefore, only changed values need be sent in the JSON input.
Specify at least one of 'restore_' parameters to restore removed syncpoint. PUT for inactive syncpoint allows only restore syncpoint action. No other properties will be changed during syncpoint restoration.
Required Scope: Files/Folder Metadata, Update", + "operationId": "Syncpoint PUT", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "restore_participants", + "in": "query", + "required": false, + "type": "string", + "description": "Modifier for Syncpoint participants restoration.
Next values are possible:
'restore_with_participants', 'restore_without_participants'." + }, + { + "name": "restore_content", + "in": "query", + "required": false, + "type": "string", + "description": "Modifier for Syncpoint content restoration.
Next values are possible: 'restore_with_content', 'restore_without_content'." + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Syncpoint_PUT", + "example": "{\"Type\": 6,\"Name\": \"\",\"Owner\": {\"EmailAddress\": \"\"}}" + }, + "x-examples": { + "application/json": "{\"Type\": 6,\"Name\": \"\",\"Owner\": {\"EmailAddress\": \"\"}}" + } + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "$ref": "#/definitions/Syncpoint_POST_response" + }, + "examples": { + "application/json": "{ \"Id\": 44444, \"Type\": 6, \"Name\": \"\", \"Owner\": { \"Id\": \"\", \"EmailAddress\": \"\", \"FirstName\": \"\", \"LastName\": \"\" }, \"Permission\": 1, \"Parent\": { \"Id\" : \"\" }, \"RootFolderID\": 33333, \"Mappings\": [{ \"Machine\": {\"Id\" : \"\",\"Path\": \"\"} } ], \"RemoteWipe\": false, \"DownloadEnabled\": true, \"UploadEnabled\": true, \"ServerID\": 3, \"ServerStatus\": 1}" + } + }, + "400": { + "description": "(Bad Request) - Invalid Folder Name
(Bad Request) - Owner User Not Exist
(Bad Request) - Invalid Machine ID" + }, + "401": { + "description": "(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin - Current user is not an administrator and the \"user\" query parameter is specified
(Forbidden) - User Not Authorized For Action
(Forbidden) - Syncpoint Shared With Reader Permission
(Forbidden) - Syncpoint Rename Forbidden
(Forbidden) - Invalid Folder Name
(Forbidden) - User Not Authorized for Resharing Management
(Forbidden) - SyncplicityDrive Feature Is Disabled
(Forbidden) - SyncpointType Change Is Allowed Only To Custom And Drive Types
(Forbidden) - SyncpointType Change Is Allowed Only For Custom And Drive Types
(Forbidden) - User Not Authorized for Syncpoint Type Management
(Forbidden) - Subfolder Sharing Change Type Forbidden
(Forbidden) - Syncpoint Change Owner Forbidden
(Forbidden) - Only Company Users Allowed
(Forbidden) - Subfolder Sharing Change Owner Forbidden
(Forbidden) - Parent Or Child Syncpoint Already Mapped
(Forbidden) - User has no OnBehalfOf permission" + }, + "404": { + "description": "(Not Found) - SyncPoint Does Not Exist" + } + } + }, + "delete": { + "tags": [ + "Files/Folder Metadata" + ], + "summary": "Delete a syncpoint", + "description": "Removes an existing Syncpoint from the Syncplicity account.
Required Scope: Files/Folder Metadata, Delete", + "operationId": "Syncpoint DELETE", + "parameters": [ + { + "name": "modifier", + "in": "query", + "required": false, + "type": "string", + "description": "If equals 'permanently' - will mark the syncpoint for purging. Valid only for non-active (deleted) syncpoints" + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200" + }, + "401": { + "description": "(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - Not A Business Admin - Current user is not an administrator and the \"user\" query parameter is specified
(Forbidden) - User Not Authorized For Action
(Forbidden) - Virtual Folder Is Shared Via The Group Permissions
(Forbidden) - Deleting Private Folder Not Allowed
(Forbidden) - Purging SubFolder Shares Is Not Allowed
(Forbidden) - Not An Owner
(Forbidden) - User has no OnBehalfOf permission" + }, + "404": { + "description": "(Bad Request) - Purging Active Folder Not Allowed" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID of the syncpoint" + } + ] + }, + "/syncpoint/syncpoint_participants.svc/{SYNCPOINT_ID}/participants": { + "get": { + "tags": [ + "Folder Participation" + ], + "summary": "Get syncpoint participants", + "description": "Retrieves a list of the Syncplicity users or user groups with whom the specified Syncpoint is shared. If an error occurred during the retrieval process, the API will return a non-200 HTTP status code.
Required Scope: Folder Participation, Read", + "operationId": "Syncpoint Participants GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SyncpointParticipant_GET" + }, + "example": "[ { \"User\": { \"EmailAddress\": \"\", \"FirstName\": \"\", \"LastName\": \"\" }, \"Permission\": 1, \"Mapped\": true, \"IsOwner\": true, \"IsExplicit\": true }, { \"User\": { \"Id\": \"\", \"EmailAddress\": \"\", \"FirstName\": \"\", \"LastName\": \"\" }, \"Inviter\": { \"Id\": \"\", \"EmailAddress\": \"\", \"FirstName\": \"\", \"LastName\": \"\" }, \"Permission\": 1, \"Mapped\": true, \"ResharingAllowed\": false, \"ParticipantResharingPolicy\": 3, \"IsExplicit\": true }, { \"Group\": { \"Id\": \"\", \"Name\": \"\" }, \"Inviter\": { \"Id\": \"\", \"EmailAddress\": \"\", \"FirstName\": \"\", \"LastName\": \"\" }, \"Permission\": 3, \"Mapped\": false, \"ResharingAllowed\": false, \"ParticipantResharingPolicy\": 3, \"IsExplicit\": true }]" + }, + "examples": { + "application/json": "[ { \"User\": { \"EmailAddress\": \"\", \"FirstName\": \"\", \"LastName\": \"\" }, \"Permission\": 1, \"Mapped\": true, \"IsOwner\": true, \"IsExplicit\": true }, { \"User\": { \"Id\": \"\", \"EmailAddress\": \"\", \"FirstName\": \"\", \"LastName\": \"\" }, \"Inviter\": { \"Id\": \"\", \"EmailAddress\": \"\", \"FirstName\": \"\", \"LastName\": \"\" }, \"Permission\": 1, \"Mapped\": true, \"ResharingAllowed\": false, \"ParticipantResharingPolicy\": 3, \"IsExplicit\": true }, { \"Group\": { \"Id\": \"\", \"Name\": \"\" }, \"Inviter\": { \"Id\": \"\", \"EmailAddress\": \"\", \"FirstName\": \"\", \"LastName\": \"\" }, \"Permission\": 3, \"Mapped\": false, \"ResharingAllowed\": false, \"ParticipantResharingPolicy\": 3, \"IsExplicit\": true }]" + } + } + } + }, + "post": { + "tags": [ + "Folder Participation" + ], + "summary": "Share a syncpoint", + "description": "Shares a Syncpoint with one or more Syncplicity users or user groups. If the Syncpoint is already shared with the specified participant, the API will then behave as an update for the permissions instead.
Required Scope: Folder Participation, Create", + "operationId": "Syncpoint Participants POST", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "modifier", + "in": "query", + "required": false, + "type": "string", + "description": "Set the value to \"no_email\" to suppress sharing notification emails" + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SyncpointParticipant_POST" + }, + "example": "[{\"User\": {\"EmailAddress\": \"\"},\"Permission\": 1,\"SharingInviteNote\": \"\"}]" + } + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SyncpointParticipants_POST_response" + } + }, + "examples": { + "application/json": "[ { \"User\": { \"EmailAddress\": \"\" }, \"Permission\": \"3\", \"SharingInviteNote\": \"\" }, { \"Group\": { \"Id\": \"\" }, \"Permission\": \"1\", \"SharingInviteNote\": \"\" }]" + } + }, + "401": { + "description": "(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - User Not Authorized For Action
(Forbidden) - Policy Prohibits Sharing
(Forbidden) - User has no OnBehalfOf permission" + } + } + }, + "delete": { + "tags": [ + "Folder Participation" + ], + "summary": "Remove multiple syncpoint participants (unshare)", + "description": "Removes sharing participants in bulk. Unshares a top-level Syncplicity folder with one or more users as specified in the request body.
Required Scope: Folder Participation, Delete", + "operationId": "Syncpoint Participants DELETE", + "parameters": [ + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SyncpointParticipants_DELETE" + }, + "example": "[ { \"User\": { \"EmailAddress\": \"\" } }, { \"Group\": { \"Id\": \"\" } }]" + } + } + ], + "responses": { + "200": { + "description": "Successful operation" + }, + "401": { + "description": "(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - User Not Authorized For Action
(Forbidden) - User has no OnBehalfOf permission" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the target syncpoint. Positive value > 0. The method's requester should be a syncpoint owner, syncpoint sharing participant or the company admin" + } + ] + }, + "/syncpoint/links.svc/": { + "get": { + "tags": [ + "Links" + ], + "summary": "Get shared file links", + "description": "Returns a JSON array of shared links as well as information about link’s protection and expiration time shared by given user.
Required Scope: Links, Read", + "operationId": "Links GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "user", + "in": "query", + "required": false, + "type": "string", + "description": "Unique user GUID. If caller is authorized as Global Administrator it’s possible to fetch shared links of other users by passing this parameter." + }, + { + "name": "fileId", + "in": "query", + "required": false, + "type": "string", + "description": "ID associated with the shared file. 'syncpointId' query parameter must be passed together with 'fileId'" + }, + { + "name": "syncpointId", + "in": "query", + "required": false, + "type": "string", + "description": "ID associated with the syncpoint, which contains the file. 'syncpointId' query parameter must be passed together with 'fileId'" + }, + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "If specified, make service return additional information about specified objects. One or several values, separated by comma. Possible values:
'expired' - include in response expired links
'downloadHistory' - include download history of the links
'usage' - include information about link usage" + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Links_GET" + }, + "example": "[ { \"Token\": \"ejly5pugvmr1jh5\", \"SyncPointId\": 6262369, \"LandingPageUrl\": \"https://my.syncplicity.com/share/ejly5pugvmr1jh5/debug\", \"DownloadUrl\": \"https://my.syncplicity.com/dl/ejly5pugvmr1jh5/debug\", \"ShareLinkPolicy\": 3, \"PasswordProtectPolicy\": 1, \"File\": { \"FileId\": 1126693686, \"Filename\": \"debug.zip\", \"Length\": 0, \"LatestVersionId\": 1475320775, \"FolderId\": 0 }, \"SharedDateUtc\": \"/Date(1491550811300)/\", \"Users\": [], \"Groups\": [], \"LinkUsage\": [], \"LinkExpirationPolicy\": 2, \"LinkExpireInDays\": 6, \"IsIrmProtected\": false, \"IrmRoleType\": 0, \"ShareType\": 2, \"OutlookShareLinkPolicy\": 3, \"OutlookPasswordProtectPolicy\": 1 }, { \"Token\": \"0we5h44ueoigegn\", \"SyncPointId\": 5698124, \"LandingPageUrl\": \"https://my.syncplicity.com/share/0we5h44ueoigegn/file-upload\", \"DownloadUrl\": \"https://my.syncplicity.com/dl/0we5h44ueoigegn/file-upload\", \"ShareLinkPolicy\": 3, \"PasswordProtectPolicy\": 1, \"File\": { \"FileId\": 905352257, \"Filename\": \"file-upload.bat\", \"Length\": 0, \"LatestVersionId\": 1214646053, \"FolderId\": 0 }, \"SharedDateUtc\": \"/Date(1489519973267)/\", \"Users\": [], \"Groups\": [], \"LinkUsage\": [], \"LinkExpirationPolicy\": 2, \"LinkExpireInDays\": 6, \"IsIrmProtected\": false, \"IrmRoleType\": 0, \"ShareType\": 2, \"OutlookShareLinkPolicy\": 3, \"OutlookPasswordProtectPolicy\": 1 }]" + }, + "examples": { + "application/json": "[ { \"Token\": \"ejly5pugvmr1jh5\", \"SyncPointId\": 6262369, \"LandingPageUrl\": \"https://my.syncplicity.com/share/ejly5pugvmr1jh5/debug\", \"DownloadUrl\": \"https://my.syncplicity.com/dl/ejly5pugvmr1jh5/debug\", \"ShareLinkPolicy\": 3, \"PasswordProtectPolicy\": 1, \"File\": { \"FileId\": 1126693686, \"Filename\": \"debug.zip\", \"Length\": 0, \"LatestVersionId\": 1475320775, \"FolderId\": 0 }, \"SharedDateUtc\": \"/Date(1491550811300)/\", \"Users\": [], \"Groups\": [], \"LinkUsage\": [], \"LinkExpirationPolicy\": 2, \"LinkExpireInDays\": 6, \"IsIrmProtected\": false, \"IrmRoleType\": 0, \"ShareType\": 2, \"OutlookShareLinkPolicy\": 3, \"OutlookPasswordProtectPolicy\": 1 }, { \"Token\": \"0we5h44ueoigegn\", \"SyncPointId\": 5698124, \"LandingPageUrl\": \"https://my.syncplicity.com/share/0we5h44ueoigegn/file-upload\", \"DownloadUrl\": \"https://my.syncplicity.com/dl/0we5h44ueoigegn/file-upload\", \"ShareLinkPolicy\": 3, \"PasswordProtectPolicy\": 1, \"File\": { \"FileId\": 905352257, \"Filename\": \"file-upload.bat\", \"Length\": 0, \"LatestVersionId\": 1214646053, \"FolderId\": 0 }, \"SharedDateUtc\": \"/Date(1489519973267)/\", \"Users\": [], \"Groups\": [], \"LinkUsage\": [], \"LinkExpirationPolicy\": 2, \"LinkExpireInDays\": 6, \"IsIrmProtected\": false, \"IrmRoleType\": 0, \"ShareType\": 2, \"OutlookShareLinkPolicy\": 3, \"OutlookPasswordProtectPolicy\": 1 }]" + } + }, + "400": { + "description": "(Bad Request) - SyncpointId Provided Without FileId
(Bad Request) - FileId Provided Without SyncpointId
(Bad Request) - Wrong Syncpoint ID Parameter
(Bad Request) - Wrong File ID Parameter" + } + } + }, + "post": { + "tags": [ + "Links" + ], + "summary": "Create a shared file link", + "description": "Creates and returns shared link to a file.
Required Scope: Links, Create", + "operationId": "Links POST", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "modifier", + "in": "query", + "required": false, + "type": "string", + "description": "If equals 'send_email' - an email about link sharing/unsharing will be sent to all Users and Groups of the link." + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Links_POST" + }, + "example": "[{\"SyncPointId\": 0,\"VirtualPath\": \"/path/file-1.png\", \"ShareLinkPolicy\": 2, \"PasswordProtectPolicy\": 2, \"Password\": \"password\",\"Users\": [ { \"EmailAddress\": \"useremail\" } ],\"Message\": \"text\",\"OutlookSharePolicy\": 3}]" + } + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Links_Post_response" + }, + "example": "[{\"Token\": \"token\",\"SyncPointId\": 1,\"VirtualPath\": \"/path/file-1.png\",\"ShareType\": 1,\"ShareLinkPolicy\": 2,\"LandingPageUrl\": \"Url\",\"Message\": \"message\",\"OutlookSharePolicy\": 1}]" + }, + "examples": { + "application/json": "[{\"Token\": \"token\",\"SyncPointId\": 1,\"VirtualPath\": \"/path/file-1.png\", \"ShareType\": 1,\"ShareLinkPolicy\": 2,\"LandingPageUrl\": \"Url\",\"Message\": \"message\",\"OutlookSharePolicy\": 1}]" + } + }, + "400": { + "description": "(Bad Request) - Password policy Prohibits sharing" + }, + "401": { + "description": "(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - SyncPoint ID either invalid or not defined
(Forbidden) - User has no OnBehalfOf permission" + }, + "406": { + "description": "(Not Acceptable) - Policy Prohibits Sharing" + } + } + } + }, + "/syncpoint/link.svc/{TOKEN}": { + "get": { + "tags": [ + "Links" + ], + "summary": "Get a shared file link metadata", + "description": "Gets shared link information about a link’s protection and expiration
Required Scope: Links, Read", + "operationId": "Link GET", + "parameters": [ + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + }, + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "description": "If specified, make service return additional information about specified objects. One or several values, separated by comma. Possible values:
'expired' - include information about expired link
'downloadHistory' - include download history of the link
'usage' - include information about link usage" + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "$ref": "#/definitions/Links_GET" + }, + "examples": { + "application/json": " { \"Token\": \"ejly5pugvmr1jh5\", \"SyncPointId\": 6262369, \"LandingPageUrl\": \"https://my.syncplicity.com/share/ejly5pugvmr1jh5/debug\", \"DownloadUrl\": \"https://my.syncplicity.com/dl/ejly5pugvmr1jh5/debug\", \"ShareLinkPolicy\": 3, \"PasswordProtectPolicy\": 1, \"File\": { \"FileId\": 1126693686, \"Filename\": \"debug.zip\", \"Length\": 0, \"LatestVersionId\": 1475320775, \"FolderId\": 0 }, \"SharedDateUtc\": \"/Date(1491550811300)/\", \"Users\": [], \"Groups\": [], \"LinkUsage\": [], \"LinkExpirationPolicy\": 2, \"LinkExpireInDays\": 6, \"IsIrmProtected\": false, \"IrmRoleType\": 0, \"ShareType\": 2, \"OutlookShareLinkPolicy\": 3, \"OutlookPasswordProtectPolicy\": 1 }" + } + }, + "404": { + "description": "(Not Found) - Token Not found. Access token is not valid" + } + } + }, + "put": { + "tags": [ + "Links" + ], + "summary": "Update a shared file link", + "description": "Updates information associated with a shared link to a file.
Required Scope: Links, Update", + "operationId": "Link PUT", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "modifier", + "in": "query", + "required": false, + "type": "string", + "description": "If equals 'send_email' - an email about link sharing/unsharing will be sent to all Users and Groups of the link." + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Links_POST" + } + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "$ref": "#/definitions/Links_Put_response" + }, + "examples": { + "application/json": " { \"Token\": \"ejly5pugvmr1jh5\", \"SyncPointId\": 6262369, \"LandingPageUrl\": \"https://my.syncplicity.com/share/ejly5pugvmr1jh5/debug\", \"DownloadUrl\": \"https://my.syncplicity.com/dl/ejly5pugvmr1jh5/debug\", \"ShareLinkPolicy\": 3, \"PasswordProtectPolicy\": 1, \"File\": { \"FileId\": 1126693686, \"Filename\": \"debug.zip\", \"Length\": 0, \"LatestVersionId\": 1475320775, \"FolderId\": 0 }, \"SharedDateUtc\": \"/Date(1491550811300)/\", \"Users\": [], \"Groups\": [], \"LinkUsage\": [], \"LinkExpirationPolicy\": 2, \"LinkExpireInDays\": 6, \"IsIrmProtected\": false, \"IrmRoleType\": 0, \"ShareType\": 2, \"OutlookShareLinkPolicy\": 3, \"OutlookPasswordProtectPolicy\": 1 }" + } + }, + "400": { + "description": "(Bad Request) - Password policy Prohibits sharing
(Bad Request) - No Data To Update" + }, + "401": { + "description": "(Unauthorized) - Invalid Token
(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - Not An Owner
(Forbidden) - User has no OnBehalfOf permission" + }, + "404": { + "description": "(Not Found) - Token Not found. Access token is not valid" + } + } + }, + "delete": { + "tags": [ + "Links" + ], + "summary": "Delete a shared file link", + "description": "Deletes the shared link indentified by its token
Required Scope: Links, Delete", + "operationId": "Link DELETE", + "parameters": [ + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user. If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200" + }, + "401": { + "description": "(Unauthorized) - EDiscovery admins can only do read on behalf of user" + }, + "403": { + "description": "(Forbidden) - User has no OnBehalfOf permission" + }, + "404": { + "description": "(Not Found) - Token Not found" + } + } + }, + "parameters": [ + { + "name": "TOKEN", + "in": "path", + "required": true, + "type": "string", + "description": "Shared link token" + } + ] + }, + "/syncpoint/syncpoint_participant.svc/{SYNCPOINT_ID}/participant/{USER_EMAIL}": { + "delete": { + "tags": [ + "Folder Participation" + ], + "summary": "Remove a sharing participant (unshare)", + "description": "Removes sharing participant. Unshares a top-level Syncplicity folder with one user specified in the query path.
Required Scope: Folder Participation, Delete", + "operationId": "Syncpoint Participant DELETE", + "parameters": [], + "responses": { + "200": { + "description": "Successful operation" + }, + "400": { + "description": "(Bad Request) - Invalid Email Address" + }, + "403": { + "description": "(Forbidden) - User Not Authorized For Action" + } + } + }, + "parameters": [ + { + "name": "SYNCPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID associated with the target syncpoint. Positive value > 0. The method's requestor should be a syncpoint owner, syncpoint sharing participant or the company admin" + }, + { + "name": "USER_EMAIL", + "in": "path", + "required": true, + "type": "string", + "description": "Email address of the participant" + } + ] + }, + "/storage/storageendpoints.svc/": { + "get": { + "tags": [ + "Files/Folder Metadata" + ], + "summary": "Get available storage endpoints", + "description": "Retrieves the list of all storage endpoints available to the logged in user. Currently, the API will return all storage endpoints the user has at least one SyncPoint mapped to his machine
Required Scope: Files/Folder Metadata, Read", + "operationId": "Storage Endpoints GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "user", + "in": "query", + "required": false, + "type": "string", + "description": "Provide user guid here to retrieve storage endpoints for a given user. Only Global Administrator can use it." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Storage_Endpoint_GET" + } + }, + "examples": { + "application/json": "[{\"Id\": \"11111111-1111-1111-1111-111111111111\",\"Name\": \"Syncplicity Cloud Storage US\",\"Description\": \"Syncplicity Cloud Storage US\",\"CompanyId\": \"11111111-1111-1111-1111-111111111111\",\"Active\": true,\"Urls\": [{\"Url\": \"https:\\/\\/data.syncplicity.com\"}],\"Version\": 0,\"SizeGb\": 10000,\"RequiresStorageAuthentication\": false,\"UserHasStoragePassword\": false,\"Company\": null,\"UserStoragePasswordStatus\": 0,\"Default\": true,\"IrmRmsOption\": 0,\"ConsumedGb\": 0,\"ProtocolVersion\": 1.6,\"SupportsWopi\": true,\"WopiHostUrl\": \"https:\\/\\/wopi.syncplicity.com\"},{\"Id\": \"11111111-1111-2222-1111-111111111111\",\"Name\": \"Syncplicity Cloud Storage EU\",\"Description\": \"Syncplicity Cloud Storage EU\",\"CompanyId\": \"11111111-1111-1111-1111-111111111111\",\"Active\": true,\"Urls\": [{\"Url\": \"https:\\/\\/data-eu.syncplicity.com\"}],\"Version\": 0,\"SizeGb\": 9240,\"RequiresStorageAuthentication\": false,\"UserHasStoragePassword\": false,\"Company\": null,\"UserStoragePasswordStatus\": 0,\"Default\": false,\"IrmRmsOption\": 0,\"ConsumedGb\": 0,\"ProtocolVersion\": 1.6,\"SupportsWopi\": true,\"WopiHostUrl\": \"https:\\/\\/wopi-eu.syncplicity.com\"}]" + } + }, + "400": { + "description": "(Bad Request) - Invalid input" + }, + "401": { + "description": "(Unauthorized) - Not Authorized" + }, + "403": { + "description": "(Forbidden) - The caller is attempting to obtain StorageVault information not as an administrator
(Forbidden) - User Not Authorized For Action
(Forbidden) - Request Came From An Unapproved IP Address
(Forbidden) - Not A Business Admin" + } + } + } + }, + "/storage/storageendpoint.svc/": { + "get": { + "tags": [ + "Files/Folder Metadata" + ], + "summary": "Get default storage endpoint", + "description": "Retrieves metadata and details about the default storage endpoint (StorageVault) for the current user or a specific user identified by a user GUID. Specifying the 'user' parameter is allowed for Global Admin only.
Required Scope: Files/Folder Metadata, Read", + "operationId": "Default Storage Endpoint GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "user", + "in": "query", + "required": false, + "type": "string", + "description": "Specifies the id of the user whose default storage endpoint is retrieved. If not specified, the default storage endpoint of the current user is retrieved. Using this parameter is allowed for Global Admin only." + }, + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or eDiscovery Administrator who has been assigned the corresponding privilege, can enter another user’s GUID so that all Content API actions are performed on behalf of that user.
If this header is not used or the Administrator has not been assigned the corresponding privilege, the API works on behalf of the currently authenticated Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "$ref": "#/definitions/Storage_Endpoint_GET" + }, + "examples": { + "application/json": "[{\"Id\": \"11111111-1111-1111-1111-111111111111\",\"Name\": \"Syncplicity Cloud Storage US\",\"Description\": \"Syncplicity Cloud Storage US\",\"CompanyId\": \"11111111-1111-1111-1111-111111111111\",\"Active\": true,\"Urls\": [{\"Url\": \"https:\\/\\/data.syncplicity.com\"}],\"Version\": 0,\"SizeGb\": 10000,\"RequiresStorageAuthentication\": false,\"UserHasStoragePassword\": false,\"Company\": null,\"UserStoragePasswordStatus\": 0,\"Default\": true,\"IrmRmsOption\": 0,\"ConsumedGb\": 0,\"ProtocolVersion\": 1.6,\"SupportsWopi\": true,\"WopiHostUrl\": \"https:\\/\\/wopi.syncplicity.com\"},{\"Id\": \"11111111-1111-2222-1111-111111111111\",\"Name\": \"Syncplicity Cloud Storage EU\",\"Description\": \"Syncplicity Cloud Storage EU\",\"CompanyId\": \"11111111-1111-1111-1111-111111111111\",\"Active\": true,\"Urls\": [{\"Url\": \"https:\\/\\/data-eu.syncplicity.com\"}],\"Version\": 0,\"SizeGb\": 9240,\"RequiresStorageAuthentication\": false,\"UserHasStoragePassword\": false,\"Company\": null,\"UserStoragePasswordStatus\": 0,\"Default\": false,\"IrmRmsOption\": 0,\"ConsumedGb\": 0,\"ProtocolVersion\": 1.6,\"SupportsWopi\": true,\"WopiHostUrl\": \"https:\\/\\/wopi-eu.syncplicity.com\"}]" + } + }, + "400": { + "description": "(Bad Request) - Invalid input" + }, + "401": { + "description": "(Unauthorized) - Not Authorized" + }, + "403": { + "description": "(Forbidden) - The caller is attempting to obtain StorageVault information not as an administrator
(Forbidden) - User Not Authorized For Action
(Forbidden) - Request Came From An Unapproved IP Address" + }, + "404": { + "description": "(Not Found) - Storage Endpoint Not Found or Owner Does Not Exist" + } + } + } + }, + "/storage/storageendpoint.svc/{ENDPOINT_ID}": { + "get": { + "tags": [ + "Files/Folder Metadata" + ], + "summary": "Get storage endpoint by ID", + "description": "Retrieves metadata and details about the exact storage endpoint (StorageVault) identified by the endpoint’s GUID. Administrator permission is required for this call.
Required Scope: Files/Folder Metadata, Read", + "operationId": "Storage Endpoint GET", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "As-User", + "in": "header", + "required": false, + "type": "string", + "description": "A Global Administrator, or
eDiscovery Administrator who has been
assigned the corresponding privilege, can
enter another user’s GUID so that all
Content API actions are performed on
behalf of that user.
If this header is not used or
the Administrator has not been assigned
the corresponding privilege, the API works
on behalf of the currently authenticated
Global or eDiscovery Administrator." + } + ], + "responses": { + "200": { + "description": "Status 200", + "schema": { + "$ref": "#/definitions/Storage_Endpoint_GET" + }, + "examples": { + "application/json": "[{\"Id\": \"11111111-1111-1111-1111-111111111111\",\"Name\": \"Syncplicity Cloud Storage US\",\"Description\": \"Syncplicity Cloud Storage US\",\"CompanyId\": \"11111111-1111-1111-1111-111111111111\",\"Active\": true,\"Urls\": [{\"Url\": \"https:\\/\\/data.syncplicity.com\"}],\"Version\": 0,\"SizeGb\": 10000,\"RequiresStorageAuthentication\": false,\"UserHasStoragePassword\": false,\"Company\": null,\"UserStoragePasswordStatus\": 0,\"Default\": true,\"IrmRmsOption\": 0,\"ConsumedGb\": 0,\"ProtocolVersion\": 1.6,\"SupportsWopi\": true,\"WopiHostUrl\": \"https:\\/\\/wopi.syncplicity.com\"},{\"Id\": \"11111111-1111-2222-1111-111111111111\",\"Name\": \"Syncplicity Cloud Storage EU\",\"Description\": \"Syncplicity Cloud Storage EU\",\"CompanyId\": \"11111111-1111-1111-1111-111111111111\",\"Active\": true,\"Urls\": [{\"Url\": \"https:\\/\\/data-eu.syncplicity.com\"}],\"Version\": 0,\"SizeGb\": 9240,\"RequiresStorageAuthentication\": false,\"UserHasStoragePassword\": false,\"Company\": null,\"UserStoragePasswordStatus\": 0,\"Default\": false,\"IrmRmsOption\": 0,\"ConsumedGb\": 0,\"ProtocolVersion\": 1.6,\"SupportsWopi\": true,\"WopiHostUrl\": \"https:\\/\\/wopi-eu.syncplicity.com\"}]" + } + }, + "400": { + "description": "(Bad Request) - Invalid input" + }, + "401": { + "description": "(Unauthorized) - Not Authorized" + }, + "403": { + "description": "(Forbidden) - The caller is attempting to obtain StorageVault information not as an administrator
(Forbidden) - User Not Authorized For Action
(Forbidden) - Request Came From An Unapproved IP Address" + }, + "404": { + "description": "(Not Found) - Storage Endpoint Not Found or Owner Does Not Exist or Invalid Storage Endpoint ID" + } + } + }, + "parameters": [ + { + "name": "ENDPOINT_ID", + "in": "path", + "required": true, + "type": "string", + "description": "Unique ID associated with the storage endpoint (Guid)" + } + ] + } + }, + "definitions": { + "Users_POST_response": { + "type": "object", + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the user" + }, + "FirstName": { + "type": "string", + "description": "First name of the user" + }, + "LastName": { + "type": "string", + "description": "Last name of the user" + }, + "Company": { + "$ref": "#/definitions/Users_POST_response_Company" + }, + "Active": { + "type": "boolean", + "description": "When set to false, the user's account is cancelled, all content is scheduled for deletion/purge." + }, + "Disabled": { + "type": "boolean", + "description": "Shows whether account is disabled such that the user cannot log in. The user's content remains intact." + }, + "AccountType": { + "type": "integer", + "description": "Account type of the user.
0 - Unknown: A type was not provided
1-2 - Do not use it
3 - PaidBusiness: A user who is subscribed to Syncplicity as part of a business account.
4-6 - Do not use it
7 - LimitedBusiness: users who have been added to a company account but not yet provided their personal details
8-13 - Do not use it
14 - TrialBusiness: A user who is subscribed to Syncplicity as part of a business trial account and hasn't previous subscription
16 - PendingBusiness: A user who is suggested to be added to a company account, but not yet approved by a company administrator", + "enum": [ + "0", + "3", + "7", + "14", + "16" + ] + }, + "Roles": { + "type": "array", + "description": "Role(s) of the user. Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator) 7 - API User", + "items": { + "type": "integer", + "description": "Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator) 7 - API User", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + } + }, + "Users_Put_response": { + "type": "object", + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the user" + }, + "FirstName": { + "type": "string", + "description": "First name of the user. Skipped if was not set or changed" + }, + "LastName": { + "type": "string", + "description": "Last name of the user. Skipped if was not set or changed" + }, + "Company": { + "$ref": "#/definitions/Company" + }, + "Active": { + "type": "boolean", + "description": "When set to false, the user's account is cancelled, all content is scheduled for deletion/purge. Skipped if was not set or changed" + }, + "Disabled": { + "type": "boolean", + "description": "Shows whether account is disabled such that the user cannot log in. The user's content remains intact. Skipped for active users or if user's flag Active was not changed. Skipped if was not set or changed" + }, + "AccountType": { + "type": "integer", + "description": "Account type of the user.
0 - Unknown: A type was not provided
1-2 - Do not use it
3 - PaidBusiness: A user who is subscribed to Syncplicity as part of a business account.
4-6 - Do not use it
7 - LimitedBusiness: users who have been added to a company account but not yet provided their personal details
8-13 - Do not use it
14 - TrialBusiness: A user who is subscribed to Syncplicity as part of a business trial account and hasn't previous subscription
16 - PendingBusiness: A user who is suggested to be added to a company account, but not yet approved by a company administrator", + "enum": [ + "0", + "3", + "7", + "14", + "16" + ] + }, + "Roles": { + "type": "array", + "description": "Role(s) of the user. Skipped if was not set or changed. Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator)", + "items": { + "type": "integer", + "description": "Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator)", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ] + } + } + } + }, + "Users_POST_response_Company": { + "type": "object", + "required": [ + "Name" + ], + "properties": { + "Name": { + "type": "string", + "description": "Name of the company" + } + } + }, + "Company": { + "type": "object", + "description": "Company information", + "required": [ + "Name", + "Seats", + "SeatsUsed", + "Storage", + "StorageUsed" + ], + "properties": { + "Name": { + "type": "string", + "description": "Name of the company" + }, + "Owner": { + "$ref": "#/definitions/Owner", + "description": "Company owner information. This field is not returned if current user is not an administrator of the company" + }, + "Storage": { + "type": "string", + "description": "Max storage in the company, in GB" + }, + "Seats": { + "type": "integer", + "description": "Max allowed seats in the company" + }, + "AccountType": { + "type": "integer", + "description": "Account type of the company.
0 - Unknown
1 - BusinessEdition
2 - BusinessEditionWithPremiumSupport
3 - EnterpriseEdition
4 - AccessEdition
5 - DepartmentEdition
7 - LimitedBusiness: users who have been added to a company account but not yet provided their personal details.
This field is not returned if current user is not an administrator of the company", + "enum": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "SeatsUsed": { + "type": "integer", + "description": "Used seats in the company" + }, + "StorageUsed": { + "type": "string", + "description": "Used storage in the company" + }, + "TrialEndDateUtc": { + "type": "string", + "format": "wcf-date-time", + "description": "If the company is in trial period, returns the date when trial period expires. This field is not returned if current user is not an administrator of the company. See FAQ for wcf-date-time format details" + }, + "SubscriptionPlan": { + "$ref": "#/definitions/SubscriptionPlan" + } + } + }, + "SubscriptionPlan": { + "type": "object", + "description": "Describes a subscription plan of a company", + "required": [ + "PremiumSupport" + ], + "properties": { + "PremiumSupport": { + "type": "boolean", + "description": "Specifies if premium support is provided to the company" + }, + "Type": { + "type": "integer", + "description": "Subscription type:
1 - Personal Edition,
2 - Business Edition,
3 - Enterprise Edition,
4 - Department Edition", + "enum": [ + 1, + 2, + 3, + 4 + ] + }, + "RenewalDateUtc": { + "type": "string", + "format": "wcf-date-time", + "description": "The subscription renewal date. See FAQ for wcf-date-time format details" + }, + "BillingInterval": { + "type": "number", + "description": "Billing interval:
1 - Monthly,
2 - Yearly", + "enum": [ + 1, + 2 + ] + } + } + }, + "CompanyUsers_Get": { + "type": "object", + "required": [ + "Active", + "EmailAddress", + "FirstName", + "Id", + "LastName", + "Roles", + "Status" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique identity of user" + }, + "EmailAddress": { + "type": "string", + "description": "Email address of the user" + }, + "FirstName": { + "type": "string", + "description": "First name of the user" + }, + "LastName": { + "type": "string", + "description": "Last name of the user" + }, + "Roles": { + "type": "array", + "description": "Role(s) of the user. Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator)", + "items": { + "type": "integer", + "description": "Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator) 7 - API User", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + }, + "Active": { + "type": "boolean", + "description": "Shows if user is active. When set to false, the user's account is cancelled, all content is scheduled for deletion/purge." + }, + "Status": { + "type": "integer", + "description": "Possible users statuses:
0 - Unknown
1 - Disabled (Disabled User Account)
2 - Enabled (Active User Account)
3 - Delinquent (Payment required)
4 - PendingActivation (Pending activation users (in time of registration))
5 - Unverified (Signed up users, which have not yet verified their email address)
6 - Suspended (Over-quota users who have failed to take corrective action(s))", + "enum": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ] + } + }, + "description": "Company user definition" + }, + "User_Get": { + "type": "object", + "required": [ + "AccountType", + "CreatedDateUtc", + "EmailAddress", + "FirstName", + "Id", + "LastName", + "Roles", + "Status" + ], + "properties": { + "Id": { + "type": "string", + "description": "User's identity" + }, + "EmailAddress": { + "type": "string", + "description": "Email address of the user" + }, + "FirstName": { + "type": "string", + "description": "First name of the user" + }, + "LastName": { + "type": "string", + "description": "Last name of the user" + }, + "AccountType": { + "type": "integer", + "description": "Account type of the user.
0 - Unknown: A type was not provided
1-2 - Do not use it
3 - PaidBusiness: A user who is subscribed to Syncplicity as part of a business account.
4-6 - Do not use it
7 - LimitedBusiness: users who have been added to a company account but not yet provided their personal details
8-13 - Do not use it
14 - TrialBusiness: A user who is subscribed to Syncplicity as part of a business trial account and hasn't previous subscription
16 - PendingBusiness: A user who is suggested to be added to a company account, but not yet approved by a company administrator", + "enum": [ + "0", + "3", + "7", + "14", + "16" + ] + }, + "Roles": { + "type": "array", + "description": "Role(s) of the user. Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator) 7 - API User", + "items": { + "type": "integer", + "description": "Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator) 7 - API User", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + }, + "Status": { + "type": "integer", + "description": "Possible users statuses:
0 - Unknown
1 - Disabled (Disabled User Account)
2 - Enabled (Active User Account)
3 - Delinquent (Payment required)
4 - PendingActivation (Pending activation users (in time of registration))
5 - Unverified (Signed up users, which have not yet verified their email address)
6 - Suspended (Over-quota users who have failed to take corrective action(s))", + "enum": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ] + }, + "LastLoginDateUtc": { + "type": "string", + "format": "wcf-date-time", + "description": "Date of last log in of the user. Will be absent if the user never logs in via client or website. See FAQ for wcf-date-time format details" + }, + "CreatedDateUtc": { + "type": "string", + "format": "wcf-date-time", + "description": "Creation date of the user. See FAQ for wcf-date-time format details" + } + }, + "description": "Information about Syncplicity user account " + }, + "Users_Put": { + "type": "object", + "required": [ + "EmailAddress", + "Roles" + ], + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address to set for the user" + }, + "FirstName": { + "type": "string", + "description": "If the property is specified, user first name will be updated to this new value" + }, + "LastName": { + "type": "string", + "description": "If the property is specified, user last name will be updated to this new value" + }, + "Password": { + "type": "string", + "description": "If the property is specified, user password will be updated to this new value" + }, + "Roles": { + "type": "array", + "description": "Updated role(s) for the user. Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator)", + "items": { + "type": "integer", + "description": "Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator)", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ] + } + }, + "Disabled": { + "type": "boolean", + "description": "Set to true to disable user's account, so the user will not be able to log in. The user's content remains intact." + } + }, + "description": "Information about Syncplicity user account " + }, + "User_Put": { + "type": "object", + "properties": { + "EmailAddress": { + "type": "string", + "description": "If the property is specified, user email will be updated to this new value" + }, + "FirstName": { + "type": "string", + "description": "If the property is specified, user first name will be updated to this new value" + }, + "LastName": { + "type": "string", + "description": "If the property is specified, user last name will be updated to this new value" + }, + "Password": { + "type": "string", + "description": "If the property is specified, user password will be updated to this new value" + }, + "Roles": { + "type": "array", + "description": "Updated role(s) for the user. Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator)", + "items": { + "type": "integer", + "description": "Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator)", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ] + } + }, + "Disabled": { + "type": "boolean", + "description": "Set to true to disable user's account, so the user will not be able to log in. The user's content remains intact." + } + }, + "description": "Information about Syncplicity user account " + }, + "Machine_Get": { + "type": "object", + "required": [ + "Id", + "Name" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID associated with the target machine" + }, + "Name": { + "type": "string", + "description": "Name of the target machine" + }, + "Token": { + "type": "string", + "description": "Unique token of the target machine" + }, + "Owner": { + "$ref": "#/definitions/Machine_Get_Owner" + } + }, + "description": "Definitions for fields used for the Linked devices API." + }, + "Machine_Get_Owner": { + "type": "object", + "required": [ + "Id", + "EmailAddress" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID associated with the user" + }, + "EmailAddress": { + "type": "string", + "description": "Email address of the owner" + } + }, + "description": "Owner object definition" + }, + "Machines_Get": { + "type": "object", + "required": [ + "Id", + "Name" + ], + "properties": { + "ClientVersion": { + "type": "string", + "description": "Version of the client used on the target machine" + }, + "Id": { + "type": "string", + "description": "Unique ID associated with the target machine" + }, + "Name": { + "type": "string", + "description": "Name of the target machine" + }, + "SystemName": { + "type": "string", + "description": "Name of system used on the target machine" + }, + "SystemVersion": { + "type": "string", + "description": "System version used on the target machine" + }, + "Token": { + "type": "string", + "description": "Unique token of the target machine" + }, + "LastLoginDateUtc": { + "type": "string", + "format": "wcf-date-time", + "description": "Date of last log in of the machine. See FAQ for wcf-date-time format details" + } + }, + "description": "Definitions for fields used for the Linked devices API." + }, + "Machines_Post": { + "type": "object", + "required": [ + "Name" + ], + "properties": { + "Name": { + "type": "string", + "description": "Name of the target machine" + }, + "SystemName": { + "type": "string", + "description": "Name of system used on the target machine" + }, + "SystemVersion": { + "type": "string", + "description": "System version used on the target machine" + }, + "ClientVersion": { + "type": "string", + "description": "Version of the client used on the target machine" + } + }, + "description": "Definitions for fields used for the Linked devices API." + }, + "Machines_Post_response": { + "type": "object", + "required": [ + "Id", + "Name" + ], + "properties": { + "ClientVersion": { + "type": "string", + "description": "Version of the client used on the target machine" + }, + "Id": { + "type": "string", + "description": "Unique ID associated with the target machine" + }, + "Name": { + "type": "string", + "description": "Name of the target machine" + }, + "SystemName": { + "type": "string", + "description": "Name of system used on the target machine" + }, + "SystemVersion": { + "type": "string", + "description": "System version used on the target machine" + }, + "Token": { + "type": "string", + "description": "Unique token of the target machine" + } + }, + "description": "Definitions for fields used for the Linked devices API." + }, + "UserGroup_Get": { + "type": "object", + "required": [ + "Id", + "Name" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID associated with each company group" + }, + "Name": { + "type": "string", + "description": "Name of the group" + }, + "StorageQuotas": { + "type": "array", + "description": "Defines the quotas associated with the user group", + "items": { + "$ref": "#/definitions/StorageQuota" + } + } + }, + "description": "Definitions for fields used for the Group APIs." + }, + "Groups_Get": { + "type": "object", + "required": [ + "Company", + "Id", + "Name", + "Owner", + "PolicySet" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID associated with each company group" + }, + "Name": { + "type": "string", + "description": "Name of the group" + }, + "Owner": { + "$ref": "#/definitions/ResourceMember" + }, + "Company": { + "$ref": "#/definitions/ResourceCompany" + }, + "Members": { + "type": "array", + "description": "Array of member information. Only returned if include is set to 'members'", + "items": { + "$ref": "#/definitions/ResourceMember" + } + }, + "StorageQuotas": { + "type": "array", + "description": "Defines the quotas associated with the user group. Returned only if quotas are defined.", + "items": { + "$ref": "#/definitions/StorageQuota" + } + }, + "PolicySet": { + "description": "If there is a policyset, linked to the group, this field will contain description of this policyset. If no - company default policyset will be returned", + "$ref": "#/definitions/Group_PolicySet" + }, + "PolicySets": { + "type": "array", + "description": "List of PolicySets associated with the group: linked to the group (or company default one), home directory, storage policysets", + "items": { + "$ref": "#/definitions/Group_PolicySet" + } + } + }, + "description": "Definitions for fields used for the Group APIs." + }, + "ResourceCompany": { + "type": "object", + "required": [ + "Id", + "Name" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID associated with the company" + }, + "Name": { + "type": "string", + "description": "Name of an owner of the company" + } + }, + "description": "Company information" + }, + "ResourceMember": { + "type": "object", + "required": [ + "EmailAddress", + "FirstName", + "LastName" + ], + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the user" + }, + "FirstName": { + "type": "string", + "description": "First name of the user" + }, + "LastName": { + "type": "string", + "description": "Last name of the user" + } + } + }, + "ResourceGroup": { + "type": "object", + "required": [ + "Id", + "Name" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID associated with the each company group" + }, + "Name": { + "type": "string", + "description": "Name of the group" + } + }, + "description": "Group information" + }, + "ResourcePolicy": { + "type": "object", + "required": [ + "AdminIpRestrictionPolicy", + "AdminPasswordComplexityPolicy", + "BandwidthRestrictionDownloadPolicy", + "BandwidthRestrictionPolicy", + "BandwidthRestrictionUploadPolicy", + "BandwidthRestrictionUploadSize", + "BranchingPolicy", + "ClientAutoUpdatePolicy", + "ClientPreconfiguredPolicy", + "DesktopShareLinkFlowPolicy", + "EnforceClientMemberActiveDirectoryPolicy", + "EnforceClientMemberActiveDirectoryPolicyDomains", + "EntitySetType", + "FileExclusionPolicy", + "FileExclusions", + "GeolocationPrivacyPolicy", + "IncludeOwnerInFolderNamePolicy", + "MobileUnencryptedSyncPolicy", + "NetworkShareConnectorPolicy", + "NetworkShareConnectors", + "OpenInPolicy", + "OutlookClientAutoUpdatePolicy", + "OutlookFileExclusionPolicy", + "OutlookFileExclusionValues", + "OutlookFileSizePolicy", + "OutlookFileSizeValue", + "OutlookIntegrationPolicy", + "OutlookShareLinkPasswordComplexity", + "OutlookShareLinkPasswordLength", + "OutlookSharedLinkAccessPolicy", + "OutlookSharedLinkExpirationDays", + "OutlookSharedLinkExpirationPolicy", + "OutlookSharedLinkPasswordProtectionPolicy", + "PasscodeEnforcementPolicy", + "PasscodeFailurePolicy", + "RemoteWipeEndpointPolicy", + "RemoteWipeSyncpointPolicy", + "RemoteWipeUsersPolicy", + "ReportExportOutputFolderPolicy", + "RestrictMobileAccessPolicy", + "RestrictWebsiteAccessPolicy", + "RssNewsFeedPolicy", + "ShareLinkExpirationPolicy", + "ShareLinkExpireInDays", + "ShareLinkPasswordComplexity", + "ShareLinkPasswordLength", + "ShareLinkPasswordProtectedPolicy", + "ShareLinkPolicy", + "SharePointConnectorPolicy", + "ShareableLinkPolicy", + "SharedFolderPolicy", + "SharedFolderResharingPolicy", + "SilentOnboardDefaultLocationPolicy", + "SilentOnboardDisplayCustomFolderScreenPolicy", + "SilentOnboardDisplayMachineScreenPolicy", + "SilentOnboardDisplayTutorialScreensPolicy", + "SilentOnboardMacDefaultLocationPolicy", + "SilentOnboardMacDefaultLocationValue", + "SilentOnboardPolicy", + "SilentOnboardWinDefaultLocationPolicy", + "SilentOnboardWinDefaultLocationValue" + ], + "properties": { + "ClientAutoUpdatePolicy": { + "type": "integer", + "description": "An enumeration of possible desktop client update behaviors
0 - Unknown: value ignored
1 - None: Do not notify users about any updates
2 - StorageSet: Only notify users about critical (non-optional) updates
3 - HomeDirectorySet: Notify users about all updates", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "ShareableLinkPolicy": { + "type": "integer", + "description": "An enumeration of possible shareable link policies
0 - Unknown
1 - DisallowAll: Disable shareable links
2 - InternalOnly: Links can only be shared with folks in the same company
3 - AllowAll: Allow sharing with anyone", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "ClientPreconfiguredPolicy": { + "type": "integer", + "description": "An enumeration of possible preconfigure settings for desktop clients policies
0 - Unknown: Nothing is known about the pre-configuration policy for this company
1 - AllMachinesArePreconfigured: All machines for this company are preconfigured
2 - NoMachinesArePreconfigured: No machines for this company are preconfigured", + "enum": [ + 0, + 1, + 2 + ] + }, + "SharedFolderPolicy": { + "type": "integer", + "description": "An enumeration of possible share folder restrictions
0 - Unknown: Default policy
1 - DisallowAll: Disable shared folders
2 - InternalOnly: Folders can only be shared with users in the same company
3 - AllowAll: Allow sharing with anyone", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "IncludeOwnerInFolderNamePolicy": { + "type": "integer", + "description": "An enumeration of possible include owner policies for a company
0 - Unknown: Nothing is known about the include owner policy for this company
1 - Included: Owner name is included
2 - Ignored: Owner name is ignored", + "enum": [ + 0, + 1, + 2 + ] + }, + "RemoteWipeSyncpointPolicy": { + "type": "integer", + "description": "An enumeration of possible remote wipe syncpoint policies for a company. A syncpoint is the top-level folder that is registered with the Syncplicity software.
0 - Unknown: Default value
1 - Disabled: Do not remote wipe a syncpoint when a user loses access
2 - Enabled: Remote wipe a syncpoint when a user loses access", + "enum": [ + 0, + 1, + 2 + ] + }, + "MobileSyncPolicy": { + "type": "integer", + "description": "An enumeration of possible mobile sync policies for a company
0 - Unknown: Default policy
1 - All: Users can synchronize files and folders to their iOS and Android devices on any network
2 - WiFiOnly: Users can synchronize files and folders to their iOS and Android devices, but only when the device is connected to a Wi-Fi hotspot (synchronization on 3G/4G/WiMax is disallowed)
3 - WiFiCellular: Users can synchronize files and folders to their iOS and Android devices, but only when the device is connected to a home network (i.e. not roaming) or a Wi-Fi hotspot
4 - Disabled: Automatic synchronization is disabled on all mobile devices", + "enum": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + "MobileUnencryptedSyncPolicy": { + "type": "integer", + "description": "An enumeration of possible mobile unencrypted sync policies for a company
0 - Unknown: Default policy
1 - Disabled: Disallow unencrypted sync; require users to sync only to an encrypted cache managed by Syncplicity
2 - Enabled: Allow users to synchronize files and folders to an SD card where they reside unencrypted", + "enum": [ + 0, + 1, + 2 + ] + }, + "MobileDataSyncLimit": { + "$ref": "#/definitions/PolicySet_MobileDataSyncLimit" + }, + "ShareLinkPasswordProtectedPolicy": { + "type": "integer", + "description": "An enumeration of possible password protected policy behaviours
0 - Unknown: Default policy
1 - Disabled: Do not require user to create password for shared links
2 - Enabled: Require user to create password for all shared links", + "enum": [ + 0, + 1, + 2 + ] + }, + "ShareLinkPasswordComplexity": { + "type": "integer", + "description": "Password complexity options
0 - Unknown: Default value
1 - Default: Password may contain any character
2 - Complex: Password requires at least one upper-case, one digit and one special character", + "enum": [ + 0, + 1, + 2 + ] + }, + "ShareLinkPasswordLength": { + "type": "integer", + "description": "Password length" + }, + "ShareLinkExpirationPolicy": { + "type": "integer", + "description": "Share link expiration option
0 - Unknown: Default value
1 - Enabled: Expiration policy is enabled
2 - Disabled: Expiration policy is disabled", + "enum": [ + 0, + 1, + 2 + ] + }, + "ShareLinkExpireInDays": { + "type": "integer", + "description": "Share link expiration in days if ShareLinkExpirationPolicy is set to 1", + "minimum": 0 + }, + "ShareLinkPolicy": { + "type": "integer", + "description": "Determines the allowed behavior regarding with whom a share link can be sent
0 - Unknown: Default policy
1 - Not supported currently, ignore this value
2 - InternalOnly: Links can only be shared with users in the same company
3 - AllowAll: Allow sharing with anyone
4 - IntendedOnly: Links can only be shared with list of intended users and groups", + "enum": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + "DesktopShareLinkFlowPolicy": { + "type": "integer", + "description": "Determines whether the desktop client can share a link inside the application or must navigate to the website
0 - Unknown: Default policy
1 - InPlace: Display the share link directly in the client (currently not supported)
2 - RedirectToMySite: Take the user to My site", + "enum": [ + 0, + 1, + 2 + ] + }, + "ReportExportOutputFolderPolicy": { + "type": "integer", + "description": "An enumeration of possible report export output policies for a company
0 - Unknown: Default policy
1 - SingleVirtualFolder: Export to a single virtual folder
2 - SeparateVirtualFoldersByReportType: Use separate virtual folders for each report type", + "enum": [ + 0, + 1, + 2 + ] + }, + "AdminIpRestrictionPolicy": { + "type": "string", + "description": "Policy to allow admin users to authenticate only from specific IP addresses
0 - Unknown: Default policy
1 - Disabled: Restriction policy is disabled
2 - Enabled: Restriction policy is enabled", + "enum": [ + "0", + "1", + "2" + ] + }, + "AdminIpRestriction": { + "$ref": "#/definitions/PolicySet_AdminIpRestiction" + }, + "AdminPasswordComplexityPolicy": { + "type": "integer", + "description": "Password complexity rules to apply for admin passwords specifically
0 - Unknown: Default policy
1 - Disabled: Company administrators have no restrictions when creating their passwords
2 - Enabled: Company administrators are restricted to creating passwords of a specified minimum complexity", + "enum": [ + 0, + 1, + 2 + ] + }, + "AdminPasswordComplexity": { + "$ref": "#/definitions/PolicySet_AdminPasswordComplexity" + }, + "RestrictMobileAccessPolicy": { + "type": "integer", + "description": "Enables or disables mobile client access
0 - Unknown: Default value
1 - Disabled: Restriction policy is disabled
2 - Enabled: Restriction policy is enabled
3 - MdmOnly: Allow only Mdm devices", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "RestrictWebsiteAccessPolicy": { + "type": "integer", + "description": "Enables or disables website access
0 - Unknown: Default value
1 - Disabled: Restriction policy is disabled
2 - Enabled: Restriction policy is enabled", + "enum": [ + 0, + 1, + 2 + ] + }, + "RssNewsFeedPolicy": { + "type": "integer", + "description": "Enables or disables RSS feed access
0 - Unknown: Default value
1 - Disabled: Company users will not be able to subscribe to any RSS feeds
2 - Enabled: Company users will be able to subscribe to any RSS feeds", + "enum": [ + 0, + 1, + 2 + ] + }, + "BranchingPolicy": { + "type": "integer", + "description": "Enables or disables automatic conflict resolution by file branching
0 - Unknown: Default value
1 - Disabled: Do not branch any files
2 - All: Branch all files", + "enum": [ + 0, + 1, + 2 + ] + }, + "RemoteWipeUsersPolicy": { + "type": "integer", + "description": "Enables or disables remote wipe capability for desktop and mobile clients
0 - Unknown: Default value
1 - Disabled: Policy is disabled
2 - Enabled: Policy is enabled", + "enum": [ + 0, + 1, + 2 + ] + }, + "RemoteWipeEndpointPolicy": { + "type": "integer", + "description": "Enables or disables the endpoint remote wipe
0 - Unknown: Default value
1 - Disabled: Policy is disabled
2 - Enabled: Policy is enabled", + "enum": [ + 0, + 1, + 2 + ] + }, + "EnforceClientMemberActiveDirectoryPolicy": { + "type": "integer", + "description": "Enables or disables policy to enforce all clients to be a member of active directory
0 - Unknown: Default value
1 - Disabled: Policy is disabled
2 - Liberal: All clients on platforms like Windows must be members of an active directory.
3 - Strict: All clients, even those on platforms like OSX that don’t support active directory, must be joined to a known active directory.", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "EnforceClientMemberActiveDirectoryPolicyDomains": { + "type": "string", + "description": "List of domains that are part of the active directory" + }, + "IrmPolicy": { + "$ref": "#/definitions/PolicySet_IrmPolicy" + }, + "DefaultStorageEndpointId": { + "type": "string", + "description": "Guid of the default storage endpoint" + }, + "PasscodeEnforcementPolicy": { + "type": "integer", + "description": "Allow an IT admin to enforce the use of a passcode. If enabled, users need to set a passcode on first use or next use.
0 - Unknown: Default value
1 - Disabled: Passcode Enforcement Policy is disabled (default)
2 - Enabled: Passcode enforcement policy is enabled", + "enum": [ + 0, + 1, + 2 + ] + }, + "PasscodeFailurePolicy": { + "type": "integer", + "description": "If users type an incorrect passcode x times, the user is logged out and the cache is deleted.
0 - Unknown: Default value
1 - Disabled: Passcode Failure Policy is disabled (default)
2 - Enabled: Passcode failure policy is enabled.", + "enum": [ + 0, + 1, + 2 + ] + }, + "PasscodeFailures": { + "$ref": "#/definitions/PolicySet_PasscodeFailures" + }, + "OpenInPolicy": { + "type": "integer", + "description": "Enables or disables the mobile client from opening files within a separate mobile application.
0 - Unknown: Default value
1 - Disabled: Open-In Policy is disabled (default)
2 - Enabled: Open-In Policy is enabled", + "enum": [ + 0, + 1, + 2 + ] + }, + "SharedFolderResharingPolicy": { + "type": "integer", + "description": "Enables or disables the folder reshare policy. Reshare is when a participant of a share wants to re-share the folder with a new participant.
0 - Unknown: Default value
1 - DisallowAll: Disable folder resharing for external users. Folders can only be reshared by users in the same company.
2 - ExternalEditorOnly: Folders can only be reshared by external users who have editor permissions
3 - AllowAll: Allow resharing by anyone", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "GeolocationPrivacyPolicy": { + "type": "integer", + "description": "Enables or disables geo-location tracking.
0 - Unknown: Default value
1 - Disallow: Disallow geo-location tracking
2 - Allow: Allow the ability to track geo-location information", + "enum": [ + 0, + 1, + 2 + ] + }, + "SharePointConnectorPolicy": { + "type": "integer", + "description": "Enables or disables SharePoint connector policies.
0 - Unknown: Default value
1 - Disabled: Disables SharePointConnector policy
2 - Enabled: Enables SharePointConnector policy", + "enum": [ + 0, + 1, + 2 + ] + }, + "SharePointConnectors": { + "type": "array", + "description": "Policies related to SharePoint connectors", + "items": { + "$ref": "#/definitions/PolicySet_SharepointConnector" + } + }, + "NetworkShareConnectorPolicy": { + "type": "integer", + "description": "Enables or disables policies related to network share (CIFS) connectors.
0 - Unknown: Default value
1 - Disabled: Disables NetworkShareConnector policy
2 - Enabled: Enables NetworkShareConnector policy", + "enum": [ + 0, + 1, + 2 + ] + }, + "NetworkShareConnectors": { + "type": "array", + "description": "Network share policies", + "items": { + "$ref": "#/definitions/PolicySet_NetworkShareConnector" + } + }, + "HomeDirectoryPolicy": { + "$ref": "#/definitions/PolicySet_HomeDirectoryPolicy" + }, + "FileExclusionPolicy": { + "type": "integer", + "description": "Policy to enable global file exclusions.
0 - Unknown: Default value
1 - Disabled: File Exclusion Policy is disabled
2 - Enabled: Exclusions are applied.", + "enum": [ + 0, + 1, + 2 + ] + }, + "FileExclusions": { + "type": "array", + "description": "File exclusion policies", + "items": { + "$ref": "#/definitions/PolicySet_FileExclusions" + } + }, + "OutlookClientAutoUpdatePolicy": { + "type": "integer", + "description": "0 - Unknown: Default company client policy
1 - None: Do not notify users about any updates
2 - CriticalOnly: Only notify users about critical (non-optional) updates
3 - All: Notify users about all updates", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "OutlookFileExclusionPolicy": { + "type": "integer", + "description": "Enables or disables the outlook file exclusion policy.
0 - Unknown: Default policy.
1 - Disabled: File Exclusion Policy is disabled.
2 - Enabled: Exclusions are applied.", + "enum": [ + 0, + 1, + 2 + ] + }, + "OutlookFileExclusionValues": { + "type": "array", + "description": "Outlook addon file exclusion policies", + "items": { + "$ref": "#/definitions/PolicySet_OutlookExclusionValues" + } + }, + "OutlookFileSizePolicy": { + "type": "integer", + "description": "Enables or disables the Outlook addon policy for file size restriction.
0 - Unknown: Default policy.
1 - Disabled: File Size Policy is disabled.
2 - Enabled: File size restrictions are applied.", + "enum": [ + 0, + 1, + 2 + ] + }, + "OutlookFileSizeValue": { + "type": "string", + "description": "File size in bytes to restrict from the Outlook addon" + }, + "OutlookIntegrationPolicy": { + "type": "integer", + "description": "Enables or disables the Outlook addin integration.
0 - Unknown: Default policy
1 - Enabled: Expiration policy is set on
2 - Disabled: Expiration policy is disabled
", + "enum": [ + 0, + 1, + 2 + ] + }, + "OutlookSharedLinkAccessPolicy": { + "type": "integer", + "description": "Enables or disables the Outlook share links.
0 - Unknown: Default policy
1 - Unsupported, please ignore
2 - InternalOnly: Links can only be shared with users in the same company
3 - AllowAll: Allow sharing with anyone
4 - IntendedOnly: Links can only be shared with list of intended users and groups", + "enum": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + "OutlookSharedLinkExpirationPolicy": { + "type": "integer", + "description": "Enables or disables the Outlook share link expiration.
0 - Unknown: Default policy
1 - Enabled: Expiration policy is set on
2 - Disabled: Expiration policy is disabled", + "enum": [ + 0, + 1, + 2 + ] + }, + "OutlookSharedLinkExpirationDays": { + "type": "integer", + "description": "Number of days before an Outlook share link will expire." + }, + "OutlookSharedLinkPasswordProtectionPolicy": { + "type": "integer", + "description": "Enables or disables password protected Outlook share links.
0 - Unknown: Default policy
1 - Disabled: Do not require user to create password for shared links
2 - Enabled: Require user to create password for all shared links", + "enum": [ + 0, + 1, + 2 + ] + }, + "OutlookShareLinkPasswordComplexity": { + "type": "integer", + "description": "Determines complexity for Outlook share link passwords.
0 - Unknown: Default policy
1 - Default: Password may contain any character
2 - Complex: Password requires at least one upper-case, one digit and one special character", + "enum": [ + 0, + 1, + 2 + ] + }, + "OutlookShareLinkPasswordLength": { + "type": "string", + "description": "Minimum length for Outlook share link passwords" + }, + "BandwidthRestrictionPolicy": { + "type": "integer", + "description": "Enables or disables bandwidth restrictions for clients.
0 - Unknown: Default policy
1 - Disabled: Policy is disabled
2 - Enabled: Bandwidth restrictions are applied", + "enum": [ + 0, + 1, + 2 + ] + }, + "BandwidthRestrictionUploadPolicy": { + "type": "integer", + "description": "Enables or disables upload specific bandwidth restrictions.
0 - Unknown: Default policy
1 - Disabled: Policy is disabled
2 - Enabled: Bandwidth restrictions upload policy is applied", + "enum": [ + 0, + 1, + 2 + ] + }, + "BandwidthRestrictionUploadSize": { + "type": "string", + "description": "Determines file size limit in bytes to restrict for client uploads.
If BandwidthRestrictionUploadPolicy = 2 (Enabled) it should be a number between 1 and 999999", + "minimum": 1, + "maximum": 999999 + }, + "BandwidthRestrictionDownloadPolicy": { + "type": "integer", + "description": "Enables or disables download specific bandwidth restrictions.
0 - Unknown: Default policy
1 - Disabled: Policy is disabled
2 - Enabled: Bandwidth restrictions download policy is applied", + "enum": [ + 0, + 1, + 2 + ] + }, + "BandwidthRestrictionDownloadSize": { + "type": "string", + "description": "Determines file size limit in bytes to restrict for client downloads.
If BandwidthRestrictionDownloadPolicy = 2 (Enabled) it should be a number between 1 and 999999", + "minimum": 1, + "maximum": 999999 + }, + "SilentOnboardPolicy": { + "type": "integer", + "description": "Enables or disables the silent onboard policy.
0 - Unknown: Default policy
1 - Show: Show policy property
2 - Hide: Hide policy property", + "enum": [ + 0, + 1, + 2 + ] + }, + "SilentOnboardDisplayMachineScreenPolicy": { + "type": "integer", + "description": "An enumeration of possible silent onboarding display machine screen policies.
0 - Unknown: Default policy
1 - Show: Show policy property
2 - Hide: Hide policy property", + "enum": [ + 0, + 1, + 2 + ] + }, + "SilentOnboardDisplayCustomFolderScreenPolicy": { + "type": "integer", + "description": "An enumeration of possible silent onboarding display custom folder screen policies.
0 - Unknown: Default policy
1 - Show: Show policy property
2 - Hide: Hide policy property", + "enum": [ + 0, + 1, + 2 + ] + }, + "SilentOnboardDisplayTutorialScreensPolicy": { + "type": "integer", + "description": "An enumeration of possible silent onboarding display tutorial screen policies.
0 - Unknown: Default policy
1 - Show: Show policy property
2 - Hide: Hide policy property", + "enum": [ + 0, + 1, + 2 + ] + }, + "SilentOnboardDefaultLocationPolicy": { + "type": "integer", + "description": "An enumeration of possible silent onboarding default folder location policies.
0 - Unknown: Default policy
1 - Show: Show policy property
2 - Hide: Hide policy property", + "enum": [ + 0, + 1, + 2 + ] + }, + "SilentOnboardWinDefaultLocationPolicy": { + "type": "integer", + "description": "An enumeration of possible silent onboarding default windows folder location policies.
0 - Unknown: Default policy
1 - Show: Show policy property
2 - Hide: Hide policy property", + "enum": [ + 0, + 1, + 2 + ] + }, + "SilentOnboardWinDefaultLocationValue": { + "type": "integer", + "description": "Silent onboarding Windows default location.
0 - Unknown: Default policy
1 - Show: Show policy property
2 - Hide: Hide policy property", + "enum": [ + 0, + 1, + 2 + ] + }, + "SilentOnboardMacDefaultLocationPolicy": { + "type": "integer", + "description": "An enumeration of possible silent onboarding mac default folder location policies.
0 - Unknown: Default policy
1 - Show: Show policy property
2 - Hide: Hide policy property", + "enum": [ + 0, + 1, + 2 + ] + }, + "SilentOnboardMacDefaultLocationValue": { + "type": "integer", + "description": "Silent onboarding Mac default location.
0 - Unknown: Default policy
1 - Show: Show policy property
2 - Hide: Hide policy property", + "enum": [ + 0, + 1, + 2 + ] + }, + "EntitySetType": { + "type": "integer", + "description": "Type of the applied entity set.
1 - PolicySet: General policies for the application
2 - StorageSet: Storage behavior related policies
3 - HomeDirectorySet: Home directory related policies", + "enum": [ + 1, + 2, + 3 + ] + } + }, + "description": "Policy information" + }, + "PolicySet_MobileDataSyncLimit": { + "type": "object", + "description": "Mobile synchronization policies", + "properties": { + "TransferLimit": { + "type": "string", + "description": "Limits the bandwidth for upload/download of files in bytes" + }, + "BillingCycleResetDay": { + "type": "integer", + "description": "Billing cycle day of month" + } + } + }, + "PolicySet_AdminIpRestiction": { + "required": [ + "AllowedIPs" + ], + "type": "object", + "description": "Set of policies related to admin login restrictions", + "properties": { + "AllowedIPs": { + "type": "string", + "description": "Comma separated list of allowed IPs" + }, + "Message": { + "type": "string", + "description": "Message to display if an admin attemps a login from a disallowed IP" + } + } + }, + "PolicySet_AdminPasswordComplexity": { + "required": [ + "AdminPasswordComplexityMaximumLength", + "AdminPasswordComplexityMinimumLength", + "AdminPasswordComplexityOptions" + ], + "type": "object", + "properties": { + "AdminPasswordComplexityOptions": { + "type": "integer", + "description": "Bitmap of complexity options to apply. Example a value of 14 is 2+4+8 (Lower, Upper, SpecialCharacter).
Unknown = 0
Number = 1
Lower = 2
Upper = 4
SpecialCharacter = 8
NumberOrSpecialCharacter = 16
NotDictionaryWord = 32", + "example": 39 + }, + "AdminPasswordComplexityMinimumLength": { + "type": "integer", + "description": "Minimum length for the admin password" + }, + "AdminPasswordComplexityMaximumLength": { + "type": "integer", + "description": "Maximum length for the admin password" + } + } + }, + "PolicySet_GeorestictionCountry": { + "required": [ + "CountryName" + ], + "type": "object", + "properties": { + "CountryName": { + "type": "string" + } + } + }, + "PolicySet_IrmPolicy": { + "required": [ + "GeoRestrictionPolicy", + "SecureSendPolicy" + ], + "type": "object", + "description": "IRM policies", + "properties": { + "SecureSendPolicy": { + "type": "integer", + "description": "Enables or disables IRM feature for share links
0 - Unknown: Default value
1 - Disabled: IRM-protect disabled
2 - Enabled: Allow users to decide if they want to IRM-protect shared links
3 - Forced: IRM-protect all shared links
4 - ForcedInternalOnly: IRM-protect shared links sent to users inside company
5 - ForcedExternalOnly: IRM-protect shared links sent to users outside company", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + }, + "GeoRestrictionPolicy": { + "type": "integer", + "description": "Enables or disables Geo restriction for file access
0 - Unknown: Default value
1 - AllowAll: Allow access to protected files from any location
2 - DenyList: Deny access only from list of countries
3 - PermitList: Permit access only from list of countries", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "GeoRestrictionCountryList": { + "type": "array", + "description": "List of countries to restrict from file access", + "items": { + "$ref": "#/definitions/PolicySet_GeorestictionCountry" + } + } + } + }, + "PolicySet_PasscodeFailures": { + "required": [ + "AllowablePasscodeFailures" + ], + "type": "object", + "description": "Passcode entry failure policies", + "properties": { + "AllowablePasscodeFailures": { + "type": "integer", + "description": "Number of allowed consecutive passcode entry failures
Required field if PasscodeFailures is not null. Can be equal to 0 if PasscodeFailurePolicy != 2 (Enabled)." + } + } + }, + "PolicySet_SharepointConnector": { + "required": [ + "Bookmarks", + "Enabled", + "Id", + "Name", + "Url" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Guid associated with a specific SharePoint connector" + }, + "Name": { + "type": "string", + "description": "Name of the SharePoint connector" + }, + "Url": { + "type": "string", + "description": "URL associated with the SharePoint connector" + }, + "Enabled": { + "type": "boolean", + "description": "SharePoint connector status, enabled or disabled" + }, + "Bookmarks": { + "type": "array", + "description": "List of bookmarks", + "items": { + "$ref": "#/definitions/ResourceSharePointBookmark" + } + } + } + }, + "PolicySet_NetworkShareConnector": { + "required": [ + "Bookmarks", + "Enabled", + "Id", + "Name", + "Url" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Guid associated with a network share" + }, + "Name": { + "type": "string", + "description": "Name associated with a network share" + }, + "Url": { + "type": "string", + "description": "URL associated with a network share" + }, + "Enabled": { + "type": "string", + "description": "Network share status, enabled or disabled" + }, + "Bookmarks": { + "type": "array", + "description": "Bookmarks associated with network share bookmarks", + "items": { + "$ref": "#/definitions/ResourceSharePointBookmark" + } + } + } + }, + "PolicySet_HomeDirectoryPolicy": { + "required": [ + "ConnectorId", + "ConnectorUrl", + "Name" + ], + "type": "object", + "description": "Policies related to home directory", + "properties": { + "Name": { + "type": "string", + "description": "Name of the home directory connector" + }, + "ConnectorId": { + "type": "string", + "description": "Guid of the home directory connector" + }, + "ConnectorUrl": { + "type": "string", + "description": "Url of the home directory connector" + } + } + }, + "PolicySet_FileExclusions": { + "required": [ + "Extension" + ], + "type": "object", + "properties": { + "Extension": { + "type": "string", + "description": "File extension to exclude" + } + } + }, + "PolicySet_OutlookExclusionValues": { + "required": [ + "Extension" + ], + "type": "object", + "properties": { + "Extension": { + "type": "string", + "description": "File extension to exclude from the Outlook addon integration" + } + } + }, + "ResourceSharePointBookmark": { + "type": "object", + "required": [ + "Enabled", + "Id", + "Name", + "Url" + ], + "properties": { + "Id": { + "type": "string", + "description": "Guid associated with a SharePoint bookmark" + }, + "Name": { + "type": "string", + "description": "Name associated with a SharePoint bookmark" + }, + "Url": { + "type": "string", + "description": "URL associated with a SharePoint bookmark" + }, + "Enabled": { + "type": "boolean", + "description": "Bookmark status, enabled or disabled" + } + } + }, + "StorageQuota": { + "type": "object", + "required": [ + "StorageEndpointId", + "StorageQuotaGb" + ], + "properties": { + "StorageEndpointId": { + "type": "string", + "description": "Unique ID associated with the existing storage endpoint" + }, + "StorageQuotaGb": { + "type": "string", + "description": "Volume of group storage quota represented as a number in GB for the storage endpoint" + }, + "StorageEndpoint": { + "$ref": "#/definitions/QuotaStorageEndpoint" + } + }, + "description": "Quota associated with the user group" + }, + "Group_Put_StorageQuota": { + "type": "object", + "required": [ + "StorageEndpointId", + "StorageQuotaGb" + ], + "properties": { + "StorageEndpointId": { + "type": "string", + "description": "Unique ID associated with the existing storage endpoint" + }, + "StorageQuotaGb": { + "type": "string", + "description": "Volume of group storage quota represented as a number in GB for the storage endpoint" + } + }, + "description": "Quota associated with the user group" + }, + "QuotaStorageEndpoint": { + "type": "object", + "required": [ + "Id", + "Name", + "Version" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID of the storage endpoint" + }, + "Name": { + "type": "string", + "description": "Name of the storage endpoint" + }, + "Version": { + "type": "string", + "description": "Currently unused. Always returns 0" + }, + "SizeGb": { + "type": "string", + "description": "Size in GB of the allocated storage available on the returned StorageVault." + }, + "RequiresStorageAuthentication": { + "type": "boolean", + "description": "Denotes if there is an authentication requirement." + }, + "UserHasStoragePassword": { + "type": "boolean", + "description": "Denotes if specified user has stored a password for the returned StorageVault, only used StorageVault authentication feature is enabled." + }, + "Company": { + "$ref": "#/definitions/ResourceCompany" + }, + "UserStoragePasswordStatus": { + "type": "integer", + "description": "Defines storage password status.
0 - Requires Confirmation code
1 - Has Confirmation code
2 - Has Storage password", + "enum": [ + 0, + 1, + 2 + ] + }, + "Default": { + "type": "boolean", + "description": "Denotes if this StorageVault is the default" + }, + "IrmRmsOption": { + "type": "integer", + "description": "Storage endpoint RMS option. Disabled = 0, CloudRMS = 1, OnPremRMS = 2", + "enum": [ + 0, + 1, + 2 + ] + }, + "ConsumedGb": { + "type": "string", + "description": "Consumed Storage in GB" + } + } + }, + "Groups_Post_request": { + "type": "object", + "required": [ + "Name", + "Owner" + ], + "properties": { + "Name": { + "type": "string", + "description": "Non-empty value that does not equal the name of any other group in the company" + }, + "Owner": { + "$ref": "#/definitions/Group_Owner_Email" + }, + "StorageQuotas": { + "type": "array", + "description": "Defines the quotas associated with the user group", + "items": { + "$ref": "#/definitions/StorageQuota" + } + }, + "PolicySets": { + "type": "array", + "description": "The PolicySet may contain more than one PolicySet ID reference, but only one of each type of PolicySet (PolicySet, StorageSet, HomeDirectorySet). For StorageSet and HomeDirectorySet, the company of the target group should be Enterprise.", + "items": { + "$ref": "#/definitions/Group_Policy_Id" + } + } + }, + "description": "Definitions for fields used for creating Groups via API." + }, + "Groups_Post_response": { + "type": "object", + "required": [ + "Id", + "Name", + "Owner" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID of newly created group" + }, + "Name": { + "type": "string", + "description": "Name of the group" + }, + "Owner": { + "$ref": "#/definitions/Group_Owner_Email" + }, + "StorageQuotas": { + "type": "array", + "description": "Defines the quotas associated with the user group. Array is present only when it was passed in request body before", + "items": { + "$ref": "#/definitions/StorageQuota" + } + }, + "PolicySets": { + "type": "array", + "description": "List of PolicySets associated with the group", + "items": { + "$ref": "#/definitions/Group_Post_response_PolicySet" + } + } + }, + "description": "Fields returned when creating Groups via API." + }, + "Group_Put": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Non-empty value that does not equal the name of any other group in the company" + }, + "Owner": { + "$ref": "#/definitions/Group_Owner_Email" + }, + "StorageQuotas": { + "type": "array", + "description": "Array of group's storage quotas which will replace existing quotas", + "items": { + "$ref": "#/definitions/Group_Put_StorageQuota" + } + }, + "PolicySets": { + "type": "array", + "description": "The PolicySet may contain more than one PolicySet ID reference, but only one of each type of PolicySet (PolicySet, StorageSet, HomeDirectorySet). For StorageSet and HomeDirectorySet, the company of the target group should be Enterprise. When updating a PolicySet of type StorageSet, the StorageVault feature must be enabled for the current company. When updating a PolicySet of type HomeDirectorySet, the NetworkShare Connector feature must be enabled. Please see related documentation for the Create a policyset/GET/PUT for further clarification on PolicySet types.", + "items": { + "$ref": "#/definitions/Group_Policy_Id" + } + } + }, + "description": "Definitions for fields used for updating Group via API." + }, + "Group_Owner_Email": { + "required": [ + "EmailAddress" + ], + "type": "object", + "properties": { + "EmailAddress": { + "type": "string", + "description": "New owner's email address" + } + } + }, + "Group_Policy_Id": { + "required": [ + "Id" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Unique Guid associated with the existing policy, storage or home directory set" + } + } + }, + "PolicySets_Post_Request": { + "type": "object", + "required": [ + "EntitySetType", + "Groups", + "IsDefault", + "Name", + "Policy", + "Priority" + ], + "properties": { + "Name": { + "type": "string", + "description": "Name of the PolicySet" + }, + "Priority": { + "type": "integer", + "description": "Priority of the PolicySet" + }, + "IsDefault": { + "type": "boolean", + "description": "Flag showing whether the PolicySet is default" + }, + "EntitySetType": { + "type": "integer", + "description": "1 - PolicySet: Policy behavior related policies
2 - StorageSet: Storage behavior related policies
3 - HomeDirectorySet: Home directory related policies", + "enum": [ + "1", + "2", + "3" + ] + }, + "Policy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "Groups": { + "type": "array", + "items": { + "$ref": "#/definitions/PolicySet_Group_Id" + } + } + }, + "description": "PolicySet information" + }, + "Group_PolicySet": { + "type": "object", + "required": [ + "EntitySetType", + "Id", + "Name", + "Priority" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID of PolicySet" + }, + "Name": { + "type": "string", + "description": "Name of the PolicySet" + }, + "Priority": { + "type": "integer", + "description": "Priority of the PolicySet" + }, + "IsDefault": { + "type": "boolean", + "description": "Flag showing whether the PolicySet is default" + }, + "EntitySetType": { + "type": "integer", + "description": "1 - PolicySet: Policy behavior related policies
2 - StorageSet: Storage behavior related policies
3 - HomeDirectorySet: Home directory related policies", + "enum": [ + "1", + "2", + "3" + ] + } + }, + "description": "PolicySet information" + }, + "Group_Post_response_PolicySet": { + "type": "object", + "required": [ + "Id", + "Priority", + "IsDefault" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID of PolicySet" + }, + "Priority": { + "type": "integer", + "description": "Priority of the PolicySet" + }, + "IsDefault": { + "type": "boolean", + "description": "Flag showing whether the PolicySet is default" + } + }, + "description": "PolicySet information" + }, + "PolicySets_Post_Response": { + "type": "object", + "required": [ + "EntitySetType", + "Id", + "Name", + "Policy", + "Priority" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID of PolicySet" + }, + "Name": { + "type": "string", + "description": "Name of the PolicySet" + }, + "Priority": { + "type": "integer", + "description": "Priority of the PolicySet" + }, + "IsDefault": { + "type": "boolean", + "description": "Flag showing whether the PolicySet is default" + }, + "EntitySetType": { + "type": "integer", + "description": "1 - PolicySet: Policy behavior related policies
2 - StorageSet: Storage behavior related policies
3 - HomeDirectorySet: Home directory related policies", + "enum": [ + "1", + "2", + "3" + ] + }, + "Policy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "Groups": { + "type": "array", + "description": "Groups associated with policyset", + "items": { + "$ref": "#/definitions/ResourceGroup" + } + } + }, + "description": "PolicySet information" + }, + "PolicySet_Get": { + "type": "object", + "required": [ + "EntitySetType", + "Id", + "Name", + "Policy", + "Priority" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID of PolicySet" + }, + "Name": { + "type": "string", + "description": "Name of the PolicySet" + }, + "Priority": { + "type": "integer", + "description": "Priority of the PolicySet" + }, + "IsDefault": { + "type": "boolean", + "description": "Flag showing whether the PolicySet is default" + }, + "EntitySetType": { + "type": "integer", + "description": "1 - PolicySet: Policy behavior related policies
2 - StorageSet: Storage behavior related policies
3 - HomeDirectorySet: Home directory related policies", + "enum": [ + "1", + "2", + "3" + ] + }, + "Policy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "Groups": { + "type": "array", + "description": "Groups, which use this policyset as PolicySet, StorageSet or Home Directory Set", + "items": { + "$ref": "#/definitions/ResourceGroup" + } + } + }, + "description": "PolicySet information" + }, + "PolicySet_Put_Request": { + "type": "object", + "required": [ + "EntitySetType", + "Id", + "IsDefault", + "Name", + "Priority", + "Policy" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique Id of policyset" + }, + "Name": { + "type": "string", + "description": "Name of the PolicySet" + }, + "Priority": { + "type": "integer", + "description": "Priority of the PolicySet" + }, + "IsDefault": { + "type": "boolean", + "description": "Flag showing whether the PolicySet is default" + }, + "EntitySetType": { + "type": "integer", + "description": "1 - PolicySet: Policy behavior related policies
2 - StorageSet: Storage behavior related policies
3 - HomeDirectorySet: Home directory related policies", + "enum": [ + "1", + "2", + "3" + ] + }, + "Policy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "Groups": { + "type": "array", + "items": { + "$ref": "#/definitions/PolicySet_Group_Id" + } + } + }, + "description": "PolicySet information" + }, + "PolicySet_Group_Id": { + "required": [ + "Id" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Unique group Id" + } + }, + "description": "Array of group guids, which associated with the policyset" + }, + "PolicySet_Delete": { + "type": "object", + "required": [ + "Id" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique Id of policyset (guid)" + } + }, + "description": "PolicySet Id" + }, + "Group_Delete": { + "type": "object", + "required": [ + "Id" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique Id of the group (guid)" + } + } + }, + "Owner": { + "type": "object", + "required": [ + "EmailAddress", + "FirstName", + "LastName" + ], + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the owner" + }, + "FirstName": { + "type": "string", + "description": "First name of the owner" + }, + "LastName": { + "type": "string", + "description": "Last name of the owner" + }, + "AccountType": { + "type": "integer", + "description": "Account type of the user.
0 - Unknown: A type was not provided
1-2 - Do not use it
3 - PaidBusiness: A user who is subscribed to Syncplicity as part of a business account.
4-6 - Do not use it
7 - LimitedBusiness: users who have been added to a company account but not yet provided their personal details
8-13 - Do not use it
14 - TrialBusiness: A user who is subscribed to Syncplicity as part of a business trial account and hasn't previous subscription
16 - PendingBusiness: A user who is suggested to be added to a company account, but not yet approved by a company administrator", + "enum": [ + "0", + "3", + "7", + "14", + "16" + ] + } + }, + "description": "Owner object definition" + }, + "Users_Post": { + "type": "object", + "required": [ + "AccountType", + "EmailAddress" + ], + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the user" + }, + "FirstName": { + "type": "string", + "description": "First name of the user" + }, + "LastName": { + "type": "string", + "description": "Last name of the user" + }, + "AccountType": { + "type": "integer", + "description": "Account type of the user.
0 - Unknown: A type was not provided
1-2 - Do not use it
3 - PaidBusiness: A user who is subscribed to Syncplicity as part of a business account.
4-6 - Do not use it
7 - LimitedBusiness: users who have been added to a company account but not yet provided their personal details
8-13 - Do not use it
14 - TrialBusiness: A user who is subscribed to Syncplicity as part of a business trial account and hasn't previous subscription
16 - PendingBusiness: A user who is suggested to be added to a company account, but not yet approved by a company administrator", + "enum": [ + "0", + "3", + "7", + "14", + "16" + ] + }, + "Roles": { + "type": "array", + "description": "New role(s) for the user. Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator) 7 - API User", + "items": { + "type": "integer", + "description": "Possible users roles: 1 - AccountOwner (Global administrator and account owner) 2 - Administrator (Global administrator) 3 - Support (Support tools) 4 - ReportViewer (Report viewer) 5 - SupportAdmin (Support administrator) 6 - EDiscoveryAdmin (E-Discovery administrator) 7 - API User", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + } + }, + "Group_Members_POST": { + "type": "object", + "required": [ + "EmailAddress" + ], + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the group member who will be added. The email must belong to user in company", + "maxLength": 254 + } + } + }, + "Folders_POST": { + "type": "object", + "required": [ + "Status", + "VirtualPath" + ], + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the folder's syncpoint" + }, + "Name": { + "type": "string", + "description": "Name of the folder to be created.
Note: this parameter is currently ignored and the folder name is taken from VirtualPath. However, it is recommended to correctly fill this property" + }, + "Status": { + "type": "integer", + "description": "The folder status, must be 1
1 - Added", + "enum": [ + 1 + ] + }, + "VirtualPath": { + "type": "string", + "example": "/Sub-folder 2/", + "description": "Virtual path to the created folder relative to the syncpoint. Note: the syncpoint name is not included into VirtualPath" + } + } + }, + "Folder_PUT_hidden": { + "type": "object", + "required": [ + "Name", + "Status", + "VirtualPath" + ], + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the folder's syncpoint" + }, + "Name": { + "type": "string", + "description": "Name of folder to be created (updated)" + }, + "Status": { + "type": "integer", + "description": "The folder status
0 - None
1 - Added
4 - Removed
5 - ConfirmedRemoved", + "enum": [ + 0, + 1, + 4, + 5 + ] + }, + "ParentFolderId": { + "type": "string", + "description": "New parent folder ID, use for moving folders" + }, + "VirtualPath": { + "type": "string", + "example": "/Sub-folder 2/", + "description": "Virtual path to the created folder (path from the syncpoint's point of view)" + } + } + }, + "Folder_GET": { + "type": "object", + "required": [ + "FolderId", + "Name", + "VirtualPath" + ], + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the folder syncpoint" + }, + "FolderId": { + "type": "string", + "description": "ID associated with the folder" + }, + "Name": { + "type": "string", + "description": "Name of the folder" + }, + "ParentFolderId": { + "type": "string", + "description": "ID associated with the parent folder" + }, + "VirtualPath": { + "type": "string", + "description": "Virtual path to the folder (path from the syncpoint's point of view)" + }, + "Status": { + "type": "integer", + "description": "The folder status
0 - None
1 - Added (folder exists)
4 - Removed
5 - ConfirmedRemoved (deleted permanently)", + "enum": [ + 0, + 1, + 4, + 5 + ] + }, + "Files": { + "type": "array", + "description": "List of files in the specified folder (may be empty)", + "items": { + "$ref": "#/definitions/Folder_GET_File" + } + }, + "Folders": { + "type": "array", + "description": "List of folders in the specified folder (may be empty)", + "items": { + "$ref": "#/definitions/Folder_GET" + } + } + } + }, + "Folder_GET_File": { + "type": "object", + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the file syncpoint" + }, + "FileId": { + "type": "integer", + "description": "File ID (64 bit long)" + }, + "Filename": { + "type": "string", + "description": "Name of the file" + }, + "CreationTimeUtc": { + "type": "string", + "format": "date-time", + "description": "File creation date" + }, + "LastWriteTimeUtc": { + "type": "string", + "format": "date-time", + "description": "Last write time" + }, + "DateAddedUtc": { + "type": "string", + "format": "date-time", + "description": "File upload date associated with ClientFileVersionId" + }, + "Status": { + "type": "integer", + "description": "The file status
0 - None
1 - Added (file exists)
2 - Updated
3 - Removed
4 - Ignored
5 - ConfirmedRemoved", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + }, + "LatestVersionId": { + "type": "integer", + "description": "Latest file version ID (64 bit long)" + }, + "FolderId": { + "type": "integer", + "description": "Parent folder ID (64 bit long)" + }, + "Length": { + "type": "integer", + "description": "Length of the file (64 bit long)" + }, + "ThumbnailUrl": { + "type": "string", + "description": "Thumbnail URL to the file" + } + } + }, + "Folder_Folders_GET": { + "type": "object", + "required": [ + "FolderId", + "Name", + "VirtualPath" + ], + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the folder syncpoint" + }, + "FolderId": { + "type": "string", + "description": "ID associated with the folder" + }, + "Name": { + "type": "string", + "description": "Name of the folder" + }, + "ParentFolderId": { + "type": "string", + "description": "ID associated with the parent folder" + }, + "VirtualPath": { + "type": "string", + "description": "Virtual path to the created folder (path from the syncpoint's point of view)" + }, + "Status": { + "type": "integer", + "description": "The folder status
0 - None
1 - Added
4 - Removed
5 - ConfirmedRemoved", + "enum": [ + 0, + 1, + 4, + 5 + ] + } + } + }, + "Folders_GET": { + "type": "object", + "required": [ + "FolderId", + "Name", + "VirtualPath" + ], + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the folder syncpoint" + }, + "FolderId": { + "type": "string", + "description": "ID associated with the folder" + }, + "Name": { + "type": "string", + "description": "Name of the folder" + }, + "ParentFolderId": { + "type": "string", + "description": "ID associated with the parent folder" + }, + "VirtualPath": { + "type": "string", + "description": "Virtual path to the created folder (path from the syncpoint's point of view)" + }, + "Status": { + "type": "integer", + "description": "The folder status
0 - None
1 - Added
4 - Removed
5 - ConfirmedRemoved", + "enum": [ + 0, + 1, + 4, + 5 + ] + }, + "Folders": { + "type": "array", + "description": "List of folders in the specified folder (may be empty)", + "items": { + "$ref": "#/definitions/Folders_GET" + } + } + } + }, + "File_DELETE": { + "type": "object", + "required": [ + "Filename", + "Status", + "VirtualPath" + ], + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the file syncpoint" + }, + "Filename": { + "type": "string", + "description": "Name of the file" + }, + "Status": { + "type": "integer", + "description": "The file status, should be one of:
3 - Removed
5 - ConfirmedRemoved", + "enum": [ + 3, + 5 + ] + }, + "VirtualPath": { + "type": "string", + "description": "Path to the file (without syncpoint name and filename itself). Path's delimiters are double backslashes (\\\\)" + } + } + }, + "File_GET": { + "type": "object", + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the file syncpoint" + }, + "FileId": { + "type": "integer", + "description": "File ID (64 bit long)" + }, + "VirtualPath": { + "type": "string", + "description": "Virtual path to the file relative to syncpoint" + }, + "Filename": { + "type": "string", + "description": "Name of the file" + }, + "Length": { + "type": "integer", + "description": "Length of the file (64 bit long)" + }, + "Hash": { + "type": "string", + "description": "File hash" + }, + "CreationTimeUtc": { + "type": "string", + "format": "date-time", + "description": "File creation date" + }, + "Status": { + "type": "integer", + "description": "The file status
0 - None
1 - Added (file exists)
2 - Updated
3 - Removed
4 - Ignored
5 - ConfirmedRemoved", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + }, + "LatestVersionId": { + "type": "integer", + "description": "Latest file version ID (64 bit long)" + }, + "Stored": { + "type": "boolean", + "description": "Determines if the file is stored successfully" + }, + "FolderId": { + "type": "integer", + "description": "Parent folder ID (64 bit long)" + }, + "DateAddedUtc": { + "type": "string", + "format": "date-time", + "description": "File upload date associated with ClientFileVersionId" + } + } + }, + "File_PUT_hidden": { + "type": "object", + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the file syncpoint" + }, + "FileId": { + "type": "integer", + "description": "File ID (64 bit long)" + }, + "Filename": { + "type": "string", + "description": "Name of the file" + }, + "CreationTimeUtc": { + "type": "string", + "format": "date-time", + "description": "File creation date" + }, + "LastWriteTimeUtc": { + "type": "string", + "format": "date-time", + "description": "Last write time" + }, + "DateAddedUtc": { + "type": "string", + "format": "date-time", + "description": "File upload date associated with ClientFileVersionId" + }, + "Status": { + "type": "integer", + "description": "The file status
0 - None
1 - Added (file exists)
2 - Updated
3 - Removed
4 - Ignored
5 - ConfirmedRemoved", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + }, + "LatestVersionId": { + "type": "integer", + "description": "Latest file version ID (64 bit long)" + }, + "FolderId": { + "type": "integer", + "description": "Parent folder ID (64 bit long)" + }, + "Length": { + "type": "integer", + "description": "Length of the file (64 bit long)" + }, + "ThumbnailUrl": { + "type": "string", + "description": "Thumbnail URL to the file" + } + } + }, + "Folder_File_GET": { + "type": "object", + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the file syncpoint" + }, + "FileId": { + "type": "integer", + "description": "File ID (64 bit long)" + }, + "Filename": { + "type": "string", + "description": "Name of the file" + }, + "CreationTimeUtc": { + "type": "string", + "format": "date-time", + "description": "File creation date" + }, + "LastWriteTimeUtc": { + "type": "string", + "format": "date-time", + "description": "Last write time" + }, + "DateAddedUtc": { + "type": "string", + "format": "date-time", + "description": "File upload date associated with ClientFileVersionId" + }, + "Status": { + "type": "integer", + "description": "The file status
0 - None
1 - Added
2 - Updated
3 - Removed
4 - Ignored
5 - ConfirmedRemoved", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + }, + "Stored": { + "type": "boolean", + "description": "Is file stored successfully" + }, + "LatestVersionId": { + "type": "integer", + "description": "Latest file version ID (64 bit long)" + }, + "FolderId": { + "type": "integer", + "description": "Parent folder ID (64 bit long)" + }, + "Length": { + "type": "integer", + "description": "Length of the file (64 bit long)" + } + } + }, + "File_Version_GET": { + "type": "object", + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the folder syncpoint" + }, + "Id": { + "type": "string", + "description": "ID associated with the revision number" + }, + "DataSourceName": { + "type": "string", + "description": "Data Source name (example: Web Site)" + }, + "UserName": { + "type": "string", + "description": "Name of the user who created file version" + }, + "User": { + "$ref": "#/definitions/File_Version_User" + }, + "Action": { + "type": "integer", + "description": "Action taken
0 - Added
1 - Edited
2 - Deleted
3 - Branched
4 - Renamed
5 - Confirmed Removed", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + }, + "Length": { + "type": "string", + "description": "File size" + }, + "RevisionAge": { + "type": "string", + "description": "Date string (example: 10 days ago)", + "example": "10 days ago" + }, + "DateAddedUtc": { + "type": "string", + "format": "date-time", + "description": "File upload date associated with latest version" + } + } + }, + "File_Version_User": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "User's identifier (guid)" + }, + "EmailAddress": { + "type": "string", + "description": "Email address of the user" + }, + "FirstName": { + "type": "string", + "description": "First name of the user" + }, + "LastName": { + "type": "string", + "description": "Last name of the user" + }, + "OriginalRolId": { + "type": "integer", + "description": "Home ROL Id of the user who created file version" + } + } + }, + "File_POST": { + "type": "object", + "properties": { + "SyncpointId": { + "type": "string", + "description": "ID associated with the file syncpoint" + }, + "Filename": { + "type": "string", + "description": "Name of the file" + }, + "Length": { + "type": "string", + "description": "Length of the file" + }, + "CreationTimeUtc": { + "type": "string", + "format": "date-time", + "description": "File creation time" + }, + "LastWriteTimeUtc": { + "type": "string", + "format": "date-time", + "description": "Last write time" + }, + "Status": { + "type": "integer", + "description": "The file status
0 - None
1 - Added
2 - Updated
3 - Removed
4 - Ignored
5 - ConfirmedRemoved", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + }, + "LatestVersionId": { + "type": "string", + "description": "Latest file version ID" + }, + "ThumbnailUrl": { + "type": "string", + "description": "Thumbnail URL to the file" + }, + "Hash": { + "type": "string", + "description": "File hash" + }, + "VirtualPath": { + "type": "string", + "description": "Path to file" + } + } + }, + "Folder_Folder_POST": { + "type": "object", + "required": [ + "Name", + "Status" + ], + "properties": { + "Name": { + "type": "string", + "description": "Name of folder to be created (updated)" + }, + "Status": { + "type": "integer", + "description": "The folder status
0 - None
1 - Added
4 - Removed
5 - ConfirmedRemoved", + "enum": [ + 0, + 1, + 4, + 5 + ] + } + } + }, + "Folder_Folder_DELETE": { + "type": "object", + "required": [ + "FolderId", + "Status" + ], + "properties": { + "FolderId": { + "type": "string", + "description": "The ID of the Folder to delete" + }, + "Status": { + "type": "integer", + "description": "The folder status:
4 - Removed, with restore possibility.
5 - ConfirmedRemoved, permanent deletion without restore possibility.
Note: all folders in the list must have the same status.", + "enum": [ + 4, + 5 + ] + } + } + }, + "Syncpoints_GET": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "ID associated with the syncpoint" + }, + "Type": { + "type": "integer", + "description": "Type of the syncpoint to be created. There are predefined syncpoint types for system folders (1-5). Only one system folder of each type (1-5) can be created. Custom syncpoints represent any other non-system folder and should be of type 6.
1 - MyDocuments (predefined syncpoint for documents)
2 - MyMusic (predefined syncpoint for music)
3 - MyPictures (predefined syncpoint for pictures)
4 - Desktop (predefined Desktop syncpoint)
5 - Favorites (predefined Favorites syncpoint)
6 - Custom (predefined syncpoint for custom data)
7 - Private (syncpoint for Syncplicity internal usage)
8 - SyncDrive (predefined syncpoint for mapped to SyncDrive)", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "Name": { + "type": "string", + "description": "Syncpoint name. Limited to 50 characters" + }, + "Mapped": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if the SyncPoint was mapped to the computer issuing the request, false otherwise" + }, + "DownloadEnabled": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if download/synchronization is enabled for this syncpoint" + }, + "UploadEnabled": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if this syncpoint has backup/upload enabled" + }, + "Shared": { + "type": "boolean", + "description": "Shows whether syncpoint is shared with anybody" + }, + "Owner": { + "$ref": "#/definitions/Syncpoint_GET_Owner" + }, + "Path": { + "type": "string", + "description": "Used for internal purposes. Should be ignored. Path to the local file system directory of the syncpoint
Valid directory name, windows file system separator should be escaped with double back slash(\\\\), e.g. C:\\\\Users" + }, + "PathToRoot": { + "type": "string", + "description": "Path to the root directory of the syncpoint" + }, + "Permission": { + "type": "integer", + "description": "Current user's permission for this syncpoint
0 - None (No permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
2 - Contributor (Currently Ignored)
3 - ReadOnly (user can only download files from the Virtual Folder)" + }, + "EffectivePermission": { + "type": "integer", + "description": "Current user's effective permission for syncpoint. Useful for nested syncpoints - to understand what is the real permission for syncpoint
0 - None (No permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
2 - Contributor (Currently Ignored)
3 - ReadOnly (user can only download files from the Virtual Folder)" + }, + "Participants": { + "type": "array", + "description": "Information about syncpoint participants. This array is included only when 'include' parameter contains 'participant'", + "items": { + "$ref": "#/definitions/SyncpointParticipant_GET" + } + }, + "StorageEndpointId": { + "type": "string", + "description": "Unique ID associated with an existing storage endpoint" + }, + "RootFolderId": { + "type": "string", + "description": "ID of root folder in the syncpoint. Could be used for retrieving content of syncpoint" + }, + "Mappings": { + "type": "array", + "description": "Used for internal purposes. Should be ignored. Mapping between user's Syncplicity client and the syncpoint being created", + "items": { + "$ref": "#/definitions/Syncpoint_Mapping" + } + }, + "EventServerId": { + "type": "string", + "description": "Identifier of event server associated with the syncpoint (Guid)" + }, + "Policy": { + "type": "object", + "description": "Information about policies applied to syncpoint, for example ShareLinkPolicy, StoragePasswordPolicy, etc" + }, + "ServiceState": { + "$ref": "#/definitions/Syncpoint_POST_response_ServiceState" + }, + "Status": { + "type": "integer", + "description": "Status of the syncpoint.
None = 0,
Active = 1,
Removed = 2", + "enum": [ + "0", + "1", + "2" + ] + }, + "LastEvent": { + "type": "object", + "description": "Information about last newsfeed event with this syncpoint. Contains event Id by which additional info could be requested from newsfeed.svc. This info is included only when 'include' query parameter contains 'lastnewsfeedevent'" + }, + "SyncpointSize": { + "type": "string", + "description": "Size of syncpoint in bytes" + }, + "ResharingPermission": { + "type": "integer", + "description": "Defines resharing permission – who can reshare syncpoint
None = 0
AllowAll = 1
AllowIntended = 2" + }, + "NotifyAboutResharing": { + "type": "boolean", + "description": "Enables notifications to participants when resharing performed" + }, + "Parent": { + "$ref": "#/definitions/Syncpoint_POST_response_Parent" + } + } + }, + "Syncpoint_GET": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "ID associated with the syncpoint" + }, + "Type": { + "type": "integer", + "description": "Type of the syncpoint to be created. There are predefined syncpoint types for system folders (1-5). Only one system folder of each type (1-5) can be created. Custom syncpoints represent any other non-system folder and should be of type 6.
1 - MyDocuments (predefined syncpoint for documents)
2 - MyMusic (predefined syncpoint for music)
3 - MyPictures (predefined syncpoint for pictures)
4 - Desktop (predefined Desktop syncpoint)
5 - Favorites (predefined Favorites syncpoint)
6 - Custom (predefined syncpoint for custom data)
8 - SyncDrive (predefined syncpoint for mapped to SyncDrive)", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 8 + ] + }, + "Name": { + "type": "string", + "description": "Syncpoint name. Limited to 50 characters" + }, + "Mapped": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if the SyncPoint was mapped to the computer issuing the request, false otherwise" + }, + "DownloadEnabled": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if download/synchronization is enabled for this syncpoint" + }, + "UploadEnabled": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if this syncpoint has backup/upload enabled" + }, + "Shared": { + "type": "boolean", + "description": "Shows whether syncpoint is shared with anybody" + }, + "Owner": { + "$ref": "#/definitions/Syncpoint_GET_Owner" + }, + "Path": { + "type": "string", + "description": "Used for internal purposes. Should be ignored. Path to the local file system directory of the syncpoint
Valid directory name, windows file system separator should be escaped with double back slash(\\\\), e.g. C:\\\\Users" + }, + "PathToRoot": { + "type": "string", + "description": "Path to the root directory of the syncpoint" + }, + "Permission": { + "type": "integer", + "description": "Current user's permission for this syncpoint
0 - None (No permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
2 - Contributor (Currently Ignored)
3 - ReadOnly (user can only download files from the Virtual Folder)" + }, + "EffectivePermission": { + "type": "integer", + "description": "Current user's effective permission for syncpoint. Useful for nested syncpoints - to understand what is the real permission for syncpoint
0 - None (No permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
2 - Contributor (Currently Ignored)
3 - ReadOnly (user can only download files from the Virtual Folder)" + }, + "Participants": { + "type": "array", + "description": "Information about syncpoint participants. This array is included only when 'include' parameter contains 'participant'", + "items": { + "$ref": "#/definitions/SyncpointParticipant_GET" + } + }, + "StorageEndpointId": { + "type": "string", + "description": "Unique ID associated with an existing storage endpoint" + }, + "RootFolderId": { + "type": "string", + "description": "ID of root folder in the syncpoint. Could be used for retrieving content of syncpoint" + }, + "Mappings": { + "type": "array", + "description": "Used for internal purposes. Should be ignored. Mapping between user's Syncplicity client and the syncpoint being created", + "items": { + "$ref": "#/definitions/Syncpoint_Mapping" + } + }, + "EventServerId": { + "type": "string", + "description": "Identifier of event server associated with the syncpoint (Guid)" + }, + "Policy": { + "type": "object", + "description": "Information about policies applied to syncpoint, for example ShareLinkPolicy, StoragePasswordPolicy, etc" + }, + "ServiceState": { + "$ref": "#/definitions/Syncpoint_POST_response_ServiceState" + }, + "Status": { + "type": "integer", + "description": "Status of the syncpoint.
None = 0,
Active = 1,
Removed = 2", + "enum": [ + "0", + "1", + "2" + ] + }, + "LastEvent": { + "type": "object", + "description": "Information about last newsfeed event with this syncpoint. Contains event Id by which additional info could be requested from newsfeed.svc. This info is included only when 'include' query parameter contains 'lastnewsfeedevent'" + }, + "SyncpointSize": { + "type": "string", + "description": "Size of syncpoint in bytes" + }, + "ResharingPermission": { + "type": "integer", + "description": "Defines resharing permission – who can reshare syncpoint
None = 0
AllowAll = 1
AllowIntended = 2" + }, + "NotifyAboutResharing": { + "type": "boolean", + "description": "Enables notifications to participants when resharing performed" + }, + "Parent": { + "$ref": "#/definitions/Syncpoint_POST_response_Parent" + } + } + }, + "Syncpoint_GET_Owner": { + "type": "object", + "description": "Syncpoint's owner information", + "required": [ + "Id", + "EmailAddress", + "FirstName", + "LastName", + "Company" + ], + "properties": { + "Id": { + "type": "string", + "description": "Syncpoint's owner GUID" + }, + "EmailAddress": { + "type": "string", + "description": "Included if Owner object is defined. Standard email format limited to 254 characters" + }, + "FirstName": { + "type": "string", + "description": "First name of the syncpoint owner" + }, + "LastName": { + "type": "string", + "description": "Last name of the syncpoint owner" + }, + "Company": { + "$ref": "#/definitions/Syncpoint_GET_Owner_Company" + } + } + }, + "Syncpoint_GET_Owner_Company": { + "type": "object", + "description": "Company information", + "required": [ + "Id", + "Name" + ], + "properties": { + "Id": { + "type": "string", + "description": "Owner Company GUID" + }, + "Name": { + "type": "string", + "description": "Owner Company name" + } + } + }, + "Syncpoint_POST_response": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "ID associated with the syncpoint" + }, + "Type": { + "type": "integer", + "description": "Type of the syncpoint to be created. There are predefined syncpoint types for system folders (1-5). Only one system folder of each type (1-5) can be created. Attempts to create more than one system folder (1-5) will not succeed if the folder already exists. Custom syncpoints represent any other non-system folder and should be of type 6.
1 - MyDocuments (predefined syncpoint for documents)
2 - MyMusic (predefined syncpoint for music)
3 - MyPictures (predefined syncpoint for pictures)
4 - Desktop (predefined Desktop syncpoint)
5 - Favorites (predefined Favorites syncpoint)
6 - Custom (predefined syncpoint for custom data)
8 - SyncDrive (predefined syncpoint for mapped to SyncDrive)", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "8" + ] + }, + "Name": { + "type": "string", + "description": "Syncpoint name. Limited to 50 characters" + }, + "Mapped": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if the SyncPoint was mapped to the computer issuing the request, false otherwise" + }, + "DownloadEnabled": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if download/synchronization is enabled for this syncpoint" + }, + "UploadEnabled": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if this syncpoint has backup/upload enabled" + }, + "Owner": { + "$ref": "#/definitions/Syncpoint_POST_response_Owner" + }, + "Permission": { + "type": "integer", + "description": "Current user's permission for this syncpoint
0 - None (No permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
2 - Contributor (Currently Ignored)
3 - ReadOnly (user can only download files from the Virtual Folder)" + }, + "EffectivePermission": { + "type": "integer", + "description": "Current user's effective permission for syncpoint. Useful for nested syncpoints - to understand what is the real permission for syncpoint
0 - None (No permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
2 - Contributor (Currently Ignored)
3 - ReadOnly (user can only download files from the Virtual Folder)" + }, + "Participants": { + "type": "array", + "description": "Information about syncpoint participants. This array is included only if participants of syncpoints are being created (POST method)", + "items": { + "$ref": "#/definitions/SyncpointParticipant_GET" + } + }, + "Path": { + "type": "string", + "description": "Used for internal purposes. Should be ignored. Path to the local file system directory of the syncpoint
Valid directory name, windows file system separator should be escaped with double back slash(\\\\), e.g. C:\\\\Users" + }, + "PathToRoot": { + "type": "string", + "description": "Path to the root folder of the syncpoint" + }, + "StorageEndpointId": { + "type": "string", + "description": "Unique ID associated with the storage endpoint" + }, + "RootFolderId": { + "type": "string", + "description": "ID of root folder in the syncpoint. Could be used for retrieving content of syncpoint" + }, + "Mappings": { + "type": "array", + "description": "Used for internal purposes. Should be ignored. Mapping between user's Syncplicity client and the syncpoint being created", + "items": { + "$ref": "#/definitions/Syncpoint_Mapping" + } + }, + "EventServerId": { + "type": "string", + "description": "Identifier of event server associated with the syncpoint (Guid)" + }, + "Policy": { + "type": "object", + "description": "Information about policies applied to syncpoint, for example ShareLinkPolicy, StoragePasswordPolicy, etc" + }, + "ServiceState": { + "$ref": "#/definitions/Syncpoint_POST_response_ServiceState" + }, + "Status": { + "type": "integer", + "description": "Status of the syncpoint.
None = 0,
Active = 1,
Removed = 2", + "enum": [ + "0", + "1", + "2" + ] + }, + "SyncpointSize": { + "type": "string", + "description": "Size of syncpoint in bytes" + }, + "Parent": { + "$ref": "#/definitions/Syncpoint_POST_response_Parent" + } + } + }, + "Syncpoint_POST_response_Owner": { + "type": "object", + "description": "Syncpoint's owner information", + "properties": { + "Id": { + "type": "string", + "description": "Syncpoint's owner GUID" + }, + "EmailAddress": { + "type": "string", + "description": "Included if Owner object is defined. Standard email format limited to 254 characters" + }, + "FirstName": { + "type": "string", + "description": "First name of the syncpoint owner" + }, + "LastName": { + "type": "string", + "description": "Last name of the syncpoint owner" + } + } + }, + "Syncpoint_POST_response_ServiceState": { + "type": "object", + "properties": { + "Status": { + "type": "integer", + "description": "Status of the server
0 - Unknown (Unknown status)
1 - Online (Online status)
2 - Offline (Offline status)" + } + } + }, + "Syncpoint_POST_response_Parent": { + "type": "object", + "description": "Parent syncpoint. Used for defining nested syncpoints, not a typical use-case", + "properties": { + "Id": { + "type": "string", + "description": "ID of the parent syncpoint" + } + } + }, + "Syncpoint_PUT": { + "type": "object", + "properties": { + "Type": { + "type": "integer", + "description": "Type of the syncpoint to be created. There are predefined syncpoint types for system folders (1-5). Only one system folder of each type (1-5) can be created. Attempts to create more than one system folder (1-5) will not succeed if the folder already exists. Custom syncpoints represent any other non-system folder and should be of type 6.
1 - MyDocuments (predefined syncpoint for documents)
2 - MyMusic (predefined syncpoint for music)
3 - MyPictures (predefined syncpoint for pictures)
4 - Desktop (predefined Desktop syncpoint)
5 - Favorites (predefined Favorites syncpoint)
6 - Custom (predefined syncpoint for custom data)
8 - SyncDrive (predefined syncpoint for mapped to SyncDrive)", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "8" + ] + }, + "Name": { + "type": "string", + "description": "New syncpoint's name" + }, + "Owner": { + "$ref": "#/definitions/Syncpoint_Put_Owner" + }, + "ResharingPermission": { + "type": "integer", + "description": "Defines resharing permission – who can reshare syncpoint
None = 0
AllowAll = 1
AllowIntended = 2", + "enum": [ + 0, + 1, + 2 + ] + }, + "RemoteWipe": { + "type": "boolean", + "description": "When true, this request will trigger a remote wipe on the specified owner's machine. 'Mappings' array should not be specified together with that property." + } + } + }, + "Syncpoint_Put_Owner": { + "type": "object", + "description": "Syncpoint's owner information.
Note: if not part of the request, the current user will be used as the owner of the new syncpoint", + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the syncpoint owner.
Standard email format limited to 254 characters. Email should belong to user in the current company." + } + } + }, + "Syncpoint_Mapping": { + "type": "object", + "properties": { + "SyncPointId": { + "type": "integer", + "description": "ID associated with the mapped syncpoint" + }, + "Path": { + "type": "string", + "example": "c:\\workdocuments", + "description": "Path of standard format which starts with '/' for Unix systems. Limited to 256 characters" + }, + "Machine": { + "$ref": "#/definitions/Syncpoint_Mapping_Machine" + }, + "MappingType": { + "type": "integer", + "example": 1, + "description": "
Unknown = 0
Local = 1
SyncplicityDrive = 2", + "enum": [ + 0, + 1, + 2 + ] + } + } + }, + "Syncpoint_Mapping_Machine": { + "type": "object", + "description": "Mapped machine's information", + "properties": { + "Name": { + "type": "string", + "description": "Machine name which syncpoint is mapped to" + } + } + }, + "Syncpoints_POST": { + "type": "object", + "required": [ + "Name", + "Type" + ], + "properties": { + "Type": { + "type": "integer", + "description": "Type of the syncpoint to be created. There are predefined syncpoint types for system folders (1-5). Only one system folder of each type (1-5) can be created. Attempts to create more than one system folder (1-5) will not succeed if the folder already exists. Custom syncpoints represent any other non-system folder and should be of type 6.
1 - MyDocuments (predefined syncpoint for documents)
2 - MyMusic (predefined syncpoint for music)
3 - MyPictures (predefined syncpoint for pictures)
4 - Desktop (predefined Desktop syncpoint)
5 - Favorites (predefined Favorites syncpoint)
6 - Custom (predefined syncpoint for custom data)
8 - SyncDrive (predefined syncpoint for mapped to SyncDrive)", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "8" + ] + }, + "Name": { + "type": "string", + "description": "New syncpoint's name" + }, + "StorageEndpointID": { + "type": "string", + "description": "Unique ID associated with an existing storage endpoint.
If the field is empty, the owner's default storage endpoint will be used." + }, + "Participants": { + "type": "array", + "items": { + "$ref": "#/definitions/SyncpointParticipant_POST" + }, + "description": "A list of users and groups to share the new syncpoint with" + } + } + }, + "SyncpointParticipant_GET": { + "type": "object", + "required": [ + "Permission" + ], + "properties": { + "User": { + "$ref": "#/definitions/ParticipantUser" + }, + "Group": { + "$ref": "#/definitions/SyncpointParticipant_Group" + }, + "Permission": { + "type": "integer", + "description": "User or group permission for this syncpoint
0 - None (no permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
3 - ReadOnly (User can only download files from the Virtual Folder)" + }, + "Mapped": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if the SyncPoint was mapped to the computer issuing the request, false otherwise." + }, + "IsOwner": { + "type": "boolean", + "description": "True if the user is owner of the SyncPoint, false otherwise." + }, + "IsExplicit": { + "type": "boolean", + "description": "True if folder explicitly shared to user. False if current syncpoint wasn't shared to user but it is available for user because one or several parent syncpoints were shared to user." + }, + "ResharingAllowed": { + "type": "boolean", + "description": "True if participant can reshare a syncpoint, false otherwise." + }, + "ParticipantResharingPolicy": { + "type": "integer", + "description": "Shows if folder resharing is enabled or disabled. Reshare is when a participant of a share wants to re-share the folder with a new participant.
1 - DisallowAll: Disable folder resharing for external users. Folders can only be reshared by users in the same company.
2 - ExternalEditorOnly: Folders can only be reshared by external users who have editor permissions
3 - AllowAll: Allow resharing by anyone", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "OriginalPermissions": { + "type": "array", + "description": "Value is Null if none of syncpoints above current were shared to user. If one or several syncpoints above current were shared to current user then array contains record for each such syncpoint.", + "items": { + "$ref": "#/definitions/OriginalPermission" + } + }, + "Inviter": { + "$ref": "#/definitions/ParticipantInviter", + "description": "User who invited current user to this syncpoint" + } + } + }, + "SyncpointParticipant_Group": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Unique ID associated with the group participant" + }, + "Name": { + "type": "string", + "description": "Group name associated with the group participant" + } + } + }, + "SyncpointParticipant_POST": { + "type": "object", + "required": [ + "Permission" + ], + "properties": { + "User": { + "$ref": "#/definitions/SyncpointParticipant_POST_User" + }, + "Group": { + "$ref": "#/definitions/SyncpointParticipant_POST_Group" + }, + "Permission": { + "type": "string", + "description": "User or group permission for this syncpoint
0 - None (Unshare, no permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
3 - ReadOnly (User can only download files from the Virtual Folder)", + "enum": [ + "0", + "1", + "3" + ] + }, + "SharingInviteNote": { + "type": "string", + "description": "Message used for the invite email" + } + } + }, + "SyncpointParticipant_POST_User": { + "type": "object", + "description": "User to be added to the syncpoint share. Required if Group is not defined, otherwise no", + "required": [ + "EmailAddress" + ], + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the syncpoint user participant." + } + } + }, + "SyncpointParticipant_POST_Group": { + "type": "object", + "description": "Group to be added to the syncpoint share. Required if User is not defined, otherwise no", + "required": [ + "Id" + ], + "properties": { + "Id": { + "type": "string", + "description": "Unique ID associated with the group of participants" + } + } + }, + "SyncpointParticipant_PUT": { + "type": "object", + "required": [ + "User", + "Permission" + ], + "properties": { + "User": { + "$ref": "#/definitions/SyncpointParticipant_PUT_User" + }, + "Permission": { + "type": "string", + "description": "User or group permission for this syncpoint
0 - None (Unshare, no permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
3 - ReadOnly (User can only download files from the Virtual Folder)", + "enum": [ + "0", + "1", + "3" + ] + }, + "SharingInviteNote": { + "type": "string", + "description": "Message used for the invite email" + } + } + }, + "SyncpointParticipant_PUT_User": { + "type": "object", + "description": "User to be added to the syncpoint share. Must be equal to the email provided in url path", + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the syncpoint user participant." + } + } + }, + "Links_POST": { + "type": "object", + "required": [ + "VirtualPath" + ], + "properties": { + "SyncPointId": { + "type": "integer", + "description": "ID associated with the target syncpoint" + }, + "VirtualPath": { + "type": "string", + "description": "Virtual path to shared file" + }, + "ShareLinkPolicy": { + "type": "integer", + "description": "Sharing policy for the link.
Unknown = 0
DisallowAll = 1
InternalOnly = 2
AllowAll = 3
IntendedOnly = 4" + }, + "PasswordProtectPolicy": { + "type": "integer", + "description": "Password protected policy
Unknown = 0
Disabled = 1
Enabled = 2" + }, + "Password": { + "type": "string", + "description": "Link protection password" + }, + "LinkExpireInDays": { + "type": "integer", + "description": "Link expiration time: given amount of days after creation. Also LinkExpirationPolicy must be set to 1 to enable link expiration" + }, + "LinkExpirationPolicy": { + "type": "integer", + "description": "Link expiration policy. Set to 1 to enable link expiration.
Enabled = 1
Disabled = 2" + }, + "Users": { + "type": "array", + "items": { + "$ref": "#/definitions/Link_Post_User" + } + }, + "Groups": { + "type": "array", + "description": "Array of groups to share with", + "items": { + "$ref": "#/definitions/Link_Post_Group" + } + }, + "Message": { + "type": "string", + "description": "Message associated with the shared file" + }, + "OutlookShareLinkPolicy": { + "type": "integer", + "description": "Sharing policy for outlook
DisallowAll = 1
InternalOnly = 2
AllowAll = 3
IntendedOnly = 4", + "enum": [ + 1, + 2, + 3, + 4 + ] + } + } + }, + "Link_Post_User": { + "type": "object", + "properties": { + "EmailAddress": { + "type": "string", + "description": "User Email Address" + } + } + }, + "Link_Post_Group": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Group unique ID" + } + } + }, + "Links_GET": { + "type": "object", + "properties": { + "SyncPointId": { + "type": "string", + "description": "ID associated with the target syncpoint" + }, + "ShareLinkPolicy": { + "type": "integer", + "description": "Sharing policy
Unknown = 0
DisallowAll = 1
InternalOnly = 2
AllowAll = 3
IntendedOnly = 4", + "enum": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + "PasswordProtectPolicy": { + "type": "integer", + "description": "Password protected policy
Unknown = 0
Disabled = 1
Enabled = 2", + "enum": [ + 0, + 1, + 2 + ] + }, + "Users": { + "type": "array", + "description": "Array of users the link shared with", + "items": { + "$ref": "#/definitions/Link_User" + } + }, + "Groups": { + "type": "array", + "description": "Array of groups the link shared with", + "items": { + "$ref": "#/definitions/Link_Group" + } + }, + "LinkUsage": { + "type": "object", + "description": "Link usage statistics" + }, + "LinkExpireInDays": { + "type": "integer", + "description": "Link expires after given amount of days" + }, + "IsExpired": { + "type": "boolean", + "description": "True if link has been expired" + }, + "SharedDateUtc": { + "type": "string", + "format": "wcf-date-time", + "description": "UTC Date time when link was shared. See FAQ for wcf-date-time format details" + }, + "Token": { + "type": "string", + "description": "Access token" + }, + "ShareType": { + "type": "integer", + "description": "Sharing type
AttachmentLink = 1
ShareLink = 2" + }, + "LinkExpirationPolicy": { + "type": "integer", + "description": "Link expiration policy
Enabled = 1
Disabled = 2" + }, + "LandingPageUrl": { + "type": "string", + "description": "Landing page for shared file" + }, + "DownloadUrl": { + "type": "string", + "description": "Download url for shared file" + }, + "File": { + "$ref": "#/definitions/Link_File" + }, + "Message": { + "type": "string", + "description": "Message associated with the shared file" + }, + "OutlookShareLinkPolicy": { + "type": "integer", + "description": "Sharing policy for Outlook
DisallowAll = 1
InternalOnly = 2
AllowAll = 3
IntendedOnly = 4", + "enum": [ + 1, + 2, + 3, + 4 + ] + }, + "Downloads": { + "type": "array", + "description": "Information about downloads of the file. Filled only if 'include' parameter contains 'downloadHistory'", + "items": { + "$ref": "#/definitions/Link_Download" + } + }, + "IrmRoleType": { + "type": "integer", + "description": "IRM protection role. None = 0, Read only role = 1, Read and Write role = 2" + }, + "IsIrmProtected": { + "type": "boolean", + "description": "Is the link IRM protected" + }, + "NumDownloads": { + "type": "integer", + "description": "How many times the file was downloaded using the link" + }, + "StorageSignature": { + "type": "string", + "description": "The signature of the storage" + }, + "ThumbnailName": { + "type": "string", + "description": "Thumbnail name of the file" + } + } + }, + "Links_Post_response": { + "type": "object", + "properties": { + "SyncPointId": { + "type": "string", + "description": "ID associated with the target syncpoint" + }, + "ShareLinkPolicy": { + "type": "integer", + "description": "Sharing policy
Unknown = 0
DisallowAll = 1
InternalOnly = 2
AllowAll = 3
IntendedOnly = 4", + "enum": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + "PasswordProtectPolicy": { + "type": "integer", + "description": "Password protected policy
Unknown = 0
Disabled = 1
Enabled = 2", + "enum": [ + 0, + 1, + 2 + ] + }, + "Users": { + "type": "array", + "description": "Array of users the link shared with", + "items": { + "$ref": "#/definitions/Link_User" + } + }, + "Groups": { + "type": "array", + "description": "Array of groups the link shared with", + "items": { + "$ref": "#/definitions/Link_Group" + } + }, + "LinkExpireInDays": { + "type": "integer", + "description": "Link expires after given amount of days" + }, + "Token": { + "type": "string", + "description": "Access token" + }, + "ShareType": { + "type": "integer", + "description": "Sharing type
AttachmentLink = 1
ShareLink = 2" + }, + "LinkExpirationPolicy": { + "type": "integer", + "description": "Link expiration policy
Enabled = 1
Disabled = 2" + }, + "LandingPageUrl": { + "type": "string", + "description": "Landing page for shared file" + }, + "DownloadUrl": { + "type": "string", + "description": "Download url for shared file" + }, + "Message": { + "type": "string", + "description": "Message associated with the shared file" + }, + "OutlookShareLinkPolicy": { + "type": "integer", + "description": "Sharing policy for Outlook
DisallowAll = 1
InternalOnly = 2
AllowAll = 3
IntendedOnly = 4", + "enum": [ + 1, + 2, + 3, + 4 + ] + }, + "IrmRoleType": { + "type": "integer", + "description": "IRM protection role. None = 0, Read only role = 1, Read and Write role = 2" + }, + "IsIrmProtected": { + "type": "boolean", + "description": "Is the link IRM protected" + }, + "StorageSignature": { + "type": "string", + "description": "The signature of the storage" + }, + "VirtualPath": { + "type": "string", + "description": "Virtual path to shared file" + }, + "Password": { + "type": "string", + "description": "Link protection password" + } + } + }, + "Links_Put_response": { + "type": "object", + "properties": { + "SyncPointId": { + "type": "string", + "description": "ID associated with the target syncpoint" + }, + "ShareLinkPolicy": { + "type": "integer", + "description": "Sharing policy
Unknown = 0
DisallowAll = 1
InternalOnly = 2
AllowAll = 3
IntendedOnly = 4", + "enum": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + "PasswordProtectPolicy": { + "type": "integer", + "description": "Password protected policy
Unknown = 0
Disabled = 1
Enabled = 2", + "enum": [ + 0, + 1, + 2 + ] + }, + "Users": { + "type": "array", + "description": "Array of users the link shared with", + "items": { + "$ref": "#/definitions/Link_User" + } + }, + "Groups": { + "type": "array", + "description": "Array of groups the link shared with", + "items": { + "$ref": "#/definitions/Link_Group" + } + }, + "LinkUsage": { + "type": "object", + "description": "Link usage statistics" + }, + "LinkExpireInDays": { + "type": "integer", + "description": "Link expires after given amount of days" + }, + "IsExpired": { + "type": "boolean", + "description": "True if link has been expired" + }, + "SharedDateUtc": { + "type": "string", + "format": "wcf-date-time", + "description": "UTC Date time when link was shared. See FAQ for wcf-date-time format details" + }, + "Token": { + "type": "string", + "description": "Access token" + }, + "ShareType": { + "type": "integer", + "description": "Sharing type
AttachmentLink = 1
ShareLink = 2" + }, + "LinkExpirationPolicy": { + "type": "integer", + "description": "Link expiration policy
Enabled = 1
Disabled = 2" + }, + "LandingPageUrl": { + "type": "string", + "description": "Landing page for shared file" + }, + "DownloadUrl": { + "type": "string", + "description": "Download url for shared file" + }, + "File": { + "$ref": "#/definitions/Link_File" + }, + "Message": { + "type": "string", + "description": "Message associated with the shared file" + }, + "OutlookShareLinkPolicy": { + "type": "integer", + "description": "Sharing policy for Outlook
DisallowAll = 1
InternalOnly = 2
AllowAll = 3
IntendedOnly = 4", + "enum": [ + 1, + 2, + 3, + 4 + ] + }, + "OutlookPasswordProtectPolicy": { + "type": "integer", + "description": "Password protect for Outlook
Disabled = 1
Enabled = 2", + "enum": [ + 1, + 2 + ] + }, + "IrmRoleType": { + "type": "integer", + "description": "IRM protection role. None = 0, Read only role = 1, Read and Write role = 2" + }, + "IsIrmProtected": { + "type": "boolean", + "description": "Is the link IRM protected" + }, + "NumDownloads": { + "type": "integer", + "description": "How many times the file was downloaded using the link" + }, + "StorageSignature": { + "type": "string", + "description": "The signature of the storage" + }, + "ThumbnailName": { + "type": "string", + "description": "Thumbnail name of the file" + } + } + }, + "Link_Group": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name of the group link was shared to" + }, + "Id": { + "type": "string", + "description": "Identifier of the group" + } + } + }, + "Link_File": { + "type": "object", + "description": "Shared file information", + "properties": { + "Filename": { + "type": "string", + "description": "Name of the file" + }, + "FileId": { + "type": "string", + "description": "File identifier" + }, + "LatestVersionId": { + "type": "string", + "description": "Latest file version identifier" + }, + "ThumbnailUrl": { + "type": "string", + "description": "Thumbnail image Url" + } + } + }, + "SyncpointParticipants_POST_response": { + "type": "object", + "properties": { + "User": { + "$ref": "#/definitions/SyncpointParticipants_PostUser" + }, + "Group": { + "$ref": "#/definitions/SyncpointParticipant_POST_Group" + }, + "Permission": { + "type": "number", + "description": "User or group permission for this syncpoint
0 - None (Unshare, no permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
3 - ReadOnly (User can only download files from the Virtual Folder)" + }, + "Mapped": { + "type": "boolean", + "description": "Used for internal purposes. Should be ignored. True if the SyncPoint was mapped to the computer issuing the request, false otherwise" + }, + "SharingInviteNote": { + "type": "string", + "description": "Message used for the invite email" + } + }, + "example": "{\"User\":{\"EmailAddress\":\"email@mail.com\",\"FirstName\":\"Test\",\"LastName\":\"User\",\"Company\":{\"Name\":\"companyName\"},\"Roles\":[],\"AccountType\":7},\"Permission\":1,\"Mapped\":false}" + }, + "SyncpointParticipants_PostUser": { + "type": "object", + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the syncpoint user participant" + } + } + }, + "ParticipantUser": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Participant's identifier (Guid)" + }, + "EmailAddress": { + "type": "string", + "description": "Email address of the syncpoint user participant" + }, + "FirstName": { + "type": "string", + "description": "User’s First Name" + }, + "LastName": { + "type": "string", + "description": "User’s Last Name" + } + } + }, + "ParticipantInviter": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Inviter's identifier (Guid)" + }, + "EmailAddress": { + "type": "string", + "description": "Email address of the syncpoint user participant" + }, + "FirstName": { + "type": "string", + "description": "User’s First Name" + }, + "LastName": { + "type": "string", + "description": "User’s Last Name" + } + } + }, + "SyncpointParticipants_DELETE": { + "type": "object", + "description": "Only one property of that object should be filled: Group or User. If both - it will be skipped", + "properties": { + "User": { + "$ref": "#/definitions/SyncpointParticipant_User" + }, + "Group": { + "$ref": "#/definitions/SyncpointParticipant_DELETE_Group" + } + } + }, + "SyncpointParticipant_User": { + "type": "object", + "description": "User to be removed from the syncpoint share. Required if Groups is not defined.", + "properties": { + "EmailAddress": { + "type": "string", + "description": "Email address of the syncpoint user participant." + } + } + }, + "SyncpointParticipant_DELETE_Group": { + "type": "object", + "description": "Group to be removed from the syncpoint share. Required if User is not defined", + "properties": { + "Id": { + "type": "string", + "description": "Unique ID associated with the group participant" + } + } + }, + "Link_User": { + "type": "object", + "properties": { + "FirstName": { + "type": "string", + "description": "First name of the user" + }, + "LastName": { + "type": "string", + "description": "Last name of the user" + }, + "EmailAddress": { + "type": "string", + "description": "Email address of the user" + }, + "Id": { + "type": "string", + "description": "Unique Guid of the user" + } + } + }, + "Link_Download": { + "type": "object", + "properties": { + "User": { + "$ref": "#/definitions/Link_User", + "description": "Information about user which downloaded the file" + }, + "DownloadDateUtc": { + "type": "string", + "format": "wcf-date-time", + "description": "Date of the download. See FAQ for wcf-date-time format details" + }, + "GeoLocation": { + "$ref": "#/definitions/Geolocation" + } + } + }, + "Geolocation": { + "type": "object", + "description": "Information about place from which the file was downloaded.
This field will be filled only when query parameter 'include' contains 'downloadHistory' or 'usage' values", + "properties": { + "Latitude": { + "type": "string" + }, + "Longitude": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "City": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Country": { + "type": "string" + } + } + }, + "OriginalPermission": { + "type": "object", + "properties": { + "Permission": { + "type": "integer", + "description": "Permission of original syncpoint.
0 - None (no permission to access the folder)
1 - ReadWrite (Read/write permission or the owner of the folder)
3 - ReadOnly (User can only download files from the Virtual Folder)" + }, + "ParentFolderPath": { + "type": "string", + "description": "Path from original syncpoint to the current syncpoint (including names of both syncpoints)" + } + } + }, + "Storage_Endpoint_GET": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "GUID ID associated with the StorageVault endpoint" + }, + "Name": { + "type": "string", + "description": "User defined name of the StorageVault" + }, + "Description": { + "type": "string", + "description": "Administrator’s description of the StorageVault" + }, + "CompanyId": { + "type": "string", + "description": "GUID that identifies the current user’s company if the returned StorageVault is the on-prem one" + }, + "Active": { + "type": "boolean", + "description": "Flag that denotes whether the returned StorageVault is marked as active or not" + }, + "Urls": { + "type": "array", + "description": "List of URLs that are associated with the returned StorageVault", + "items": { + "$ref": "#/definitions/StorageEndpoint_Url" + } + }, + "Version": { + "type": "integer", + "description": "Currently unused. Always returns 0" + }, + "SizeGb": { + "type": "string", + "description": "Size in GB of the allocated storage available on the returned StorageVault" + }, + "SupportsWopi": { + "type": "boolean", + "description": "True if storage endpoint supports WOPI (Web Application Open Platform Interface) - protocol to integrate with Office Online.
Filled only if WOPI is enabled for company and WOPI host is defined" + }, + "WopiHostUrl": { + "type": "string", + "description": "Url to WOPI host.
Filled only if WOPI is enabled for company and WOPI host is defined" + }, + "IrmRmsOption": { + "type": "integer", + "description": "Storage endpoint RMS option. Disabled = 0, CloudRMS = 1, OnPremRMS = 2", + "enum": [ + 0, + 1, + 2 + ] + }, + "RequiresStorageAuthentication": { + "type": "boolean", + "description": "Denotes if there is an authentication requirement" + }, + "UserHasStoragePassword": { + "type": "boolean", + "description": "Denotes if specified user has stored a password for the returned StorageVault, only used if StorageVault authentication feature is enabled" + }, + "Company": { + "$ref": "#/definitions/StorageEndpoint_Company" + }, + "UserStoragePasswordStatus": { + "type": "integer", + "description": "Defines storage password status:
0 - Requires Confirmation code
1 - Has Confirmation code
2 - Has Storage password", + "enum": [ + 0, + 1, + 2 + ] + }, + "Default": { + "type": "boolean", + "description": "Denotes if this StorageVault is the current user’s default one" + }, + "ConsumedGb": { + "type": "string", + "description": "Consumed Storage in GB" + }, + "ProtocolVersion": { + "type": "number", + "description": "Future use" + } + } + }, + "StorageEndpoint_Company": { + "type": "object", + "description": "Company information", + "properties": { + "Id": { + "type": "string", + "description": "GUID that identifies the company that the returned StorageVault belongs to" + }, + "Name": { + "type": "string", + "description": "Name of the company that the returned StorageVault belongs to" + } + } + }, + "StorageEndpoint_Url": { + "type": "object", + "properties": { + "Url": { + "type": "string", + "description": "URL that is associated with the StorageVault" + } + } + }, + "User_PII_GET": { + "type": "object", + "properties": { + "RolUserPIIs": { + "type": "array", + "description": "JSON object encapsulating all returns users
Each sub-section of grouped users is grouped by the home ROL of the resulting users", + "items": { + "$ref": "#/definitions/RolUsersPII" + } + } + } + }, + "RolUser": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "The guid of the returned user" + }, + "EmailAddress": { + "type": "string", + "description": "The email of the user if known on the current ROL" + }, + "FirstName": { + "type": "string", + "description": "The first name of the user if known on the current ROL" + }, + "LastName": { + "type": "string", + "description": "The last name of the user if known on the current ROL" + } + } + }, + "RolUsersPII": { + "type": "object", + "properties": { + "Users": { + "type": "array", + "items": { + "$ref": "#/definitions/RolUser" + } + }, + "HomeRolId": { + "type": "integer", + "description": "The ID of the home ROL of the related users" + }, + "Bearer": { + "type": "string", + "description": "One time use short-lived bearer token for invoking the PII service of the user’s home ROL, if the associated users have a different home ROL from the current one" + } + } + } + }, + "securityDefinitions": { + "OAuth 2.0": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://api.syncplicity.com/oauth/authorize", + "tokenUrl": "https://api.syncplicity.com/oauth/token", + "scopes": { + "readwrite": "Read and Write", + "read": "Read only" + }, + "description": "developer.syncplicity.com" + } + }, + "security": [ + { + "OAuth 2.0": [] + } + ] +} diff --git a/api-builder-plugin-fc-syncplicity/swagger/syncplicity.png b/api-builder-plugin-fc-syncplicity/swagger/syncplicity.png new file mode 100644 index 00000000..10496a97 Binary files /dev/null and b/api-builder-plugin-fc-syncplicity/swagger/syncplicity.png differ