diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 00000000000..8f7dd7f4f72 Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/backend/docs/api_data.js b/backend/docs/api_data.js new file mode 100644 index 00000000000..a37d5ca5843 --- /dev/null +++ b/backend/docs/api_data.js @@ -0,0 +1,14845 @@ +define({ "api": [ + { + "type": "get", + "url": "/version", + "title": "Application version", + "name": "printVersion", + "group": "3D_Repo", + "description": "
Show current application version.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "VERSION", + "description": "API service version
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "unity", + "description": "Unity viewer version
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "navis", + "description": "Autodesk Navisworks version
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "unitydll", + "description": "Unity viewer version
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"VERSION\": \"2.20.1\",\n\t\"unity\": {\n\t\t\"current\": \"2.20.0\",\n\t\t\"supported\": []\n\t},\n\t\"navis\": {\n\t\t\"current\": \"2.16.0\",\n\t\t\"supported\": [\n\t\t\t\"2.8.0\"\n\t\t]\n\t},\n\t\"unitydll\": {\n\t\t\"current\": \"2.8.0\",\n\t\t\"supported\": []\n\t}\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "3D_Repo" + }, + { + "type": "post", + "url": "/:teamspace/permissions", + "title": "Assign permissions", + "name": "createPermission", + "group": "Account_Permission", + "description": "Assign account level permission to a user
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "user", + "description": "User to assign permissions to
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "List of account level permissions
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + }, + { + "group": "200", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "Account Level Permission types
" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"user\": \"bob\",\n\t\t\"permissions\": [\n\t\t\t\"create_project\"\n\t\t]\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/permissions HTTP/1.1\n{\n\t\"user\": \"bob\",\n\t\"permissions\": [\n\t\t\"create_project\"\n\t]\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/accountPermission.js", + "groupTitle": "Account_Permission" + }, + { + "type": "delete", + "url": "/:teamspace/permissions/:user", + "title": "Revoke permissions", + "name": "deletePermission", + "group": "Account_Permission", + "description": "Revoke all permissions from a user.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User to delete
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /acme/permissions/alice HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/accountPermission.js", + "groupTitle": "Account_Permission" + }, + { + "type": "get", + "url": "/:teamspace/permissions", + "title": "List all permissions", + "name": "listPermissions", + "group": "Account_Permission", + "description": "Get a list of all account permission objects for a teamspace
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + }, + { + "group": "200", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "Account level permissions
" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"user\": \"alice\",\n\t\t\"permissions\": [\n\t\t\t\"teamspace_admin\"\n\t\t]\n\t},\n\t{\n\t\t\"user\": \"bob\",\n\t\t\"permissions\": [\n\t\t\t\"create_project\"\n\t\t]\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/permissions HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/accountPermission.js", + "groupTitle": "Account_Permission" + }, + { + "type": "put", + "url": "/:teamspace/permissions/:user", + "title": "Update permissions", + "name": "updatePermission", + "group": "Account_Permission", + "description": "Update permissions assignment for a user.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User to update
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "List of account level permissions
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "List of account level permissions
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"permissions\": [\n\t\t\"teamspace_admin\"\n\t]\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /acme/permissions/alice HTTP/1.1\n{\n\t\"permissions\": [\n\t\t\"teamspace_admin\"\n\t]\n}", + "type": "put" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/accountPermission.js", + "groupTitle": "Account_Permission" + }, + { + "type": "post", + "url": "/forgot-password", + "title": "Forgot password", + "name": "forgotPassword", + "group": "Account", + "description": "Send a password reset link to account's e-mail.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "username", + "description": "Account username
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "email", + "description": "E-mail address registered with account
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (with username):", + "content": "POST /forgot-password HTTP/1.1\n{\n\t\"username: \"alice\"\n}", + "type": "get" + }, + { + "title": "Example usage (with e-mail):", + "content": "POST /forgot-password HTTP/1.1\n{\n\t\"email: \"alice@acme.co.uk\"\n}", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "get", + "url": "/:user/avatar", + "title": "Get avatar", + "name": "getAvatar", + "group": "Account", + "description": "Get user avatar.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "avatar", + "description": "User Avatar Image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nUser does not have an avatar
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "HTTP/1.1 404 Not Found\n{\n\t\"message\": \"User does not have an avatar\",\n\t\"status\": 404,\n\t\"code\": \"USER_DOES_NOT_HAVE_AVATAR\",\n\t\"place\": \"GET /alice/avatar\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /alice/avatar HTTP/1.1", + "type": "put" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "get", + "url": "/:user.json", + "title": "List account information", + "name": "listInfo", + "group": "Account", + "description": "Account information and list of projects grouped by teamspace that the user has access to.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "accounts", + "description": "User account
" + }, + { + "group": "200", + "type": "Object", + "optional": false, + "field": "billingInfo", + "description": "Billing information
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "email", + "description": "User e-mail address
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "firstName", + "description": "First name
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "lastName", + "description": "Surname
" + }, + { + "group": "200", + "type": "Boolean", + "optional": false, + "field": "hasAvatar", + "description": "True if user account has an avatar
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"accounts\": [\n\t\t{\n\t\t\t\"account\": \"repoman\",\n\t\t\t\"models\": [\n\t\t\t\t{\n\t\t\t\t\t\"permissions\": [\n\t\t\t\t\t\t\"change_model_settings\",\n\t\t\t\t\t\t\"upload_files\",\n\t\t\t\t\t\t\"create_issue\",\n\t\t\t\t\t\t\"comment_issue\",\n\t\t\t\t\t\t\"view_issue\",\n\t\t\t\t\t\t\"view_model\",\n\t\t\t\t\t\t\"download_model\",\n\t\t\t\t\t\t\"edit_federation\",\n\t\t\t\t\t\t\"delete_federation\",\n\t\t\t\t\t\t\"delete_model\",\n\t\t\t\t\t\t\"manage_model_permission\"\n\t\t\t\t\t],\n\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\t\t\"name\": \"ufo\",\n\t\t\t\t\t\"status\": \"ok\",\n\t\t\t\t\t\"timestamp\": \"2016-07-26T15:52:11.000Z\"\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"fedModels\": [],\n\t\t\t\"isAdmin\": true,\n\t\t\t\"permissions\": [\n\t\t\t\t\"teamspace_admin\"\n\t\t\t],\n\t\t\t\"quota\": {\n\t\t\t\t\"spaceLimit\": 10485760,\n\t\t\t\t\"collaboratorLimit\": 5,\n\t\t\t\t\"spaceUsed\": 12478764\n\t\t\t},\n\t\t\t\"projects\": []\n\t\t},\n\t\t{\n\t\t\t\"account\": \"breakingbad\",\n\t\t\t\"models\": [\n\t\t\t\t{\n\t\t\t\t\t\"permissions\": [\n\t\t\t\t\t\t\"view_issue\",\n\t\t\t\t\t\t\"view_model\",\n\t\t\t\t\t\t\"upload_files\",\n\t\t\t\t\t\t\"create_issue\"\n\t\t\t\t\t],\n\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000001\",\n\t\t\t\t\t\"name\": \"homelab\",\n\t\t\t\t\t\"status\": \"ok\",\n\t\t\t\t\t\"timestamp\": null\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"fedModels\": [\n\t\t\t\t{\n\t\t\t\t\t\"federate\": true,\n\t\t\t\t\t\"permissions\": [\n\t\t\t\t\t\t\"change_model_settings\",\n\t\t\t\t\t\t\"upload_files\",\n\t\t\t\t\t\t\"create_issue\",\n\t\t\t\t\t\t\"comment_issue\",\n\t\t\t\t\t\t\"view_issue\",\n\t\t\t\t\t\t\"view_model\",\n\t\t\t\t\t\t\"download_model\",\n\t\t\t\t\t\t\"edit_federation\",\n\t\t\t\t\t\t\"delete_federation\",\n\t\t\t\t\t\t\"delete_model\",\n\t\t\t\t\t\t\"manage_model_permission\"\n\t\t\t\t\t],\n\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000003\",\n\t\t\t\t\t\"name\": \"fed1\",\n\t\t\t\t\t\"status\": \"ok\",\n\t\t\t\t\t\"timestamp\": \"2017-05-11T12:49:59.000Z\",\n\t\t\t\t\t\"subModels\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"database\": \"breakingbad\",\n\t\t\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000001\",\n\t\t\t\t\t\t\t\"name\": \"homelab\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"database\": \"breakingbad\",\n\t\t\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000002\",\n\t\t\t\t\t\t\t\"name\": \"laundrylab\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"projects\": [\n\t\t\t\t{\n\t\t\t\t\t\"_id\": \"58f78c8ededbb13a982114ee\",\n\t\t\t\t\t\"name\": \"folder1\",\n\t\t\t\t\t\"permission\": [],\n\t\t\t\t\t\"models\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"permissions\": [\n\t\t\t\t\t\t\t\t\"view_issue\",\n\t\t\t\t\t\t\t\t\"view_model\",\n\t\t\t\t\t\t\t\t\"upload_files\",\n\t\t\t\t\t\t\t\t\"create_issue\"\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000004\",\n\t\t\t\t\t\t\t\"name\": \"laundrylab\",\n\t\t\t\t\t\t\t\"status\": \"ok\",\n\t\t\t\t\t\t\t\"timestamp\": null\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t],\n\t\"billingInfo\": {\n\t\t\"countryCode\": \"US\",\n\t\t\"postalCode\": \"0\",\n\t\t\"line2\": \"123\",\n\t\t\"city\": \"123\",\n\t\t\"line1\": \"123\",\n\t\t\"vat\": \"000\",\n\t\t\"company\": \"Universal Pictures\",\n\t\t\"_id\": \"59145aedf4f613668fba0f98\"\n\t},\n\t\"email\":\"alice@acme.co.uk\",\n\t\"firstName\":\"Alice\",\n\t\"lastName\":\"Allen\",\n\t\"hasAvatar\": true,\n\t\"jobs\": [\n\t\t{\n\t\t\t\"_id\": \"Director\"\n\t\t},\n\t\t{\n\t\t\t\"_id\": \"Actor\"\n\t\t},\n\t\t{\n\t\t\t\"_id\": \"Producer\n\t\t}\n\t]\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /alice.json HTTP/1.1", + "type": "delete" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "put", + "url": "/:user/password", + "title": "Reset password", + "name": "resetPassword", + "group": "Account", + "description": "Reset user account password. New password must be different.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User account
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "oldPassword", + "description": "Old password
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "newPassword", + "description": "New password
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "token", + "description": "Password reset token
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "optional": false, + "field": "account", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"account\":\"alice\"\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "TOKEN_INVALID", + "description": "Token is invalid or has expired
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "HTTP/1.1 400 Bad Request\n{\n\t\"message\":\"Token is invalid or expired\",\n\t\"status\":400,\n\t\"code\":\"TOKEN_INVALID\",\n\t\"value\":59,\n\t\"place\": \"PUT /alice/password\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage (with old password):", + "content": "PUT /alice/password HTTP/1.1\n{\n\t\"oldPassword\":\"AW96B6\",\n\t\"newPassword\":\"TrustNo1\"\n}", + "type": "post" + }, + { + "title": "Example usage (with token):", + "content": "PUT /alice/password HTTP/1.1\n{\n\t\"token\":\"1234567890\",\n\t\"newPassword\":\"TrustNo1\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "post", + "url": "/:user", + "title": "Sign up", + "name": "signUp", + "group": "Account", + "description": "Sign up for a new user account.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "New account username to register
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "password", + "description": "Password
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "email", + "description": "Valid e-mail address
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "firstName", + "description": "First name
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "lastName", + "description": "Surname
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "company", + "description": "Company
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "jobTitle", + "description": "Job title
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "countryCode", + "description": "ISO 3166-1 alpha-2
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "captcha", + "description": "Google reCAPTCHA response token
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "optional": false, + "field": "account", + "description": "New Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"account\":\"alice\"\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "SIGN_UP_PASSWORD_MISSING", + "description": "Password is missing
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "\nHTTP/1.1 400 Bad Request\n{\n\t\"message\": \"Password is missing\",\n\t\"status\": 400,\n\t\"code\": \"SIGN_UP_PASSWORD_MISSING\",\n\t\"value\": 57,\n\t\"place\": \"POST /nabile\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /alice HTTP/1.1\n{\n\t\"email\":\"alice@acme.co.uk\",\n\t\"password\":\"AW96B6\",\n\t\"firstName\":\"Alice\",\n\t\"lastName\":\"Allen\",\n\t\"company\":\"Acme Corporation\",\n\t\"countryCode\":\"GB\",\n\t\"jobTitle\":\"CEO\",\n\t\"captcha\":\"1234567890qwertyuiop\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "put", + "url": "/:user", + "title": "Update user account", + "name": "updateUser", + "group": "Account", + "description": "Update account information.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "Account username
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "email", + "description": "Valid e-mail address
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "firstName", + "description": "First name
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "lastName", + "description": "Surname
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "optional": false, + "field": "account", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"account\":\"alice\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /alice HTTP/1.1\n{\n\t\"email\":\"alice@3drepo.org\",\n\t\"firstName\":\"Alice\",\n\t\"lastName\":\"Anderson\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "post", + "url": "/:user/avatar", + "title": "Upload avatar", + "name": "uploadAvatar", + "group": "Account", + "description": "Upload a new avatar image. Only multipart form data content type will be accepted.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "File", + "optional": false, + "field": "file", + "description": "Image to upload
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /alice/avatar HTTP/1.1\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryN8dwXAkcO1frCHLf\n\n------WebKitFormBoundaryN8dwXAkcO1frCHLf\nContent-Disposition: form-data; name=\"file\"; filename=\"avatar.png\"\nContent-Type: image/png\n\nStatus of Avatar upload.
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"status\":\"success\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "post", + "url": "/:user/verify", + "title": "Verify", + "name": "verify", + "group": "Account", + "description": "Verify an account after signing up.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "Account username
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "token", + "description": "Account verification token
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "optional": false, + "field": "account", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"account\":\"alice\"\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "ALREADY_VERIFIED", + "description": "User already verified
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "HTTP/1.1 400 Bad Request\n{\n\t\"message\": \"Already verified\",\n\t\"status\": 400,\n\t\"code\": \"ALREADY_VERIFIED\",\n\t\"value\": 60,\n\t\"place\": \"POST /alice/verify\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /alice/verify HTTP/1.1\n{\n\t\"token\":\"1234567890\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "get", + "url": "/login", + "title": "Get current username", + "name": "checkLogin", + "group": "Authentication", + "description": "Get the username of the logged in user.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "username", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"username\": \"alice\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /login HTTP/1.1\n{}", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Authentication" + }, + { + "type": "post", + "url": "/login", + "title": "Login", + "name": "login", + "group": "Authentication", + "description": "3D Repo account login. Logging in generates a token that can be used for cookie-based authentication. To authentication subsequent API calls using cookie-based authentication, simply put the following into the HTTP header: Cookie: connect.sid=:sessionId
NOTE: If you use a modern browser’s XMLHttpRequest object to make API calls, you don’t need to take care of the authentication process after calling /login.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "username", + "description": "Account username
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "password", + "description": "Account password
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "username", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nset-cookie:connect.sid=12345678901234567890;\n{\n\t\"username\": \"alice\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /login HTTP/1.1\n{\n\t\"username\": \"alice\",\n\t\"password\": \"AW96B6\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Authentication" + }, + { + "type": "post", + "url": "/logout", + "title": "Logout", + "name": "logout", + "group": "Authentication", + "description": "Invalidate the authenticated session.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "username", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"username\": \"alice\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /logout HTTP/1.1\n{}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Authentication" + }, + { + "type": "post", + "url": "/:teamspace/:model/revision(/master/head|/:revId)/groups", + "title": "Create group", + "name": "createGroup", + "group": "Groups", + "description": "Add a group to the model.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "author", + "description": "Username of group creator
" + }, + { + "group": "Request body", + "type": "Number[]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "description", + "description": "Group description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Group name
" + }, + { + "group": "Request body", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + }, + { + "group": "Request body", + "type": "Object[]", + "optional": true, + "field": "rules", + "description": "List of rules in group
" + }, + { + "group": "Request body", + "type": "Number[]", + "optional": true, + "field": "transformation", + "description": "Flat 16 element array representation of 4x4 transformation matrix
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (/master/head)", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups HTTP/1.1\n{\n\t\"name\":\"Group 1\",\n\t\"description\":\"This is the description text for the first group.\",\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\":\"acme\",\n\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"shared_ids\":[\n\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "post" + }, + { + "title": "Example usage (/:revId)", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/groups HTTP/1.1\n{\n\t\"name\":\"Group 1\",\n\t\"description\":\"This is the description text for the first group.\",\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\":\"acme\",\n\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"shared_ids\":[\n\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "post" + }, + { + "title": "Example usage (smart group)", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups HTTP/1.1\n{\n\t\"name\":\"Smart 1\",\n\t\"description\":\"This is a smart group of objects with type IfcWall or IfcDoor with area > 5.\",\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"objects\":[],\n\t\"rules\":[\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"Area\"]\n\t\t\t},\n\t\t\t\"operator\":\"GT\",\n\t\t\t\"values\":[5]\n\t\t},\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"IFC Type\"]\n\t\t\t},\n\t\t\t\"operator\":\"IS\",\n\t\t\t\"values\":[\n\t\t\t\t\"IfcWall\",\n\t\t\t\t\"IfcDoor\"\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response (normal group)", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\"name\":\"Group 1\",\n\t\"description\":\"This is the description text for the first group.\",\n\t\"author\":\"alice\",\n\t\"createdAt\":\"2018-03-09T10:45:00.000Z\",\n\t\"color\":[255,0,0],\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\":\"acme\",\n\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"ifc_guids\":[],\n\t\t\t\"shared_ids\":[\n\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t],\n\t\"rules\":[]\n}", + "type": "json" + }, + { + "title": "Success-Response (smart group)", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000004\",\n\t\"name\":\"Smart 1\",\n\t\"description\":\"This is a smart group of objects with type IfcWall or IfcDoor with area > 5.\",\n\t\"author\":\"alice\",\n\t\"createdAt\":\"2018-03-09T10:45:00.000Z\",\n\t\"color\":[255,0,0],\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\":\"acme\",\n\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"ifc_guids\":[],\n\t\t\t\"shared_ids\":[\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t],\n\t\"rules\":[\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"Area\"]\n\t\t\t},\n\t\t\t\"operator\":\"GT\",\n\t\t\t\"values\":[5]\n\t\t},\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"IFC Type\"]\n\t\t\t},\n\t\t\t\"operator\":\"IS\",\n\t\t\t\"values\":[\n\t\t\t\t\"IfcWall\",\n\t\t\t\t\"IfcDoor\"\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "json" + } + ], + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "author", + "description": "Username of group creator
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "createdAt", + "description": "Group creation timestamp in milliseconds
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "description", + "description": "Group description
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "name", + "description": "Group name
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "rules", + "description": "List of rules in group
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "transformation", + "description": "Flat 16 element array representation of 4x4 transformation matrix
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedAt", + "description": "Group update timestamp in milliseconds
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedBy", + "description": "Username of last user to amend group
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "_id", + "description": "Unique ID of group
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "delete", + "url": "/:teamspace/:model/groups?ids=[GROUPS]", + "title": "Delete groups", + "name": "deleteGroups", + "group": "Groups", + "description": "Delete groups.
", + "parameter": { + "fields": { + "Query": [ + { + "group": "Query", + "type": "String", + "optional": false, + "field": "GROUPS", + "description": "Comma separated list of group IDs
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "status", + "description": "Group deletion result (success|ERROR CODE)
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"status\":\"success\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/groups?ids=00000000-0000-0000-0000-000000000002,00000000-0000-0000-0000-000000000003 HTTP/1.1", + "type": "delete" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "post", + "url": "/:teamspace/:model/groups/export", + "title": "Export Groups", + "name": "exportGroups", + "group": "Groups", + "description": "This is a back-ported endpoint from V5. For details please see V5 documentation /docs/#/Federations/ExportFederationGroups
", + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision(/master/head|/:revId)/groups/:groupId?[query]", + "title": "Find group", + "name": "findGroup", + "group": "Groups", + "description": "Find a group.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "groupId", + "description": "Group ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "ifcguids", + "description": "Flag that returns IFC GUIDs for group elements
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (/master/head)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (/:revId)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/groups/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (with IFC GUIDs)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups/00000000-0000-0000-0000-000000000004?ifcguids=true HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"createdAt\":1520592300000,\n\t\"description\":\"This is the description text for the first group.\",\n\t\"name\":\"Group 1\",\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\": \"acme\",\n\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"ifc_guids\": [],\n\t\t\t\"shared_ids\": [\n\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t],\n\t\"updatedAt\":1552128300000,\n\t\"updatedBy\":\"alice\",\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n}", + "type": "json" + }, + { + "title": "Success-Response (with IFC GUIDs)", + "content": "HTTP/1.1 200 OK\n{\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"createdAt\":1520592300000,\n\t\"description\":\"This is a smart group of objects with type IfcWall or IfcDoor with area > 5.\",\n\t\"name\":\"Smart 1\",\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\": \"acme\",\n\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"ifc_guids\": [\n\t\t\t\t\"2cx1GdQ9fAgRIWgfhfBb84\",\n\t\t\t\t\"13NEEUJ8DEE8fEH0aHgm2z\",\n\t\t\t\t\"3OLNF2_DL6hfPgh8Bw7fI7\"\n\t\t\t],\n\t\t\t\"shared_ids\": [\n\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t],\n\t\"rules\":[\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"Area\"]\n\t\t\t},\n\t\t\t\"operator\":\"GT\",\n\t\t\t\"values\":[5]\n\t\t},\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"IFC Type\"]\n\t\t\t},\n\t\t\t\"operator\":\"IS\",\n\t\t\t\"values\":[\n\t\t\t\t\"IfcWall\",\n\t\t\t\t\"IfcDoor\"\n\t\t\t]\n\t\t}\n\t],\n\t\"updatedAt\":1552128300000,\n\t\"updatedBy\":\"alice\",\n\t\"_id\":\"00000000-0000-0000-0000-000000000004\"\n}", + "type": "json" + } + ], + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "author", + "description": "Username of group creator
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "createdAt", + "description": "Group creation timestamp in milliseconds
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "description", + "description": "Group description
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "name", + "description": "Group name
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "rules", + "description": "List of rules in group
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "transformation", + "description": "Flat 16 element array representation of 4x4 transformation matrix
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedAt", + "description": "Group update timestamp in milliseconds
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedBy", + "description": "Username of last user to amend group
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "_id", + "description": "Unique ID of group
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "post", + "url": "/:teamspace/:model/groups/import", + "title": "Import Groups", + "name": "importGroups", + "group": "Groups", + "description": "This is a back-ported endpoint from V5. For details please see V5 documentation /docs/#/Federations/ImportFederationGroups
", + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision(/master/head/|/:revId)/groups?[query]", + "title": "List all groups", + "name": "listGroups", + "group": "Groups", + "description": "List all groups associated with the model.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "ifcguids", + "description": "Flag that returns IFC GUIDs for group elements
" + }, + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "noIssues", + "description": "Flag that hides groups for issues
" + }, + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "noRisks", + "description": "Flag that hides groups for risks
" + }, + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "noViews", + "description": "Flag that hides groups for risks
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "updatedSince", + "description": "Only return issues that has been updated since this value (in epoch value)
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of group objects
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"author\":\"alice\",\n\t\t\"color\":[255,0,0],\n\t\t\"createdAt\":1520592300000,\n\t\t\"description\":\"This is the description text for the first group.\",\n\t\t\"name\":\"Group 1\",\n\t\t\"objects\":[\n\t\t\t{\n\t\t\t\t\"account\": \"acme\",\n\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\t\"ifc_guids\": [],\n\t\t\t\t\"shared_ids\": [\n\t\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\t\"updatedAt\":1552128300000,\n\t\t\"updatedBy\":\"alice\",\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n\t},\n\t{\n\t\t\"author\":\"alice\",\n\t\t\"color\":[0,255,0],\n\t\t\"createdAt\":1520592300000,\n\t\t\"description\":\"(No description)\",\n\t\t\"name\":\"Group 2\",\n\t\t\"objects\":[\n\t\t\t{\n\t\t\t\t\"account\": \"acme\",\n\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\t\"ifc_guids\": [],\n\t\t\t\t\"shared_ids\": [\n\t\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\"\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\t\"rules\":[],\n\t\t\"updatedAt\":1552128300000,\n\t\t\"updatedBy\":\"alice\",\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000003\"\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage (/master/head)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (/:revId)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/groups HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (no issue/risk groups)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups?noIssues=true&noRisks=true HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (with IFC GUIDs)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups?ifcguids=true HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "put", + "url": "/:teamspace/:model/revision(/master/head|/:revId)/groups/:groupId/", + "title": "Update group", + "name": "updateGroup", + "group": "Groups", + "description": "Update a group.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "groupId", + "description": "Group ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "author", + "description": "Username of group creator
" + }, + { + "group": "Request body", + "type": "Number[]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "description", + "description": "Group description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Group name
" + }, + { + "group": "Request body", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + }, + { + "group": "Request body", + "type": "Object[]", + "optional": true, + "field": "rules", + "description": "List of rules in group
" + }, + { + "group": "Request body", + "type": "Number[]", + "optional": true, + "field": "transformation", + "description": "Flat 16 element array representation of 4x4 transformation matrix
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (/master/head)", + "content": "PUT /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "put" + }, + { + "title": "Example usage (/:revId)", + "content": "PUT /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/groups/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"createdAt\":1520592300000,\n\t\"description\":\"Updated description text.\",\n\t\"name\":\"Group 1\",\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\": \"acme\",\n\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"ifc_guids\": [],\n\t\t\t\"shared_ids\": [\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t],\n\t\"updatedAt\":1552128300000,\n\t\"updatedBy\":\"alice\",\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n}", + "type": "json" + } + ], + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "author", + "description": "Username of group creator
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "createdAt", + "description": "Group creation timestamp in milliseconds
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "description", + "description": "Group description
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "name", + "description": "Group name
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "rules", + "description": "List of rules in group
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "transformation", + "description": "Flat 16 element array representation of 4x4 transformation matrix
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedAt", + "description": "Group update timestamp in milliseconds
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedBy", + "description": "Username of last user to amend group
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "_id", + "description": "Unique ID of group
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "get", + "url": "/:teamspace/:model/revisions.json", + "title": "List all revisions", + "name": "listRevisions", + "group": "History", + "description": "List all revisions for a model.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "Revisions", + "description": "object
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\t\"author\":\"alice\",\n\t\t\"timestamp\":\"2009-06-06T00:00:00.000Z\",\n\t\t\"name\":\"00000000-0000-0000-0000-000000000001\",\n\t\t\"branch\":\"master\"\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revisions.json HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/history.js", + "groupTitle": "History" + }, + { + "type": "get", + "url": "/:teamspace/:model/revisions/:branch.json", + "title": "List all revisions by branch", + "name": "listRevisionsByBranch", + "group": "History", + "description": "List all model revisions from a branch.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "branch", + "description": "Name of revision branch
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "optional": false, + "field": "Revisions", + "description": "object for a branch
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000004\",\n\t\t\"author\": \"alice\",\n\t\t\"desc\": \"For coordination\",\n\t\t\"timestamp\": \"2015-10-21T07:28:00.000Z\",\n\t\t\"name\":\"00000000-0000-0000-0000-000000000004\",\n\t\t\"branch\": \"staging\"\n\t},\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000003\",\n\t\t\"author\": \"alice\",\n\t\t\"desc\": \"Roof access added\",\n\t\t\"timestamp\": \"1985-10-26T09:00:00.000Z\",\n\t\t\"name\":\"00000000-0000-0000-0000-000000000003\",\n\t\t\"branch\": \"staging\"\n\t},\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\t\"author\": \"alice\",\n\t\t\"desc\": \"Initial design\",\n\t\t\"timestamp\": \"1955-11-12T06:38:00.000Z\",\n\t\t\"name\":\"00000000-0000-0000-0000-000000000002\",\n\t\t\"branch\": \"staging\"\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revisions/staging.json HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/history.js", + "groupTitle": "History" + }, + { + "type": "patch", + "url": "/:teamspace/:model/revisions/:id", + "title": "Update revision status", + "name": "updateRevisionStatus", + "group": "History", + "description": "Update the status of revision, setting it to void/active
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "id", + "description": "Unique Revision ID or tag
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": "{\n \"void\": true\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/history.js", + "groupTitle": "History" + }, + { + "type": "post", + "url": "/:teamspace/invitations", + "title": "Create/Update invitation", + "name": "createInvitation", + "group": "Invitations", + "description": "It creates or updates an invitation with the permissions and a job assigned to the invited email
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "email", + "description": "The email to which the invitation will be sent
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "job", + "description": "An existing job for the teamspace
" + }, + { + "group": "Request body", + "type": "Permissions", + "optional": false, + "field": "permissions", + "description": "Valid permissions for the invited. If there is a teamspace_admin: true the rest of the permissions for that teamspace are ignored.
" + } + ], + "Request body: Permisssions": [ + { + "group": "Request body: Permisssions", + "type": "Boolean", + "optional": true, + "field": "teamspace_admin", + "description": "Flag indicating if the invited user will become a teamspace administrator. If this flag is true the rest of the permissions are ignored.
" + }, + { + "group": "Request body: Permisssions", + "type": "ProjectPermissions[]", + "optional": true, + "field": "projects", + "description": "Permissions for projects and their models.
" + } + ], + "Request body: ProjectPermissions": [ + { + "group": "Request body: ProjectPermissions", + "type": "String", + "optional": false, + "field": "project", + "description": "The id of the project in which the project permissions will be applied for the invited user.
" + }, + { + "group": "Request body: ProjectPermissions", + "type": "Boolean", + "optional": true, + "field": "project_admin", + "description": "Flag indicating if the invited user will become a teamspace administrator. If this flag is true the rest of the permissions are ignored.
" + }, + { + "group": "Request body: ProjectPermissions", + "type": "ModelPermissions[]", + "optional": true, + "field": "models", + "description": "An array indicating the permissions for the models.
" + } + ], + "Request body: ModelPermissions": [ + { + "group": "Request body: ModelPermissions", + "type": "String", + "optional": false, + "field": "model", + "description": "The id of the model that will have the permission applied for the invited user.
" + }, + { + "group": "Request body: ModelPermissions", + "type": "String", + "optional": false, + "field": "permission", + "description": "The type of permission applied for the invited user. Valid values are 'viewer', 'commenter' or 'collaborator'
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (with projects and models, permissions):", + "content": "POST /teamSpace1/invitations HTTP/1.1\n\t{\n\t\temail:'invited@enterprise.com'\n\t\tjob: 'jobA',\n\t\tpermissions:{\n\t\t\tprojects:[\n\t\t\t\t{\n\t\t\t\t\tproject: '5bf7df65-f3a8-4337-8016-a63f00000000',\n\t\t\t\t\tmodels: [\n\t\t\t\t\t\t{ model: '5bfc11fa-50ac-b7e7-4328-83aa11fa50ac', permission:'viewer'},\n\t\t\t\t\t\t{ model: '00b1fb4d-091d-4f11-8dd6-9deaf71f5ca5', permission:'commenter'},\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproject: 'Bim Logo',\n\t\t\t\t\tproject_admin: true\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t}", + "type": "post" + }, + { + "title": "Example usage (with teamspace admin):", + "content": "POST /teamSpace1/invitations HTTP/1.1\n\t{\n\t\temail:'anotherinvited@enterprise.com'\n\t\tjob: 'jobA',\n\t\tpermissions: {\n\t\t\tteamspace_admin: true\n\t\t}\n\t}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success (with projects and models, permissions)", + "content": "HTTP/1.1 200 OK\n\t{\n\t\temail:'invited@enterprise.com'\n\t\tjob: 'jobA',\n\t\tpermissions:{\n\t\t\tprojects:[\n\t\t\t\t{\n\t\t\t\t\tproject: '5bf7df65-f3a8-4337-8016-a63f00000000',\n\t\t\t\t\tmodels: [\n\t\t\t\t\t\t{ model: '5bfc11fa-50ac-b7e7-4328-83aa11fa50ac', permission:'viewer'},\n\t\t\t\t\t\t{ model: '00b1fb4d-091d-4f11-8dd6-9deaf71f5ca5', permission:'commenter'},\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproject: 'Bim Logo',\n\t\t\t\t\tproject_admin: true\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t}", + "type": "json" + }, + { + "title": "Success (with teamspace admin)", + "content": "HTTP/1.1 200 OK\n\t{\n\t\temail:'anotherinvited@enterprise.com'\n\t\tjob: 'jobA',\n\t\tpermissions: {\n\t\t\tteamspace_admin: true\n\t\t}\n\t}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/invitations.js", + "groupTitle": "Invitations" + }, + { + "type": "get", + "url": "/:teamspace/invitations", + "title": "Get invitations list", + "name": "getInvitations", + "group": "Invitations", + "description": "It returns a list of invitations with their permissions and their jobs.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/invitations HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n[\n {\n \"email\": \"7e634bae01db4f@mail.com\",\n \"job\": \"jobA\",\n \"permissions\": {\n \"teamspace_admin\": true\n }\n },\n {\n \"email\": \"93393d28f953@mail.com\",\n \"job\": \"jobA\",\n \"permissions\": {\n \"projects\": [\n {\n \"project\": '5bf7df65-f3a8-4337-8016-a63f00000000',\n \"project_admin\": true\n }\n ]\n }\n },\n {\n \"email\": \"48bc8da2f3bc@mail.com\",\n \"job\": \"jobA\",\n \"permissions\": {\n \"projects\": [\n {\n \"project\": '5bf7df65-f3a8-4337-8016-a63f00000000',\n \"models\": [\n {\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n \"permission\": \"collaborator\"\n }\n ]\n }\n ]\n }\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/invitations.js", + "groupTitle": "Invitations" + }, + { + "type": "delete", + "url": "/:teamspace/invitations/:email", + "title": "Revokes an invitation", + "name": "removeInvitation", + "group": "Invitations", + "description": "It revokes an invitation for a teamspace
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "email", + "description": "Email of the user invitation that you wish to revoke
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /teamSpace1/invitations/invited@enterprise.com HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/invitations.js", + "groupTitle": "Invitations" + }, + { + "type": "get", + "url": "/:teamspace/invoices", + "title": "List all invoices", + "name": "listInvoices", + "group": "Invoice", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "description": "List all invoices if available, to current logged in user.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "Invoice", + "description": "Object
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\"_id\":\"invoice_ID\",\n\t\"invoiceNo\":\"AA-111\",\n\t\"nextPaymentAmount\":00,\n\t\"taxAmount\":0,\n\t\"amount\":00,\n\t\"currency\":\"GBP\",\n\t\"transactionId\":\"transaction_ID\",\n\t\"gateway\":\"GATEWAY_PROVIDER\",\n\t\"billingAgreementId\":\"billing_agreement_ID\",\n\t\"periodEnd\":\"2018-06-03\",\n\t\"periodStart\":\"2018-05-04\",\n\t \"info\":\n\t\t{\n\t\t \"vat\":\"\",\n\t\t \"countryCode\":\"AO\",\n\t\t \"postalCode\":\"SW11 1BQ\",\n\t\t \"city\":\"London\",\n\t\t \"line2\":\"1 Street Road\",\n\t\t \"line1\":\"London\",\n\t\t \"company\":\"Comapny\",\n\t\t \"lastName\":\"User Lastname\",\n\t\t \"firstName\":\"User Firstname\",\n\t\t \"_id\":\"invoice_ID\",\n\t\t \"countryName\":\"United Kingdom\"\n\t\t},\n\t \"nextPaymentDate\":\"2018-06-04\",\n\t \"createdAt\":\"04-05-2018 15:59\",\n\t \"__v\":0,\"state\":\"complete\",\n\t \"items\":\n\t\t[{\n\t\t\t \"name\":\"pricingPlanName\",\n\t\t\t\"currency\":\"GBP\",\n\t\t\t\"amount\":00,\n\t\t\t\"taxAmount\":0,\n\t\t\t\"_id\":\"invoice_ID\",\n\t\t\t\"description\":\"Advance License (from 2018)\",\n\t\t\t\"id\":\"invoice_ID\"},\n\t\t\t {\n\t\t\t\t\"name\":\"pricingPlanName\",\n\t\t\t\t\"currency\":\"GBP\",\n\t\t\t\t\"amount\":29,\n\t\t\t\t\"taxAmount\":0,\n\t\t\t\t\"_id\":\"invoice_ID\",\n\t\t\t\t\"description\":\"This is a dummy invoice for use with API Documentation\",\n\t\t\t\t\"id\":\"invoice_ID\"\n\t\t}],\n\t\t\t\t\"type\":\"invoice\",\n\t\t\t\t\"proRata\":false,\n\t\t\t\t\"pending\":false,\n\t\t\t\t\"unitPrice\":\"29.00\",\n\t\t\t\t\"B2B_EU\":false,\n\t\t\t\t\"taxPercentage\":0,\n\t\t\t\t\"createdAtDate\":\"2018-05-04\",\n\t\t\t\t\"netAmount\":00\n\t}\n]", + "type": "json" + } + ] + }, + "error": { + "fields": { + "401": [ + { + "group": "401", + "optional": false, + "field": "NOT_AUTHORIZED", + "description": "Not Authorized
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "\nHTTP/1.1 401 Not Authorized\n{\n\t\"message\":\"Not Authorized\",\n\t\"status\":401,\"code\":\n\t\"NOT_AUTHORIZED\",\n\t\"value\":9,\n\t\"place\":\"GET /nabile/subscriptions\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/invoice.js", + "groupTitle": "Invoice" + }, + { + "type": "get", + "url": "/:teamspace/invoices/:invoiceNo.html", + "title": "Render invoices as HTML", + "name": "renderInvoice", + "group": "Invoice", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "invoiceNo", + "description": "Invoice number to render.
" + } + ] + } + }, + "description": "Render a HTML web page of the requested invoice.
", + "version": "0.0.0", + "filename": "src/v4/routes/invoice.js", + "groupTitle": "Invoice" + }, + { + "type": "get", + "url": "/:teamspace/invoices/:invoiceNo.pdf", + "title": "Render invoices as PDF", + "name": "renderInvoicePDF", + "group": "Invoice", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "optional": false, + "field": "invoiceNo.pdf", + "description": "Invoice to render.
" + } + ] + } + }, + "description": "Render out a PDF version of the requested invocie.
", + "version": "0.0.0", + "filename": "src/v4/routes/invoice.js", + "groupTitle": "Invoice" + }, + { + "type": "post", + "url": "/:teamspace/:model/issues/:issueId/resources", + "title": "Attach resources to an issue", + "name": "attachResource", + "group": "Issues", + "description": "Attaches file or url resources to an issue. If the type of the resource is file it should be send as multipart/form-data. Both types at the same time cant be sent. So in order to attach files and urls it should be done with two different requests.
This method triggers a chat event
", + "parameter": { + "fields": { + "Request body file resource (multipart/form-data)": [ + { + "group": "Request body file resource (multipart/form-data)", + "type": "File[]", + "optional": false, + "field": "files", + "description": "The array of files to be attached
" + }, + { + "group": "Request body file resource (multipart/form-data)", + "type": "String[]", + "optional": false, + "field": "names", + "description": "The names of the files; it should have the same length as the files field and should include the file extension
" + } + ], + "Request body url resource": [ + { + "group": "Request body url resource", + "type": "String[]", + "optional": false, + "field": "urls", + "description": "The array of urls to be attached
" + }, + { + "group": "Request body url resource", + "type": "String[]", + "optional": false, + "field": "names", + "description": "The names of the urls; it should have the same length as the url field
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success example result after two files has been uploaded", + "content": "\n[\n {\n \"_id\":\"7617f775-9eb7-4877-8ec3-98ea3457e519\",\n \"size\":1422,\n \"issueIds\":[\n \"3e8a11e0-9812-11e9-9c4d-ebde5888e062\"\n ],\n \"name\":\"todo.txt\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996461\n },\n {\n \"_id\":\"e25e42d5-c4f0-4fbc-a8f4-bc9899e6662a\",\n \"size\":2509356,\n \"issueIds\":[\n \"3e8a11e0-9812-11e9-9c4d-ebde5888e062\"\n ],\n \"name\":\"football.gif\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996462\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "post", + "url": "/:teamspace/:model/issues/:issueId/comments", + "title": "Add comment to issue", + "name": "commentIssue", + "group": "Issues", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "comment", + "description": "Comment text
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": true, + "field": "viewpoint", + "description": "The viewpoint associated with the comment
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ], + "Type: Viewpoint": [ + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "Right vector of viewpoint indicating the direction of right in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "Up vector of viewpoint indicating the direction of up in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Position vector indicates where in the world the viewpoint is positioned
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "Vector indicating where in the world the viewpoint is looking at
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "Vector indicating the direction the viewpoint is looking at in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "Vector indicating the near plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "Vector indicating the far plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "Angle of the field of view
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "Aspect ratio of the fustrum
" + }, + { + "group": "Type: Viewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "Clipping planes associated with the viewpoint
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group ID generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "highlighted_group", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group definition for those objects (this shouldnt be use simultaneously with highlighted_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "hidden_group", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects (this shouldnt be use simultaneously with hidden_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "shown_group", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the definition of the group to hold those objects (this shouldnt be use simultaneously with shown_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "override_groups", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups with one group for each colour
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "transformation_groups", + "description": "List of groups with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "Base64 string representing the screenshot associated with the viewpoint
" + } + ], + "Type: Group": [ + { + "group": "Type: Group", + "type": "Number[3]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Type: Group", + "type": "ModelObjects", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + } + ], + "Type: ModelObjects": [ + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "account", + "description": "The account that has the model which contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id that contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String[]", + "optional": false, + "field": "shared_ids", + "description": "The shared ids of objects to be selected
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + }, + "examples": [ + { + "title": "PAYLOAD", + "content": "{\n \"comment\": \"This is a commment\",\n \"viewpoint\": {right: [-0.0374530553817749, -7.450580596923828e-9, -0.9992983341217041],…}\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n{\n guid: \"096de7ed-e3bb-4d5b-ae68-17a5cf7a5e5e\",\n comment: \"This is a commment\",\n created: 1558534690327,\n guid: \"096de7ed-e3bb-4d5b-ae68-17a5cf7a5e5e\",\n owner: \"username\",\n viewpoint: {right: [-0.0374530553817749, -7.450580596923828e-9, -0.9992983341217041],…}\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "404", + "description": "Issue not found
" + }, + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "Comment with no text
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "delete", + "url": "/:teamspace/:model/issues/:issueId/comments", + "title": "Deletes an comment from an issue", + "name": "commentIssue", + "group": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "Json", + "optional": false, + "field": "PAYLOAD", + "description": "The data with the comment guid to be deleted.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ] + }, + "examples": [ + { + "title": "PAYLOAD", + "content": "{\n guid: \"096de7ed-e3bb-4d5b-ae68-17a5cf7a5e5e\"\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n{\n guid: \"096de7ed-e3bb-4d5b-ae68-17a5cf7a5e5e\"\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "404", + "description": "Issue not found
" + }, + { + "group": "Error 4xx", + "optional": false, + "field": "401", + "description": "Not authorized, when the user is not the owner
" + }, + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "Issue comment sealed, when the user is trying to delete a comment that is sealed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "delete", + "url": "/:teamspace/:model/issues/:issueId/resources", + "title": "Detach a resource from an issue", + "name": "detachResource", + "group": "Issues", + "description": "Detachs a resource from an issue. If the issue is the last entity the resources has been attached to it also deletes the resource from the system. This method triggers a chat event .
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "_id", + "description": "The resource id to be detached
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n \"_id\":\"e25e42d5-c4f0-4fbc-a8f4-bc9899e6662a\",\n \"size\":2509356,\n \"issueIds\":[\n ],\n \"name\":\"football.gif\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996462\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "get", + "url": "/:teamspace/:model/issues/:issueId", + "title": "Get issue", + "name": "findIssue", + "group": "Issues", + "description": "Find an issue with the requested Issue ID.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "Object", + "optional": false, + "field": "issue", + "description": "The Issue matching the Issue ID
" + } + ] + }, + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n{\n\t\taccount: \"username\"\n\t\tassigned_roles: []\n\t\tcommentCount: 0\n\t\tcreated: 1542723030489\n\t\tcreator_role: \"3D Repo\"\n\t\tdesc: \"(No Description)\"\n\t\tmodel: \"model_ID\"\n\t\tmodelCode: \"\"\n\t\tname: \"Issue one\"\n\t\tnumber: 1\n\t\towner: \"username\"\n\t\tposition: []\n\t\tpriority: \"none\"\n\t\trev_id: \"revision_ID\"\n\t\tscale: 1\n\t\tstatus: \"open\"\n\t\tthumbnail: \"USERNAME/MODEL_ID/issues/ISSUE_ID/thumbnail.png\"\n\t\ttopic_type: \"for_information\"\n\t\ttypePrefix: \"Architectural\"\n\t\tviewCount: 1\n\t\tviewpoint: {near: 24.057758331298828, far: 12028.87890625, fov: 1.0471975803375244,…}\n\t\t__v: 0\n\t\t_id: \"ISSUE_ID\"\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "ISSUE_NOT_FOUND", + "description": "Issue not found
" + } + ] + }, + "examples": [ + { + "title": "HTTP/1.1 404 Not Found", + "content": "HTTP/1.1 404 Not Found\n{\n\t \"place\": \"GET /issues/:issueId\",\n\t \"status\": 500,\n\t \"message\": \"Issue not found\",\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues.bcfzip", + "title": "Download issues BCF file", + "name": "getIssuesBCF", + "group": "Issues", + "description": "Download issues as a BCF file.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:revId/issues.bcfzip", + "title": "Get Issues BCF zip file by revision ID", + "name": "getIssuesBCFTRid", + "group": "Issues", + "description": "Get Issues BCF export based on revision ID.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues/:issueId/viewpoints/:viewpointId/screenshot.png", + "title": "Get issue viewpoint screenshot", + "name": "getScreenshot", + "group": "Issues", + "description": "Get an issue viewpoint screenshot.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewpointId", + "description": "Viewpoint ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues/:issueId/viewpoints/:viewpointId/screenshotSmall.png", + "title": "Get smaller version of Issue screenshot", + "name": "getScreenshotSmall", + "group": "Issues", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "Issue", + "description": "Screenshot.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewpointId", + "description": "Viewpoint ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues/:issueId/thumbnail.png", + "title": "Get issue thumbnail", + "name": "getThumbnail", + "group": "Issues", + "description": "Retrieve screenshot thumbnail image for requested issue.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "thumbnail", + "description": "Thumbnail image
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ] + } + } + }, + { + "type": "post", + "url": "/:teamspace/:model/issues.bcfzip", + "title": "Import BCF file", + "name": "importBCF", + "group": "Issues", + "description": "Upload issues BCF file.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues?[query]", + "title": "List Issues", + "name": "listIssues", + "group": "Issues", + "description": "List all issues for model.
", + "success": { + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"ISSUE_ID\",\n\t\t\"creator_role\":\"Client\",\"scale\":1,\n\t\t\"due_date\":1543881600000,\n\t\t\"priority\":\"low\",\n\t\t\"desc\":\"reverse\",\n\t\t\"topic_type\":\"for_information\",\n\t\t\"status\":\"for approval\",\n\t\t\"owner\":\"username\",\n\t\t\"created\":1546217360002,\n\t\t\"name\":\"Without reverse\",\n\t\t\"number\":2,\n\t\t\"rev_id\":\"REVISION_ID\",\n\t\t\"__v\":0,\n\t\t\"assigned_roles\":[\"Architect\"],\n\t\t\"viewCount\":1,\n\t\t\"commentCount\":0,\n\t\t\"thumbnail\":\"nabile/MODEL_ID/issues/ISSUE_ID/thumbnail.png\",\n\t\t\"position\":[8341.8056640625,1279.962158203125,-3050.34521484375],\n\t\t\"typePrefix\":\"sample\",\n\t\t\"modelCode\":\"\",\n\t\t\"account\":\"username\",\n\t\t\"model\":\"MODEL_ID\",\n\t\t\"viewpoint\":\n\t\t\t{\n\t\t\t\t\"near\":54.739341735839844,\n\t\t\t\t\"far\":27369.669921875,\n\t\t\t\t\"fov\":1.0471975803375244,\n\t\t\t\t\"aspect_ratio\":1.451704502105713,\n\t\t\t\t\"hideIfc\":true,\n\t\t\t\t\"guid\":\"9279d95e-3aee-49c2-ba45-9d2302044597\",\n\t\t\t\t\"_id\":\"5c296790e5f57704580ca00a\",\n\t\t\t\t\"type\":\"perspective\",\n\t\t\t\t\"screenshot\":\"ACCOUNT/MODEL_ID/issues/ISSUE_ID/viewpoints/MODEL_ID/screenshot.png\",\n\t\t\t\t\"clippingPlanes\":[],\"right\":[0.7270411252975464,1.862645149230957e-8,0.6865938901901245],\n\t\t\t\t\"view_dir\":[0.6777805089950562,-0.15971262753009796,-0.7177084684371948],\n\t\t\t\t\"look_at\":[8400.001953125,2339.99951171875,-9599.9990234375],\n\t\t\t\t\"position\":[-3360.6259765625,5111.28125,2853.4453125],\n\t\t\t\t\"up\":[0.10965770483016968,0.9871635437011719,-0.11611767113208771],\n\t\t\t\t\"screenshotSmall\":\"nabile/MODEL_ID/issues/ISSUE_ID/viewpoints/MODEL_ID/screenshotSmall.png\"\n\t\t\t}\n\t}\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": true, + "field": "convertCoords", + "description": "Convert coordinates to user space
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "updatedSince", + "description": "Only return issues updated since this value (in epoch value)
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "numbers", + "description": "Array of issue numbers to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "ids", + "description": "Array of issue IDs to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "topicTypes", + "description": "Array of topic types to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "status", + "description": "Array of status to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "priorities", + "description": "Array of priorities to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "owners", + "description": "Array of owners to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "assignedRoles", + "description": "Array of assigned roles to filter. For searching unassigned issues the one of the values should be 'Unassigned'.
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:revId/issues", + "title": "List Issues by revision ID", + "name": "listIssuesByRevision", + "group": "Issues", + "description": "Get all issues related to specific revision ID.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "Issues", + "description": "Object
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "\n[\n\t{\n\t\t\"_id\":\"issue_ID\",\n\t\t\"creator_role\":\"Client\",\n\t\t\"scale\":1,\n\t\t\"due_date\":1547424000000,\n\t\t\"priority\":\"low\",\n\t\t\"desc\":\"This is a description\",\n\t\t\"topic_type\":\"for_information\",\n\t\t\"status\":\"open\",\"owner\":\"username\",\n\t\t\"created\":1546626949432,\n\t\t\"name\":\"An Issue for API\",\n\t\t\"number\":3,\n\t\t\"rev_id\":\"9cf31c6e-37cc-4625-8cee-270cf731059e\",\n\t\t\"__v\":0,\n\t\t\"assigned_roles\":[\"Architect\"],\n\t\t\"viewCount\":1,\"commentCount\":0,\n\t\t\"thumbnail\":\"ACCOUNT/MODEL_ID/issues/ISSUE_ID/thumbnail.png\",\n\t\t\"position\":[],\n\t\t\"typePrefix\":\"sample\",\n\t\t\"modelCode\":\"\",\n\t\t\"account\":\"username\",\n\t\t\"model\":\"MODEL_ID\",\n\t\t\"viewpoint\":\n\t\t\t{\n\t\t\t\t\"near\":54.739341735839844,\n\t\t\t\t\"far\":27369.669921875,\n\t\t\t\t\"fov\":1.0471975803375244,\n\t\t\t\t\"aspect_ratio\":2.522167444229126,\n\t\t\t\t\"hideIfc\":true,\n\t\t\t\t\"guid\":\"5afbe23f-8307-42d0-ba77-f031922281ce\",\n\t\t\t\t\"_id\":\"5c2fa785b4af3c45f8f83c60\",\n\t\t\t\t\"type\":\"perspective\",\n\t\t\t\t\"screenshot\":\"username/MODEL_ID/issues/ISSUE_ID/viewpoints/5afbe23f-8307-42d0-ba77-f031922281ce/screenshot.png\",\n\t\t\t\t\"clippingPlanes\":[],\"right\":[0.7270411252975464,1.862645149230957e-8,0.6865938901901245],\n\t\t\t\t\t\"view_dir\":[0.6777805089950562,-0.15971262753009796,-0.7177084684371948],\n\t\t\t\t\t\"look_at\":[8400.001953125,2339.99951171875,-9599.9990234375],\n\t\t\t\t\t\"position\":[-3360.6259765625,5111.28125,2853.4453125],\n\t\t\t\t\t\"up\":[0.10965770483016968,0.9871635437011719,-0.11611767113208771],\n\t\t\t\t\t\"screenshotSmall\"username/MODEL_ID/issues/ISSUE_ID/viewpoints/5afbe23f-8307-42d0-ba77-f031922281ce/screenshot.png\"}\n\t}\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": true, + "field": "convertCoords", + "description": "Convert coordinates to user space
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "updatedSince", + "description": "Only return issues updated since this value (in epoch value)
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "numbers", + "description": "Array of issue numbers to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "ids", + "description": "Array of issue IDs to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "topicTypes", + "description": "Array of topic types to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "status", + "description": "Array of status to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "priorities", + "description": "Array of priorities to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "owners", + "description": "Array of owners to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "assignedRoles", + "description": "Array of assigned roles to filter. For searching unassigned issues the one of the values should be 'Unassigned'.
" + } + ] + } + } + }, + { + "type": "post", + "url": "/:teamspace/:model/issues", + "title": "Create issue", + "name": "newIssue", + "group": "Issues", + "description": "Creates a new issue.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "The name of the issue
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "assigned_roles", + "description": "The roles assigned to the issue. Even though its an array (this is for future support of multiple assigned jobs), currently it has one or none elements correspoing to the available jobs in the teamaspace.
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "status", + "description": "The status of the issue. It can have a value of "open","in progress","for approval", "void" or "closed".
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "priority", + "description": "The priority of the issue. It can have a value of "none", String"low", "medium" or "high".
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "topic_type", + "description": "Type of the issue. It's value has to be one of the defined topic_types for the model. See here for more details.
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": false, + "field": "viewpoint", + "description": "The viewpoint of the issue, defining the position of the camera and the screenshot for that position.
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "desc", + "description": "The description of the created issue
" + }, + { + "group": "Request body", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "The vector defining the pin of the issue. If the pin doesnt has an issue its an empty array.
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Type: Viewpoint": [ + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "Right vector of viewpoint indicating the direction of right in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "Up vector of viewpoint indicating the direction of up in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Position vector indicates where in the world the viewpoint is positioned
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "Vector indicating where in the world the viewpoint is looking at
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "Vector indicating the direction the viewpoint is looking at in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "Vector indicating the near plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "Vector indicating the far plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "Angle of the field of view
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "Aspect ratio of the fustrum
" + }, + { + "group": "Type: Viewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "Clipping planes associated with the viewpoint
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group ID generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "highlighted_group", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group definition for those objects (this shouldnt be use simultaneously with highlighted_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "hidden_group", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects (this shouldnt be use simultaneously with hidden_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "shown_group", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the definition of the group to hold those objects (this shouldnt be use simultaneously with shown_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "override_groups", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups with one group for each colour
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "transformation_groups", + "description": "List of groups with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "Base64 string representing the screenshot associated with the viewpoint
" + } + ], + "Type: Group": [ + { + "group": "Type: Group", + "type": "Number[3]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Type: Group", + "type": "ModelObjects", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + } + ], + "Type: ModelObjects": [ + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "account", + "description": "The account that has the model which contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id that contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String[]", + "optional": false, + "field": "shared_ids", + "description": "The shared ids of objects to be selected
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues HTTP/1.1\n{\n \"name\": \"Amazing issue\",\n \"assigned_roles\": [\n \"jobA\"\n ],\n \"status\": \"open\",\n \"priority\": \"none\",\n \"topic_type\": \"for_information\",\n \"viewpoint\": {\n \"right\": [\n 0.8471935391426086,\n -2.2351741790771484e-8,\n 0.5312844514846802\n ],\n \"up\": [\n 0.14098820090293884,\n 0.9641460180282593,\n -0.22482173144817352\n ],\n \"position\": [\n -5828.818359375,\n 5268.15625,\n 7829.76171875\n ],\n \"look_at\": [\n -2445.6826171875,\n 3515.4658203125,\n 2434.966552734375\n ],\n \"view_dir\": [\n 0.5122357606887817,\n -0.2653723657131195,\n -0.8168182373046875\n ],\n \"near\": 20.835742950439453,\n \"far\": 10417.87109375,\n \"fov\": 1.0471975803375244,\n \"aspect_ratio\": 4.031496047973633,\n \"clippingPlanes\": [],\n \"override_groups\": [\n {\n \"color\": [\n \t 0,\n \t 106,\n \t 255,\n \t 52\n \t ],\n \t \"objects\": [\n {\n \"shared_ids\": [\n \"ffd49cfd-57fb-4c31-84f7-02b41352b54f\"\n ],\n \"account\": \"teamSpace1\",\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\"\n }\n ]\n },\n {\n \"color\": [\n 96,\n 237,\n 61\n ],\n \t\"objects\": [\n \t {\n \"shared_ids\": [\n \"a4a14ee6-aa44-4f36-96bd-f80dbabf8ead\"\n ],\n \"account\": \"teamSpace1\",\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\"\n }\n ]\n }\n ],\n \"transformation_groups\": [\n {\n \"transformation\": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],\n \t \"objects\": [\n {\n \"shared_ids\": [\n \"ffd49cfd-57fb-4c31-84f7-02b41352b54f\"\n ],\n \"account\": \"teamSpace1\",\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\"\n }\n ]\n },\n {\n \"color\": [\n 96,\n 237,\n 61\n ],\n \t\"objects\": [\n \t {\n \"shared_ids\": [\n \"a4a14ee6-aa44-4f36-96bd-f80dbabf8ead\"\n ],\n \"account\": \"teamSpace1\",\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\"\n }\n ]\n }\n ],\n \"highlighted_group\": {\n \t\"objects\": [\n \t\t{\n \t\t\t\"shared_ids\": [\n \t\t\t\t\"60286d41-d897-4de6-a0ed-0929fa68be96\"\n \t\t\t],\n \t\t\t\"account\": \"teamSpace1\",\n \t\t\t\"model\": \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\"\n \t\t}\n \t],\n \t\"color\": [\n \t\t255,\n \t\t255,\n \t\t0\n \t]\n },\n \"hidden_group\": {\n \t\"objects\": [\n \t\t{\n \t\t\t\"shared_ids\": [\n \t\t\t\t\"57b0969f-6009-4e32-9153-2b17d3a3628b\"\n \t\t\t],\n \t\t\t\"account\": \"teamSpace1\",\n \t\t\t\"model\": \"b1fceab8-b0e9-4e45-850b-b9888efd6521\"\n \t\t}\n \t]\n }\n \"hideIfc\": true,\n \"screenshot\": \"iVBORw0KGgoAAAANSUhEUgAACAAAA...ggg==\"\n },\n \"desc\": \"This is the most awesome issue ever\",\n \"position\": [\n -3960.10205078125,\n 4487.1552734375,\n 3326.732177734375\n ]\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"name\": \"Amazing issue\",\n \"assigned_roles\": [\n \"jobA\"\n ],\n \"status\": \"open\",\n \"priority\": \"none\",\n \"topic_type\": \"for_information\",\n \"owner\": \"teamSpace1\",\n \"desc\": \"This is the most awesome issue ever\",\n \"rev_id\": \"330f909b-9279-41aa-a87c-1c46f53a8e93\",\n \"creator_role\": \"jobA\",\n \"scale\": 1,\n \"position\": [\n -3960.10205078125,\n 4487.1552734375,\n 3326.732177734375\n ],\n \"_id\": \"9ba5fb10-c8db-11e9-8f2a-ada77612c97e\",\n \"created\": 1566918114625,\n \"number\": 1,\n \"thumbnail\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/9ba5fb10-c8db-11e9-8f2a-ada77612c97e/thumbnail.png\",\n \"typePrefix\": \"Structural\",\n \"modelCode\": \"\",\n \"account\": \"teamSpace1\",\n \"model\": \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n \"viewpoint\": {\n \"right\": [\n 0.8471935391426086,\n -2.2351741790771484e-8,\n 0.5312844514846802\n ],\n \"up\": [\n 0.14098820090293884,\n 0.9641460180282593,\n -0.22482173144817352\n ],\n \"position\": [\n -5828.818359375,\n 5268.15625,\n 7829.76171875\n ],\n \"look_at\": [\n -2445.6826171875,\n 3515.4658203125,\n 2434.966552734375\n ],\n \"view_dir\": [\n 0.5122357606887817,\n -0.2653723657131195,\n -0.8168182373046875\n ],\n \"near\": 20.835742950439453,\n \"far\": 10417.87109375,\n \"fov\": 1.0471975803375244,\n \"aspect_ratio\": 4.031496047973633,\n \"clippingPlanes\": [],\n \"hidden_group_id\": \"119d5dc0-e223-11ea-8549-49012d4e4956\",\n \"highlighted_group_id\" : \"80c5a270-e223-11ea-8549-49012d4e4956\",\n \"override_group_ids\": [\n \"11952060-e223-11ea-8549-49012d4e4956\",\n \"bc5ca80-e6c7-11ea-bd51-ddd919e6418e\"\n ],\n \"transformation_group_ids\": [\n \"12345678-e223-11ea-8549-49012d4e4956\",\n \"12345678-e6c7-11ea-bd51-ddd919e6418e\"\n ],\n \"hideIfc\": true,\n \"screenshot\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/9ba5fb10-c8db-11e9-8f2a-ada77612c97e/viewpoints/125ce196-852c-49ed-9a2f-f9a77aa03390/screenshot.png\",\n \"guid\": \"125ce196-852c-49ed-9a2f-f9a77aa03390\",\n \"screenshotSmall\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/9ba5fb10-c8db-11e9-8f2a-ada77612c97e/viewpoints/125ce196-852c-49ed-9a2f-f9a77aa03390/screenshotSmall.png\"\n },\n \"comments\": [],\n \"extras\": {\n }\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "post", + "url": "/:teamspace/:model/revision/:revId/issues", + "title": "Create issue on revision", + "name": "newIssueRev", + "group": "Issues", + "description": "Creates a new issue for a particular revision. See here for more details.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ] + } + } + }, + { + "type": "post", + "url": "/:teamspace/:model/revision/:revId/issues.bcfzip", + "title": "Post Issues BCF zip file by revision ID", + "name": "postIssuesBCF", + "group": "Issues", + "description": "Upload Issues BCF file using current revision ID.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "status", + "description": ""ok" on success
" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP\n{\n\t\"status\":\"ok\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues.html", + "title": "Issues response into as HTML", + "name": "renderIssuesHTML", + "group": "Issues", + "description": "Render all Issues into a HTML webpage, response is rendered HTML.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:revId/issues.html", + "title": "Issues response into as HTML by revision ID", + "name": "renderIssuesHTMLRid", + "group": "Issues", + "description": "Render all Issues into a HTML webpage based on current revision ID.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ] + } + } + }, + { + "type": "patch", + "url": "/:teamspace/:model/issues/:issueId", + "title": "Update issue", + "name": "updateIssue", + "group": "Issues", + "description": "Updates an issue. It takes the part of the issue that can be updated. The system will create a system comment within the issue describing which values were changed. The user needs to be the teamspace administrator, the project administrator, has the same job as the creator of the issue, or has the issue assigned. In the case that the issue has been assigned to the user, the user cannot change it to the "closed" status.
If the issue is being updated to assigned to a job and the status of the issue has the value "for_approval", then the status of the issue is automatically changed to "in_progress".
If the user is changing the issue to the "for_approval" status, the issue will be assigned to the job that the creator of the issue.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "[]String", + "optional": true, + "field": "assigned_roles", + "description": "Job roles assigned to the issue
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "desc", + "description": "Description of issue
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "status", + "description": "The status of issue (values: "open", "in progress", "for approval", "closed")
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "topic_type", + "description": "Topic type of issue (see here for available types)
" + }, + { + "group": "Request body", + "type": "[3]Number", + "optional": true, + "field": "position", + "description": "Vector defining the pin position of the issue; empty if the issue has no pin
" + }, + { + "group": "Request body", + "type": "Number", + "optional": true, + "field": "due_date", + "description": "Due date timestamp for the issue
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "priority", + "description": "The priority of the issue (values: "none", "low", "medium", "high")
" + }, + { + "group": "Request body", + "type": "Number", + "optional": true, + "field": "scale", + "description": "The scale factor of the issue
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": true, + "field": "viewpoint", + "description": "The viewpoint and screenshot of the issue
" + }, + { + "group": "Request body", + "type": "Number", + "optional": true, + "field": "viewCount", + "description": "The viewcount of the issue
" + }, + { + "group": "Request body", + "type": "Object", + "optional": true, + "field": "extras", + "description": "A field containing any extras that wanted to be saved in the issue (typically used by BCF)
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ], + "Type: Viewpoint": [ + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "Right vector of viewpoint indicating the direction of right in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "Up vector of viewpoint indicating the direction of up in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Position vector indicates where in the world the viewpoint is positioned
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "Vector indicating where in the world the viewpoint is looking at
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "Vector indicating the direction the viewpoint is looking at in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "Vector indicating the near plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "Vector indicating the far plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "Angle of the field of view
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "Aspect ratio of the fustrum
" + }, + { + "group": "Type: Viewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "Clipping planes associated with the viewpoint
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group ID generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "highlighted_group", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group definition for those objects (this shouldnt be use simultaneously with highlighted_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "hidden_group", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects (this shouldnt be use simultaneously with hidden_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "shown_group", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the definition of the group to hold those objects (this shouldnt be use simultaneously with shown_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "override_groups", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups with one group for each colour
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "transformation_groups", + "description": "List of groups with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "Base64 string representing the screenshot associated with the viewpoint
" + } + ], + "Type: Group": [ + { + "group": "Type: Group", + "type": "Number[3]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Type: Group", + "type": "ModelObjects", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + } + ], + "Type: ModelObjects": [ + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "account", + "description": "The account that has the model which contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id that contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String[]", + "optional": false, + "field": "shared_ids", + "description": "The shared ids of objects to be selected
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PATCH /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/98c39770-c8e2-11e9-8f2a-ada77612c97e HTTP/1.1\n{\"status\":\"in progress\"}", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"_id\": \"98c39770-c8e2-11e9-8f2a-ada77612c97e\",\n \"name\": \"issue 2\",\n \"assigned_roles\": [\n \"jobC\"\n ],\n \"status\": \"in progress\",\n \"priority\": \"none\",\n \"topic_type\": \"for_information\",\n \"owner\": \"teamSpace1\",\n \"rev_id\": \"330f909b-9279-41aa-a87c-1c46f53a8e93\",\n \"creator_role\": \"jobA\",\n \"scale\": 1,\n \"created\": 1566921116263,\n \"desc\": \"(No Description)\",\n \"number\": 2,\n \"thumbnail\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/98c39770-c8e2-11e9-8f2a-ada77612c97e/thumbnail.png\",\n \"comments\": [\n {\n \"guid\": \"febbe083-5a98-4711-8d60-d2ac06721f83\",\n \"created\": 1566924049774,\n \"owner\": \"teamSpace1\",\n \"action\": {\n \"property\": \"assigned_roles\",\n \"from\": \"\",\n \"to\": \"jobB\"\n },\n \"sealed\": true\n },\n {\n \"guid\": \"e8ba32b2-d58e-4c33-90f7-c6e0404ef1ee\",\n \"created\": 1566924062287,\n \"owner\": \"teamSpace1\",\n \"action\": {\n \"property\": \"assigned_roles\",\n \"from\": \"jobB\",\n \"to\": \"jobC\"\n },\n \"sealed\": true\n },\n {\n \"guid\": \"83117273-2698-4d2d-bd47-7cd31e6a7b14\",\n \"created\": 1566924080277,\n \"owner\": \"teamSpace1\",\n \"action\": {\n \"property\": \"status\",\n \"from\": \"open\",\n \"to\": \"in progress\"\n }\n }\n ],\n \"status_last_changed\": 1566924080277,\n \"account\": \"teamSpace1\",\n \"model\": \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n \"viewpoint\": {\n \"right\": [\n 0.9953137040138245,\n -4.656612873077393e-10,\n 0.09669896215200424\n ],\n \"up\": [\n 0.005437099374830723,\n 0.9984180331230164,\n -0.05596357211470604\n ],\n \"position\": [\n -3083.33251953125,\n 3886.8251953125,\n 8998.2783203125\n ],\n \"look_at\": [\n -2445.680419921875,\n 3515.46533203125,\n 2434.984130859375\n ],\n \"view_dir\": [\n 0.0965459868311882,\n -0.05622706934809685,\n -0.9937390685081482\n ],\n \"near\": 20.835796356201172,\n \"far\": 10417.8984375,\n \"fov\": 1.0471975803375244,\n \"aspect_ratio\": 3.1459293365478516,\n \"clippingPlanes\": [],\n \"highlighted_group_id\": \"98b9d370-c8e2-11e9-8f2a-ada77612c97e\",\n \"hideIfc\": true,\n \"screenshot\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/98c39770-c8e2-11e9-8f2a-ada77612c97e/viewpoints/a1167d5f-2434-4a50-a158-d6a6745e7d6a/screenshot.png\",\n \"guid\": \"a1167d5f-2434-4a50-a158-d6a6745e7d6a\",\n \"screenshotSmall\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/98c39770-c8e2-11e9-8f2a-ada77612c97e/viewpoints/a1167d5f-2434-4a50-a158-d6a6745e7d6a/screenshotSmall.png\"\n },\n \"position\": [],\n \"extras\": {\n }\n}", + "type": "json" + } + ], + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "Updated", + "description": "Issue Object.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "patch", + "url": "/:teamspace/:model/revision/:revId/issues/:issueId", + "title": "Update issue on revision", + "name": "updateIssueRev", + "group": "Issues", + "description": "Updates an issue for a particular revision. See here for more details.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ] + } + } + }, + { + "type": "post", + "url": "/:teamspace/jobs/:jobId/:user", + "title": "Assign a job", + "name": "addUserToJob", + "group": "Jobs", + "description": "Assign a job to a user.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "optional": false, + "field": "jobId", + "description": "Job ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/jobs/Job1/alice HTTP/1.1", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs" + }, + { + "type": "post", + "url": "/:teamspace/jobs", + "title": "Create a new job", + "name": "createJob", + "group": "Jobs", + "description": "Create a new job on teamspace.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "_id", + "description": "Name of job
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "color", + "description": "Colour of job
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "success": { + "fields": { + "Job object": [ + { + "group": "Job object", + "type": "String", + "optional": false, + "field": "_id", + "description": "Name of job
" + }, + { + "group": "Job object", + "type": "String", + "optional": false, + "field": "color", + "description": "Colour of job
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t_id:\"Job4\",\n\tcolor:\"#ffff00\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/jobs HTTP/1.1\n{\n\t_id:\"Job4\",\n\tcolor:\"#ffff00\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs" + }, + { + "type": "delete", + "url": "/:teamspace/jobs/:jobId", + "title": "Delete a job", + "name": "deleteJob", + "group": "Jobs", + "description": "Delete a job from teamspace.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "jobId", + "description": "Job ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /acme/jobs/Job 1 HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs" + }, + { + "type": "get", + "url": "/:teamspace/myJob", + "title": "Get user job", + "name": "getUserJob", + "group": "Jobs", + "description": "Get job assigned to current user.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/myJob HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t_id\":\"Job1\",\n\t\"color\":\"ff00000\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/jobs/colors", + "title": "List colours", + "name": "listColors", + "group": "Jobs", + "description": "List job colours.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "String[]", + "optional": false, + "field": "colors", + "description": "List of job colours
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t\"#ff0000\",\n\t\"#00ff00\",\n\t\"#0000ff\"\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/jobs/colors HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/jobs", + "title": "List all jobs", + "name": "listJobs", + "group": "Jobs", + "description": "List of all jobs defined in teamspace.
", + "success": { + "fields": { + "Job object": [ + { + "group": "Job object", + "type": "String", + "optional": false, + "field": "_id", + "description": "Name of job
" + }, + { + "group": "Job object", + "type": "String", + "optional": false, + "field": "color", + "description": "Colour of job
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"Job1\",\n\t\t\"color\":\"#ff0000\"\n\t},\n\t{\n\t\t\"_id\":\"Job2\",\n\t\t\"color\":\"#00ff00\"\n\t},\n\t{\n\t\t\"_id\":\"Job3\",\n\t\t\"color\":\"#0000ff\"\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/jobs HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + } + }, + { + "type": "put", + "url": "/:teamspace/jobs/:jobId", + "title": "Update job", + "name": "updateJob", + "group": "Jobs", + "description": "Update job.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "jobId", + "description": "Job ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "_id", + "description": "Name of job
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "color", + "description": "Colour of job
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /acme/jobs/Job1 HTTP/1.1\n{\n\t_id:\"Renamed Job\",\n\tcolor:\"#00ffff\"\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs" + }, + { + "type": "get", + "url": "/:teamspace/:model/maps/hereadminlabeloverlay/:zoomLevel/:gridx/:gridy.png?[query]", + "title": "Here admin layer", + "name": "getHereAdminOverlayTile", + "group": "Maps", + "description": "Retrieve a Here Maps administrative labels overlay tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/hereadminlabeloverlay/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps aerial map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/hereaerial/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nGet Here Maps service options.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/ HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nGeographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/maps/herebuildings/:lat/:long/tile.json", + "title": "Here building elevation", + "name": "getHereBuildingsFromLongLat", + "group": "Maps", + "description": "Retrieve building elevation information from Here Maps.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "lat", + "description": "Latitude
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "long", + "description": "Longitude
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/herebuildings/51.524575/-0.139088/tile.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"Rows\":[\n\t\t{\n\t\t\t\"BUILDING_ID\":\"700567270\",\n\t\t\t\"FACE_ID\":\"700567270\",\n\t\t\t\"FEATURE_TYPE\":\"2005700\",\n\t\t\t\"HEIGHT\":\"22\",\n\t\t\t\"GROUND_CLEARANCE\":null,\n\t\t\t\"CF_ID\":\"1400645341\",\n\t\t\t\"HAS_3DLM\":\"N\",\n\t\t\t\"NAME\":null,\n\t\t\t\"LAT\":\"5150745,9,-12,-4,10,-5,2\",\n\t\t\t\"LON\":\"-14284,18,14,-9,-12,-9,-2\",\n\t\t\t\"INNER_LAT\":null,\n\t\t\t\"INNER_LON\":null\n\t\t},\n\t\t{\n\t\t\t\"BUILDING_ID\":\"700567273\",\n\t\t\t\"FACE_ID\":\"700567273\",\n\t\t\t\"FEATURE_TYPE\":\"2005700\",\n\t\t\t\"HEIGHT\":\"11\",\n\t\t\t\"GROUND_CLEARANCE\":null,\n\t\t\t\"CF_ID\":\"1400645344\",\n\t\t\t\"HAS_3DLM\":\"N\",\n\t\t\t\"NAME\":null,\n\t\t\t\"LAT\":\"5150742,-12,-4,-4,11,5,4\",\n\t\t\t\"LON\":\"-14252,14,-9,-8,-14,8,9\",\n\t\t\t\"INNER_LAT\":null,\n\t\t\t\"INNER_LON\":null\n\t\t}\n\t]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
" + }, + { + "type": "get", + "url": "/:teamspace/:model/maps/heregrey/:zoomLevel/:gridx/:gridy.png?[query]", + "title": "Here grey tile", + "name": "getHereGreyTile", + "group": "Maps", + "description": "Retrieve a Here Maps grey map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heregrey/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps grey transit map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heregreytransit/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps hybrid map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/herehybrid/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps label overlay tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/herelabeloverlay/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps line and label overlay tile image of street lines, city centre labels, and item labels.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/herelinelabeloverlay/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/here/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps point-of-interest (POI) map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/herepoi/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps terrain map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/hereterrain/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps toll zone map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heretollzone/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps traffic flow overlay tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heretrafficflow/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "min_traffic_congestion", + "description": "Specifies the minimum traffic congestion level to use for rendering traffic flow (free, heavy, queuing, blocked)
" + }, + { + "group": "Query", + "type": "DateTime", + "optional": true, + "field": "time", + "description": "Date and time for showing historical traffic patterns
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps traffic map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heretraffic/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "min_traffic_congestion", + "description": "Specifies the minimum traffic congestion level to use for rendering traffic flow (free, heavy, queuing, blocked)
" + }, + { + "group": "Query", + "type": "DateTime", + "optional": true, + "field": "time", + "description": "Date and time for showing historical traffic patterns
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps truck restrictions overlay tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heretruckoverlay/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps truck restrictions map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heretruck/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve an Open Street Map (OSM) map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/osm/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nList the available geographic information system (GIS) sources and map layers.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "Object[]", + "optional": false, + "field": "maps", + "description": "List of available map objects
" + } + ], + "Map object": [ + { + "group": "Map object", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of map provider
" + }, + { + "group": "Map object", + "type": "Object[]", + "optional": false, + "field": "layers", + "description": "List of available map layer objects
" + } + ], + "Layer object": [ + { + "group": "Layer object", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of map layer
" + }, + { + "group": "Layer object", + "type": "String", + "optional": false, + "field": "source", + "description": "Map source identifier
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"maps\":[\n\t\t{\n\t\t\t\"name\":\"Open Street Map\",\n\t\t\t\"layers\":[\n\t\t\t\t{\n\t\t\t\t\t\"name\":\"Map Tiles\",\n\t\t\t\t\t\"source\":\"OSM\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"name\":\"Here\",\n\t\t\t\"layers\":[\n\t\t\t\t{\n\t\t\t\t\t\"name\":\"Map Tiles\",\n\t\t\t\t\t\"source\":\"HERE\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"name\":\"Traffic Flow\",\n\t\t\t\t\t\"source\":\"HERE_TRAFFIC_FLOW\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"name\":\"Truck Restrictions\",\n\t\t\t\t\t\"source\":\"HERE_TRUCK_OVERLAY\"\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/meta/4DTaskSequence.json", + "title": "Get All metadata for 4D Sequence Tags", + "name": "getAllIdsWith4DSequenceTag", + "group": "Meta", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/meta/4DTaskSequence.json", + "title": "Get All metadata with 4D Sequence Tags by revision", + "name": "getAllIdsWith4DSequenceTagRev", + "group": "Meta", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/meta/all.json?filter=:filter", + "title": "Get all metadata", + "name": "getAllMetadata", + "group": "Meta", + "description": "Get all objects in the tree with their metadata.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "filter", + "description": "(optional) properties to filter for, comma separated
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/meta/all.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"data\": [\n {\n \"_id\": \"2f461edf-4544-412a-bb84-ffdb3bbe563b\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuilding\",\n \"IFC GUID\": \"00tMo7QcxqWdIGvc4sMN2A\",\n \"BuildingID\": \"n/a\",\n \"IsPermanentID\": \"True\",\n \"OccupancyType\": \"Private dwelling\",\n \"IsLandmarked\": \"True\",\n \"NumberOfStoreys\": 2\n },\n \"parents\": [\n \"9eeddbe2-750d-46fb-988f-bcf9ec2ecf51\"\n ]\n },\n {\n \"_id\": \"85ad29bd-cd99-4472-a92f-86266b07e57d\",\n \"metadata\": {\n \"IFC Type\": \"IfcSite\",\n \"IFC GUID\": \"20FpTZCqJy2vhVJYtjuIce\"\n },\n \"parents\": [\n \"48359ad0-9b6d-44ed-ae93-47e2ec69ea88\"\n ]\n },\n {\n \"_id\": \"b5fe5dcf-ce8c-4b1e-a96b-bdc5aa001963\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuildingElementProxy\",\n \"IFC GUID\": \"3VkTAO0fr0XQHS3DxQzfxm\",\n \"Reference\": \"LegoRoundTree\"\n },\n \"parents\": [\n \"2bf2a864-5cb0-41ba-85a8-c2cffc3da06d\"\n ]\n },\n {\n \"_id\": \"c4682cf2-7b2a-41c7-8fe2-c0c39512dd99\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuildingStorey\",\n \"IFC GUID\": \"1oZ0wPs_PE8ANCPg3bIs4j\",\n \"AboveGround\": \"False\"\n },\n \"parents\": [\n \"323a9900-ece1-4857-8980-ec96ffc7f681\"\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/meta/all.json?filter=:filter", + "title": "Get all metadata by revision", + "name": "getAllMetadataByRev", + "group": "Meta", + "description": "Get all tree objects with their metadata tags by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to get metadata from
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "filter", + "description": "(optional) properties to filter for, comma separated
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/meta/findObjsWith/:metaKey.json", + "title": "Get ids by metadata", + "name": "getIdsWithMetadataField", + "group": "Meta", + "description": "Get ids of tree objects which has a particular metadata key (in the latest revision). It also returns the metadata value for that key.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "metaKey", + "description": "Unique metadata key
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/meta/findObjsWith/IsLandmarked.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"data\": [\n {\n \"_id\": \"2f461edf-4544-412a-bb84-ffdb3bbe563b\",\n \"metadata\": {\n \"value\": \"True\"\n },\n \"parents\": [\n \"9eeddbe2-750d-46fb-988f-bcf9ec2ecf51\"\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/meta/findObjsWith/:metaKey.json", + "title": "Get ids by metadata", + "name": "getIdsWithMetadataFieldByRev", + "group": "Meta", + "description": "Get ids of tree objects which has a particular metadata key from a particular revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to get metadata from
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "metaKey", + "description": "Unique meta key
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/meta/:id.json", + "title": "Get metadata", + "name": "getMetadataById", + "group": "Meta", + "description": "Get all metadata tags by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "optional": false, + "field": "id", + "description": "Meta Unique ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/meta/b5fe5dcf-ce8c-4b1e-a96b-bdc5aa001963.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"meta\": [\n {\n \"_id\": \"b5fe5dcf-ce8c-4b1e-a96b-bdc5aa001963\",\n \"name\": \"LegoRoundTree:LegoRoundTree:302403\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuildingElementProxy\",\n \"IFC GUID\": \"3VkTAO0fr0XQHS3DxQzfxm\",\n \"Reference\": \"LegoRoundTree\"\n }\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/meta/keys", + "title": "Get array of metadata fields", + "name": "getMetadataFields", + "group": "Meta", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/meta/keys HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n \"AboveGround\",\n \"BuildingID\",\n \"IFC GUID\",\n \"IFC Type\",\n \"IsLandmarked\",\n \"IsPermanentID\",\n \"NumberOfStoreys\",\n \"OccupancyType\",\n \"Reference\"\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "post", + "url": "/:teamspace/:model/revision(/master/head/|/:revId)/meta/rules?filter=:filter", + "title": "Filter metadata by rules", + "name": "queryMetadataByRules", + "group": "Meta", + "description": "Get all objects matching filter rules in the tree with their metadata.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "filter", + "description": "(optional) properties to filter for, comma separated
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "meshids", + "description": "Flag that returns Mesh IDs for matching rule queries
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (/master/head)", + "content": "POST /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/meta/rules HTTP/1.1\n[\n\t{\n\t\t\"field\":\"Area\",\n\t\t\"operator\":\"GT\",\n\t\t\"values\":[5]\n\t},\n\t{\n\t\t\"field\":\"IFC Type\",\n\t\t\"operator\":\"IS\",\n\t\t\"values\":[\n\t\t\t\"IfcWall\",\n\t\t\t\"IfcDoor\"\n\t\t]\n\t}\n]", + "type": "post" + }, + { + "title": "Example usage (/:revId)", + "content": "POST /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/00000000-0000-0000-0000-000000000001/meta/rules HTTP/1.1", + "type": "post" + }, + { + "title": "Example usage (mesh IDs)", + "content": "POST /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/meta/rules?meshids=true HTTP/1.1", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success (metadata):", + "content": "{\n \"data\": [\n {\n \"_id\": \"2f461edf-4544-412a-bb84-ffdb3bbe563b\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuilding\",\n \"IFC GUID\": \"00tMo7QcxqWdIGvc4sMN2A\",\n \"BuildingID\": \"n/a\",\n \"IsPermanentID\": \"True\",\n \"OccupancyType\": \"Private dwelling\",\n \"IsLandmarked\": \"True\",\n \"Area\": 9000,\n \"NumberOfStoreys\": 2\n },\n \"parents\": [\n \"9eeddbe2-750d-46fb-988f-bcf9ec2ecf51\"\n ]\n },\n {\n \"_id\": \"85ad29bd-cd99-4472-a92f-86266b07e57d\",\n \"metadata\": {\n \"IFC Type\": \"IfcWall\",\n \"IFC GUID\": \"20FpTZCqJy2vhVJYtjuIce\"\n },\n \"parents\": [\n \"48359ad0-9b6d-44ed-ae93-47e2ec69ea88\"\n ]\n },\n {\n \"_id\": \"b5fe5dcf-ce8c-4b1e-a96b-bdc5aa001963\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuildingElementProxy\",\n \"IFC GUID\": \"3VkTAO0fr0XQHS3DxQzfxm\",\n \"Area\": 6,\n \"Reference\": \"LegoRoundTree\"\n },\n \"parents\": [\n \"2bf2a864-5cb0-41ba-85a8-c2cffc3da06d\"\n ]\n },\n {\n \"_id\": \"c4682cf2-7b2a-41c7-8fe2-c0c39512dd99\",\n \"metadata\": {\n \"IFC Type\": \"IfcDoor\",\n \"IFC GUID\": \"1oZ0wPs_PE8ANCPg3bIs4j\",\n \"AboveGround\": \"False\"\n },\n \"parents\": [\n \"323a9900-ece1-4857-8980-ec96ffc7f681\"\n ]\n }\n ]\n}", + "type": "json" + }, + { + "title": "Success (federation metadata):", + "content": "{\n \"data\": [],\n \"subModels\": [\n {\n \"data\": [\n {\n \"_id\": \"2f461edf-4544-412a-bb84-ffdb3bbe563b\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuilding\",\n \"IFC GUID\": \"00tMo7QcxqWdIGvc4sMN2A\",\n \"BuildingID\": \"n/a\",\n \"IsPermanentID\": \"True\",\n \"OccupancyType\": \"Private dwelling\",\n \"IsLandmarked\": \"True\",\n \"Area\": 9000,\n \"NumberOfStoreys\": 2\n },\n \"parents\": [\n \"9eeddbe2-750d-46fb-988f-bcf9ec2ecf51\"\n ]\n },\n {\n \"_id\": \"85ad29bd-cd99-4472-a92f-86266b07e57d\",\n \"metadata\": {\n \"IFC Type\": \"IfcWall\",\n \"IFC GUID\": \"20FpTZCqJy2vhVJYtjuIce\"\n },\n \"parents\": [\n \"48359ad0-9b6d-44ed-ae93-47e2ec69ea88\"\n ]\n },\n {\n \"_id\": \"b5fe5dcf-ce8c-4b1e-a96b-bdc5aa001963\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuildingElementProxy\",\n \"IFC GUID\": \"3VkTAO0fr0XQHS3DxQzfxm\",\n \"Area\": 6,\n \"Reference\": \"LegoRoundTree\"\n },\n \"parents\": [\n \"2bf2a864-5cb0-41ba-85a8-c2cffc3da06d\"\n ]\n },\n {\n \"_id\": \"c4682cf2-7b2a-41c7-8fe2-c0c39512dd99\",\n \"metadata\": {\n \"IFC Type\": \"IfcDoor\",\n \"IFC GUID\": \"1oZ0wPs_PE8ANCPg3bIs4j\",\n \"AboveGround\": \"False\"\n },\n \"parents\": [\n \"323a9900-ece1-4857-8980-ec96ffc7f681\"\n ]\n }\n ],\n \"account\": \"acme\",\n \"model\": \"00000000-0000-0000-0000-000000000001\"\n },\n {\n \"data\": [\n {\n \"_id\": \"2f461edf-4544-412a-bb84-ffdb3bbe563b\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuilding\",\n \"IFC GUID\": \"12tTo3QcxqWd5Gvc4sABCA\",\n \"BuildingID\": \"Site B\",\n \"IsPermanentID\": \"True\",\n \"OccupancyType\": \"Private dwelling\",\n \"IsLandmarked\": \"True\",\n \"Area\": 20,\n \"NumberOfStoreys\": 1\n },\n \"parents\": [\n \"9eeddbe2-750d-46fb-988f-bcf9ec2ecf51\"\n ]\n }\n ],\n \"account\": \"acme\",\n \"model\": \"00000000-0000-0000-0000-000000000002\"\n }\n ]\n}", + "type": "json" + }, + { + "title": "Success (mesh IDs):", + "content": "[\n\t{\n\t\t\"account\": \"acme\",\n\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\"mesh_ids\": [\n\t\t\t\"11111111-1111-1111-1111-111111111111\",\n\t\t\t\"22222222-2222-2222-2222-222222222222\",\n\t\t\t\"33333333-3333-3333-3333-333333333333\",\n\t\t\t\"44444444-4444-4444-4444-444444444444\"\n\t\t]\n\t}\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "patch", + "url": "/:teamspace/models/permissions", + "title": "Batch update model permissions", + "name": "batchUpdateModelPermissions", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "ModelPermissions[]", + "optional": false, + "field": "BODY", + "description": "List of model permissions
" + } + ], + "Request body: ModelPermissions": [ + { + "group": "Request body: ModelPermissions", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Request body: ModelPermissions", + "type": "Permission[]", + "optional": false, + "field": "permissions", + "description": "List of user permissions
" + } + ], + "Request body: Permission": [ + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "user", + "description": "User ID
" + }, + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "permission", + "description": "Permission type ('viewer'|'commenter'|'collaborator'|'').
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PATCH /acme/models/permissions HTTP/1.1\n[\n {\n model: \"00000000-0000-0000-0000-000000000000\",\n permissions: [\n {\n user: \"alice\",\n permission: \"collaborator\"\n },\n {\n user: \"bob\",\n permission: \"commenter\"\n },\n {\n user: \"mike\",\n permission: \"\"\n }\n ]\n },\n {\n model: \"11111111-1111-1111-1111-111111111111\",\n permissions: [\n {\n user: \"charlie\",\n permission: \"viewer\"\n }\n ]\n },\n {\n model: \"22222222-2222-2222-2222-222222222222\",\n permissions: [\n {\n user: \"dave\",\n permission: \"commenter\"\n },\n {\n user: \"eve\",\n permission: \"\"\n }\n ]\n }\n]", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n status: \"ok\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "post", + "url": "/:teamspace/model", + "title": "Create a model", + "name": "createModel", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "project", + "description": "Name of project in which the model will be created
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "modelName", + "description": "Name of the model to be created
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "unit", + "description": "The unit in which the model is specified
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "desc", + "description": "A description of the model
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "code", + "description": "A code to be associated with the model; it can be of maximum 5 letters (a-z) and numbers
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "type", + "description": "The type of the model
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/model HTTP/1.1\n{\n project: \"classic project\",\n modelName: \"awesomeModel\",\n unit: \"ft\",\n desc: \"This is an awesome model!\",\n code: \"awe12\",\n type: \"Mechanical\"\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n account: \"teamSpace1\",\n model: \"17d09947-368e-4748-877f-d105842c6681\",\n name: \"awesomeModel\",\n permissions: [\n \"change_model_settings\",\n \"upload_files\",\n \"create_issue\",\n \"comment_issue\",\n \"view_issue\",\n \"view_model\",\n \"download_model\",\n \"edit_federation\",\n \"delete_federation\",\n \"delete_model\",\n \"manage_model_permission\"\n ],\n setting: {\n type: \"Mechanical\",\n desc: \"\",\n name: \"awesomeModel\",\n _id: \"17d09947-368e-4748-877f-d105842c6681\",\n subModels: [],\n surveyPoints: [],\n properties: {\n unit: \"ft\"\n },\n permissions: [],\n status: \"ok\"\n }\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "delete", + "url": "/:teamspace/:model", + "title": "Delete Model.", + "name": "deleteModel", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to delete.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /teamSpace1/17d09947-368e-4748-877f-d105842c6681 HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"account\": \"teamSpace1\",\n \"model\": \"17d09947-368e-4748-877f-d105842c6681\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/download/latest", + "title": "Download model", + "name": "downloadModel", + "group": "Model", + "description": "It returns the model file using the latest revision.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to download.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/download/latest HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success (with headers):", + "content": "\nHTTP/1.1 200 OK\nX-Powered-By: Express\nVary: Origin\nAccess-Control-Allow-Credentials: true\nContent-Length: 11964\nContent-Disposition: attachment;filename=3DrepoBIM_blocks.obj\nset-cookie: connect.sid=s%3Ax4mDfLE-NqmPUO5tSSxPAyMjgov6YRge.bVSUoML3obJNp1XuObpbtXY44RjgEhJtsTz%2FwhwIckE; Domain=local.3drepo.io; Path=/; Expires=Tue, 27 Aug 2019 12:18:34 GMT; HttpOnly\nDate: Tue, 27 Aug 2019 11:18:34 GMT\nConnection: keep-alive\n\n/***** FILE CONTENTS ******\\", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/settings/heliSpeed", + "title": "Get model heli speed", + "name": "getHeliSpeed", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The modelId to get Heli speed for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/settings/heliSpeed HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\"heliSpeed\":1}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/idMap.json", + "title": "Get ID map", + "name": "getIdMap", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model id to Get ID Map for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (federation):", + "content": "GET /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/revision/master/head/idMap.json HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (model):", + "content": "GET /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/revision/master/head/idMap.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success (federation):", + "content": "{\n mainTree: {\n idMap: {\n 261bf9df-64d7-4642-8bb2-0a79abd370ec: \"d86573c9-beec-4f06-b194-18b6983a3d71\",\n 528c62e6-5cf8-4868-b5ff-733c128b4b4e: \"6047f788-8317-45ff-b692-29e03071ec63\",\n 7d5ce878-6ec9-4c11-a96d-12b68c9e9c7c: \"7d9eefe0-2b8a-4de3-9acb-c216c9b48c9f\",\n 95744e20-4b4d-4fc1-8ba7-1f31ebf772b6: \"d2c0e845-b392-429e-86bd-6c7453b78654\",\n 71634e9c-da2c-4ea7-bd04-44971d3fd8dc: \"6e40ecbc-bb2f-4504-8f00-80b12fb04443\",\n a70dd58c-c09e-4ed4-ac7e-914dbd145302: \"f1a14ded-6528-4937-b31d-ce4b3ca813d8\",\n d68cf5e7-4d0f-4702-8a92-c81b72928c54: \"d012d6ba-01d2-4460-921e-72539a1ac197\"\n }\n },\n subModels: [\n {\n account: \"teamSpace1\",\n model: \"b1fceab8-b0e9-4e45-850b-b9888efd6521\",\n idMap: {\n a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e: \"57b0969f-6009-4e32-9153-2b17d3a3628b\",\n 33c36fee-622d-46a5-8be1-a1bd295aa7d1: \"1e47d53e-cad8-489b-89ea-7c6c7b8d0e6c\"\n }\n },\n {\n account: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\",\n idMap: {\n 8a1f9cad-18d8-47ce-9cbd-08ba53858ced: \"60286d41-d897-4de6-a0ed-0929fa68be96\",\n ea37c2ed-39d4-4236-843c-332d52876c96: \"9c4be293-0d8f-4e37-b115-d2c752824bfe\"\n }\n },\n {\n account: \"teamSpace1\",\n model: \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n idMap: {\n 8ef1c52e-8838-46dc-9825-efe46aa10041: \"a4a14ee6-aa44-4f36-96bd-f80dbabf8ead\",\n ecc25d63-87e0-4600-ae60-f38f766bc9e4: \"ffd49cfd-57fb-4c31-84f7-02b41352b54f\",\n 3abc5450-5db8-459b-80ea-cb9fca9ccedd: \"a6947de3-25f4-4c2c-a150-22f0ed9ce4dd\"\n }\n }\n ]\n}", + "type": "json" + }, + { + "title": "Success (model):", + "content": "{\n mainTree: {\n idMap: {\n a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e: \"57b0969f-6009-4e32-9153-2b17d3a3628b\",\n 33c36fee-622d-46a5-8be1-a1bd295aa7d1: \"1e47d53e-cad8-489b-89ea-7c6c7b8d0e6c\"\n }\n },\n subModels: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/idToMeshes.json", + "title": "Get ID to meshes", + "name": "getIdToMeshes", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get ID Meshes for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/revision/master/head/idToMeshes.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n mainTree: {\n a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e: [\n \"a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e\"\n ],\n 33c36fee-622d-46a5-8be1-a1bd295aa7d1: [\n \"a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e\"\n ]\n },\n subModels: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/:uid.json.mpc", + "title": "Get JSON Mpc", + "name": "getJsonMpc", + "group": "Model", + "description": "Get the unity bundle mpc json file. The path for this api is provided in the data retrieved by either one of the endpoints /:teamspace/:model/revision/master/head/unityAssets.json or /:teamspace/:model/revision/:rev/unityAssets.json
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "id of the model to get JSON Mpc for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "uid", + "description": "id of the json.mpc file
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/92fc213b-1bab-49a4-b10e-f4368a52d500_unity.json.mpc HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n numberOfIDs: 1,\n maxGeoCount: 1,\n mapping: [\n {\n name: \"ce413e99-8469-4ed0-86e3-ff50bf4fed89\",\n sharedID: \"a876e59a-8cda-4d61-b438-c74ce7b8855d\",\n min: [\n -3515.19556,\n -5790.91504,\n 0\n ],\n max: [\n 0,\n 0,\n 3502.927\n ],\n usage: [\n \"92fc213b-1bab-49a4-b10e-f4368a52d500_0\"\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/modelProperties.json", + "title": "Get model properties", + "name": "getModelProperties", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get properties for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/revision/master/head/modelProperties.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n properties: {\n hiddenNodes: []\n },\n subModels: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model.json", + "title": "Get model settings", + "name": "getModelSetting", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "Object", + "optional": false, + "field": "model", + "description": "The modelId to get settings for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n _id: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n timestamp: \"2019-05-13T16:54:44.000Z\",\n type: \"Structural\",\n desc: \"\",\n name: \"Lego Tree\",\n subModels: [],\n surveyPoints: [],\n properties: {\n unit: \"mm\"\n },\n permissions: [\n \"change_model_settings\",\n \"upload_files\",\n \"create_issue\",\n \"comment_issue\",\n \"view_issue\",\n \"view_model\",\n \"download_model\",\n \"edit_federation\",\n \"delete_federation\",\n \"delete_model\",\n \"manage_model_permission\"\n ],\n status: \"ok\",\n id: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n model: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n account: \"teamSpace1\",\n headRevisions: {\n }\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/fulltree.json", + "title": "Get tree", + "name": "getModelTree", + "group": "Model", + "description": "Returns the full tree for the model
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/fulltree.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n mainTree: {\n nodes: {\n account: \"teamSpace1\",\n project: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n type: \"transformation\",\n name: \"RootNode\",\n path: \"73a41cea-4c6b-47ed-936b-3f5641aecb52\",\n _id: \"73a41cea-4c6b-47ed-936b-3f5641aecb52\",\n shared_id: \"4dd46b6f-099e-42cd-b045-6460200e7995\",\n children: [\n {\n account: \"teamSpace1\",\n project: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n type: \"transformation\",\n name: \"Fouliiferous Tree H64_2\",\n path: \"73a41cea-4c6b-47ed-936b-3f5641aecb52__33fe7c13-17a4-43d6-af03-ceae6880322f\",\n _id: \"33fe7c13-17a4-43d6-af03-ceae6880322f\",\n shared_id: \"b69a8384-c29d-4954-9efa-4c7bc14f1d3d\",\n children: [\n {\n account: \"teamSpace1\",\n project: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n type: \"mesh\",\n name: \"Fouliiferous Tree H64\",\n path: \"73a41cea-4c6b-47ed-936b-3f5641aecb52__33fe7c13-17a4-43d6-af03-ceae6880322f__ce413e99-8469-4ed0-86e3-ff50bf4fed89\",\n _id: \"ce413e99-8469-4ed0-86e3-ff50bf4fed89\",\n shared_id: \"a876e59a-8cda-4d61-b438-c74ce7b8855d\",\n toggleState: \"visible\"\n }\n ],\n toggleState: \"visible\"\n }\n ],\n toggleState: \"visible\"\n },\n idToName: {\n ce413e99-8469-4ed0-86e3-ff50bf4fed89: \"Fouliiferous Tree H64\",\n 33fe7c13-17a4-43d6-af03-ceae6880322f: \"Fouliiferous Tree H64_2\",\n 73a41cea-4c6b-47ed-936b-3f5641aecb52: \"RootNode\"\n }\n },\n subTrees: []\n}", + "type": "json" + } + ] + }, + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/model/permissions?models=[MODELS]", + "title": "Get multiple models permissions", + "name": "getMultipleModelsPermissions", + "group": "Model", + "description": "Gets the permissions of a list of models
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace.
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String[]", + "optional": false, + "field": "MODELS", + "description": "An array of model ids.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/models/permissions?models=5ce7dd19-1252-4548-a9c9-4a5414f2e0c5,3549ddf6-885d-4977-87f1-eeac43a0e818 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n model: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n name: \"Lego Tree\",\n permissions: [\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"commenter\"\n },\n {\n user: \"projectshared\"\n },\n {\n user: \"fed\"\n },\n {\n user: \"teamSpace1\"\n },\n {\n user: \"unassignedTeamspace1UserJobA\"\n },\n {\n user: \"viewerTeamspace1Model1JobA\"\n },\n {\n user: \"viewerTeamspace1Model1JobB\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\"\n },\n {\n user: \"adminTeamspace1JobA\"\n },\n {\n user: \"adminTeamspace1JobB\"\n },\n {\n user: \"weirdTeamspace\"\n }\n ],\n subModels: []\n },\n {\n model: \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n federate: {\n },\n name: \"Full Logo \",\n permissions: [\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"commenter\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n },\n {\n user: \"projectshared\",\n permission: \"collaborator\"\n },\n {\n user: \"fed\"\n },\n {\n user: \"teamSpace1\"\n },\n {\n user: \"unassignedTeamspace1UserJobA\"\n },\n {\n user: \"viewerTeamspace1Model1JobB\"\n },\n {\n user: \"adminTeamspace1JobA\"\n },\n {\n user: \"adminTeamspace1JobB\"\n },\n {\n user: \"weirdTeamspace\"\n }\n ],\n subModels: [\n {\n database: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\"\n },\n {\n database: \"teamSpace1\",\n model: \"b1fceab8-b0e9-4e45-850b-b9888efd6521\"\n }\n ]\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/idMap.json", + "title": "Get tree path by revision", + "name": "getRevIdMap", + "group": "Model", + "description": "Get tree path by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to ID map for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/idToMeshes.json", + "title": "Get ID Meshes by revision", + "name": "getRevIdToMeshes", + "group": "Model", + "description": "Get ID Meshes by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to use.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/modelProperties.json", + "title": "Get model properties by revision", + "name": "getRevModelProperties", + "group": "Model", + "description": "Get model properties by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to use.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/fulltree.json", + "title": "Get tree by revision", + "name": "getRevModelTree", + "group": "Model", + "description": "Get full tree by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get Tree for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/srcAssets.json", + "title": "Get revision's src assets", + "name": "getRevSrcAssets", + "group": "Model", + "description": "Get the model's assets but of a particular revision
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id to get unity assets for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "The revision of the model to get src assets for
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /Repo3DDemo/01713310-2286-11eb-93c1-296aba26cc11/revision/4d48e3de-1c87-4fdf-87bf-d92c224eb3fe/srcAssets.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"models\": [\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"011382b0-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"153cf665-2c84-4ff9-a9e2-ba495af8e6dc\",\n \"07c67b6c-4b02-435f-8639-ea88403c36f7\",\n \"2967230f-67fa-45dc-9686-161e45c7c8a2\"\n ],\n \"offset\": [\n 9.999999999999787,\n 0,\n -9.999999999999787\n ]\n },\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"01168ff0-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"89d5580a-3224-4e50-bbab-89d855c320e0\"\n ],\n \"offset\": [\n 1610,\n 740,\n -2410\n ]\n },\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"01153060-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"c14dbbee-a8fd-4ed8-8641-9e24737f8238\"\n ],\n \"offset\": [\n -688.095458984375,\n 6410.9140625,\n 683.460205078125\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/unityAssets.json", + "title": "Get revision's unity assets", + "name": "getRevUnityAssets", + "group": "Model", + "description": "Get the model's assets but of a particular revision
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id to get unity assets for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "The revision of the model to get unity assets for
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/unityAssets.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n models: [\n {\n _id: \"Mw+Qm5J5QaqofBxG9TqOkw==\",\n assets: [\n \"/teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/92fc213b-1bab-49a4-b10e-f4368a52d500.unity3d\"\n ],\n database: \"teamSpace1\",\n model: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n offset: [\n -688.095458984375,\n 6410.9140625,\n 683.460205078125\n ],\n jsonFiles: [\n \"/teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/92fc213b-1bab-49a4-b10e-f4368a52d500_unity.json.mpc\"\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/assetsMeta", + "title": "Get revision's metadata about the assets generated", + "name": "getRevUnityAssets", + "group": "Model", + "description": "Get the model's assets metadata of a particular revision
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "The revision of the model
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/assetsMeta HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n superMeshes: [\n {\n _id: \"Get a mesh presented in SRC format.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "id of the model
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "uid", + "description": "id of the SRC file.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/permissions", + "title": "Get model permissions", + "name": "getSingleModelPermissions", + "group": "Model", + "description": "Gets the permissions of a model
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get Permission for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/permissions HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"commenter\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n },\n {\n user: \"projectshared\",\n permission: \"collaborator\"\n },\n {\n user: \"fed\"\n },\n {\n user: \"teamSpace1\"\n },\n {\n user: \"unassignedTeamspace1UserJobA\"\n },\n {\n user: \"viewerTeamspace1Model1JobB\"\n },\n {\n user: \"adminTeamspace1JobA\"\n },\n {\n user: \"adminTeamspace1JobB\"\n },\n {\n user: \"weirdTeamspace\"\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/srcAssets.json", + "title": "Get Src assets for the master branch", + "name": "getSrcAssets", + "group": "Model", + "description": "Get the lastest model's version src assets
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id to get unity assets for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /Repo3DDemo/01713310-2286-11eb-93c1-296aba26cc11/revision/master/head/srcAssets.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"models\": [\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"011382b0-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"153cf665-2c84-4ff9-a9e2-ba495af8e6dc\",\n \"07c67b6c-4b02-435f-8639-ea88403c36f7\",\n \"2967230f-67fa-45dc-9686-161e45c7c8a2\"\n ],\n \"offset\": [\n 9.999999999999787,\n 0,\n -9.999999999999787\n ]\n },\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"01168ff0-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"89d5580a-3224-4e50-bbab-89d855c320e0\"\n ],\n \"offset\": [\n 1610,\n 740,\n -2410\n ]\n },\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"01153060-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"c14dbbee-a8fd-4ed8-8641-9e24737f8238\"\n ],\n \"offset\": [\n -688.095458984375,\n 6410.9140625,\n 683.460205078125\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:revId/subModelRevisions", + "title": "Get submodel revisions by rev", + "name": "getSubModelRevisionsByRev", + "group": "Model", + "description": "In a federation it returns the submodels revisions of a particular federation revision. See more details here
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get properties for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/subModelRevisions", + "title": "Get submodels revisions", + "name": "getSubRevisionModels", + "group": "Model", + "description": "In a federation it returns the submodels revisions of the latest federation revision.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get properties for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/revision/master/head/subModelRevisions HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"b1fceab8-b0e9-4e45-850b-b9888efd6521\": {\n \"name\": \"block\",\n \"revisions\": [\n {\n \"_id\": \"ddcc3213-af61-4d30-921f-e502d1c2199c\",\n \"author\": \"teamSpace1\",\n \"tag\": \"block\",\n \"timestamp\": \"2019-05-02T16:16:49.000Z\",\n \"name\": \"ddcc3213-af61-4d30-921f-e502d1c2199c\",\n \"branch\": \"master\"\n }\n ]\n },\n \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\": {\n \"name\": \"letters\",\n \"revisions\": [\n {\n \"_id\": \"a1bcfa72-ff37-41ac-95ab-66e450a37896\",\n \"author\": \"teamSpace1\",\n \"tag\": \"letters\",\n \"timestamp\": \"2019-05-02T16:16:32.000Z\",\n \"name\": \"a1bcfa72-ff37-41ac-95ab-66e450a37896\",\n \"branch\": \"master\"\n }\n ]\n },\n \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\": {\n \"name\": \"pipes\",\n \"revisions\": [\n {\n \"_id\": \"9ee1190b-cd25-4467-8d38-5af7c77cab5a\",\n \"author\": \"teamSpace1\",\n \"tag\": \"pipes\",\n \"timestamp\": \"2019-05-02T16:17:04.000Z\",\n \"name\": \"9ee1190b-cd25-4467-8d38-5af7c77cab5a\",\n \"branch\": \"master\"\n }\n ]\n }\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/tree_path.json", + "title": "Get tree paths", + "name": "getTreePath", + "group": "Model", + "description": "Returns the full tree path for the model and if the model is a federation of it submodels. These tree paths have the path to get to every object in the model.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get tree path for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/revision/master/head/tree_path.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n mainTree: {\n idToPath: {\n d68cf5e7-4d0f-4702-8a92-c81b72928c54: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54\",\n 261bf9df-64d7-4642-8bb2-0a79abd370ec: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__528c62e6-5cf8-4868-b5ff-733c128b4b4e__261bf9df-64d7-4642-8bb2-0a79abd370ec\",\n 528c62e6-5cf8-4868-b5ff-733c128b4b4e: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__528c62e6-5cf8-4868-b5ff-733c128b4b4e\",\n 7d5ce878-6ec9-4c11-a96d-12b68c9e9c7c: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__95744e20-4b4d-4fc1-8ba7-1f31ebf772b6__7d5ce878-6ec9-4c11-a96d-12b68c9e9c7c\",\n 71634e9c-da2c-4ea7-bd04-44971d3fd8dc: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__a70dd58c-c09e-4ed4-ac7e-914dbd145302__71634e9c-da2c-4ea7-bd04-44971d3fd8dc\",\n 95744e20-4b4d-4fc1-8ba7-1f31ebf772b6: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__95744e20-4b4d-4fc1-8ba7-1f31ebf772b6\",\n a70dd58c-c09e-4ed4-ac7e-914dbd145302: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__a70dd58c-c09e-4ed4-ac7e-914dbd145302\"\n }\n },\n subModels: [\n {\n account: \"teamSpace1\",\n model: \"b1fceab8-b0e9-4e45-850b-b9888efd6521\",\n idToPath: {\n a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e: \"33c36fee-622d-46a5-8be1-a1bd295aa7d1__a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e\",\n 33c36fee-622d-46a5-8be1-a1bd295aa7d1: \"33c36fee-622d-46a5-8be1-a1bd295aa7d1\"\n }\n },\n {\n account: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\",\n idToPath: {\n 8a1f9cad-18d8-47ce-9cbd-08ba53858ced: \"ea37c2ed-39d4-4236-843c-332d52876c96__8a1f9cad-18d8-47ce-9cbd-08ba53858ced\",\n ea37c2ed-39d4-4236-843c-332d52876c96: \"ea37c2ed-39d4-4236-843c-332d52876c96\"\n }\n },\n {\n account: \"teamSpace1\",\n model: \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n idToPath: {\n 8ef1c52e-8838-46dc-9825-efe46aa10041: \"3abc5450-5db8-459b-80ea-cb9fca9ccedd__8ef1c52e-8838-46dc-9825-efe46aa10041\",\n ecc25d63-87e0-4600-ae60-f38f766bc9e4: \"3abc5450-5db8-459b-80ea-cb9fca9ccedd__ecc25d63-87e0-4600-ae60-f38f766bc9e4\",\n 3abc5450-5db8-459b-80ea-cb9fca9ccedd: \"3abc5450-5db8-459b-80ea-cb9fca9ccedd\"\n }\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/tree_path.json", + "title": "Get tree path by revision", + "name": "getTreePathByRevision", + "group": "Model", + "description": "Get tree path by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get tree path for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/unityAssets.json", + "title": "Get unity assets", + "name": "getUnityAssets", + "group": "Model", + "description": "Get the lastest model's version unity assets
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id to get unity assets for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/unityAssets.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n models: [\n {\n _id: \"Mw+Qm5J5QaqofBxG9TqOkw==\",\n assets: [\n \"/teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/92fc213b-1bab-49a4-b10e-f4368a52d500.unity3d\"\n ],\n database: \"teamSpace1\",\n model: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n offset: [\n -688.095458984375,\n 6410.9140625,\n 683.460205078125\n ],\n jsonFiles: [\n \"/teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/92fc213b-1bab-49a4-b10e-f4368a52d500_unity.json.mpc\"\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/unityAssets.json", + "title": "Get unity assets", + "name": "getUnityAssets", + "group": "Model", + "description": "Get the lastest model's version unity assets
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id to get unity assets for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "The revision of the model
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/unityAssets.json HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/assetsMeta HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n superMeshes: [\n {\n _id: \"Gets an actual unity bundle file. The path for this api is provided in the data retrieved by either one of the endpoints /:teamspace/:model/revision/master/head/unityAssets.json or /:teamspace/:model/revision/:rev/unityAssets.json
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "id of the model
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "uid", + "description": "id of the unity bundle
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "post", + "url": "/:teamspace/:model/upload/ms-chunking", + "title": "Initialise MS chunking request", + "name": "initChunking", + "group": "Model", + "description": "Initiate model revision data for MS Logic Apps chunked upload.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model id to upload.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "filename", + "description": "Filename of content to upload
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "tag", + "description": "Tag name for new revision
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "desc", + "description": "Description for new revision
" + }, + { + "group": "Request body", + "type": "Boolean", + "optional": true, + "field": "importAnimations", + "description": "Whether to import animations within a sequence
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/upload/ms-chunking HTTP/1.1\n{\n\t\"filename\": \"structure.ifc\",\n\t\"tag\": \"rev001\",\n\t\"desc\": \"Revision 2\"\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n{\n\t\"corID\": \"00000000-0000-1111-2222-333333333333\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/searchtree.json?searchString=[searchString]", + "title": "Search model tree", + "name": "searchModelTree", + "group": "Model", + "description": "Searches the model (or models if it is a federation) tree and returns the objects matching their names with the searchString param.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to use.
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": false, + "field": "searchString", + "description": "The string to use for search tree objects
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/searchtree.json?searchString=fou HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n \"_id\": \"33fe7c13-17a4-43d6-af03-ceae6880322f\",\n \"name\": \"Fouliiferous Tree H64_2\",\n \"account\": \"teamSpace1\",\n \"model\": \"3549ddf6-885d-4977-87f1-eeac43a0e818\"\n },\n {\n \"_id\": \"ce413e99-8469-4ed0-86e3-ff50bf4fed89\",\n \"name\": \"Fouliiferous Tree H64\",\n \"account\": \"teamSpace1\",\n \"model\": \"3549ddf6-885d-4977-87f1-eeac43a0e818\"\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/searchtree.json?searchString=[searchString]", + "title": "Search model tree by revision", + "name": "searchModelTreeRev", + "group": "Model", + "description": "Searches the model (or models if it is a federation) tree and returns the objects matching their names with the searchString param. See more details here
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to use.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": false, + "field": "searchString", + "description": "The string to use for search tree objects
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "put", + "url": "/:teamspace/:model/settings/heliSpeed", + "title": "Update model heli speed", + "name": "updateHeliSpeed", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to Update Heli speed.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "heliSpeed", + "description": "The value of the speed that will replace the heli speed.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/settings/heliSpeed HTTP/1.1\n{\"heliSpeed\":3}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "put", + "url": "/:teamspace/:model", + "title": "Update Federated Model", + "name": "updateModel", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Federated Model ID to update
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "[]Submodel", + "optional": false, + "field": "subModels", + "description": "Information on the models that are going to get federated
" + } + ], + "Request body: SubModel": [ + { + "group": "Request body: SubModel", + "type": "String", + "optional": false, + "field": "database", + "description": "The teamspace name which the model belongs to
" + }, + { + "group": "Request body: SubModel", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id to be federated
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5 HTTP/1.1\n{\n subModels: [\n {\n database: \"teamSpace1\",\n model: \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n },\n {\n database: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\",\n }\n ]\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n account: \"teamSpace1\",\n model: \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n setting: {\n _id: \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n federate: {\n },\n desc: \"\",\n name: \"Full Logo test\",\n timestamp: \"2019-08-22T10:42:05.242Z\",\n type: \"Federation\",\n subModels: [\n {\n database: \"teamSpace1\",\n model: \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\"\n },\n {\n database: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\"\n }\n ],\n surveyPoints: [\n {\n position: [\n 0,\n 0,\n 0\n ],\n latLong: [\n 0,\n 0\n ]\n }\n ],\n properties: {\n unit: \"mm\"\n },\n permissions: [\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n }\n ],\n status: \"ok\"\n }\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "patch", + "url": "/:teamspace/:model/permissions", + "title": "Update model permissions", + "name": "updateModelPermissions", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "Permission[]", + "optional": false, + "field": "BODY", + "description": "List of user permissions
" + } + ], + "Request body: Permission": [ + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "user", + "description": "User ID
" + }, + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "permission", + "description": "Permission type ('viewer'|'commenter'|'collaborator'|'').
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (add user permission):", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/permissions HTTP/1.1\n[\n {\n user: \"alice\",\n permission: \"collaborator\"\n }\n]", + "type": "patch" + }, + { + "title": "Example usage (add multiple user permissions):", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/permissions HTTP/1.1\n[\n {\n user: \"bob\",\n permission: \"commenter\"\n },\n {\n user: \"mike\",\n permission: \"viewer\"\n }\n]", + "type": "patch" + }, + { + "title": "Example usage (remove user permission):", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/permissions HTTP/1.1\n[\n {\n user: \"mike\",\n permission: \"\"\n }\n]", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n status: \"ok\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "post", + "url": "/:teamspace/models/permissions", + "title": "Update multiple models permissions", + "name": "updateMultiplePermissions", + "group": "Model", + "deprecated": { + "content": "use now (#Model:batchUpdateModelPermissions)" + }, + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "[]ModelPermissions", + "optional": false, + "field": "BODY", + "description": "Its an array with a list of model ids and their permissions.
" + } + ], + "Request body: ModelPermissions": [ + { + "group": "Request body: ModelPermissions", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id of the model that will have their permission changed. If it's a federation the entry in the response corresponding with the model will have the 'federated' field set to true.
" + }, + { + "group": "Request body: ModelPermissions", + "type": "[]Permission", + "optional": false, + "field": "permissions", + "description": "An array indicating the new permissions.
" + } + ], + "Request body: Permission": [ + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "user", + "description": "User ID
" + }, + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "permission", + "description": "Permission type ('viewer'|'commenter'|'collaborator'|'').
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/models/permissions HTTP/1.1\n[\n {\n model: \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n permissions: [\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n }\n ]\n }\n]", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n name: \"Full Logo \",\n federate: true,\n model: \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n permissions: [\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n },\n {\n user: \"projectshared\"\n },\n {\n user: \"fed\"\n },\n {\n user: \"teamSpace1\"\n },\n {\n user: \"unassignedTeamspace1UserJobA\"\n },\n {\n user: \"viewerTeamspace1Model1JobB\"\n },\n {\n user: \"adminTeamspace1JobA\"\n },\n {\n user: \"adminTeamspace1JobB\"\n },\n {\n user: \"weirdTeamspace\"\n }\n ],\n subModels: [\n {\n database: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\"\n },\n {\n database: \"teamSpace1\",\n model: \"b1fceab8-b0e9-4e45-850b-b9888efd6521\"\n }\n ]\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "post", + "url": "/:teamspace/:model/permissions", + "title": "Update model permissions", + "name": "updatePermissions", + "group": "Model", + "deprecated": { + "content": "use now (#Model:updateModelPermissions)" + }, + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id of the model to be updated
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "[]Permissions", + "optional": false, + "field": "BODY", + "description": "Its an array with a list of users and their permission type.
" + } + ], + "Request body: Permission": [ + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "user", + "description": "User ID
" + }, + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "permission", + "description": "Permission type ('viewer'|'commenter'|'collaborator'|'').
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/permissions HTTP/1.1\n[\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n }\n]", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n _id: \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n timestamp: \"2019-05-02T16:17:14.000Z\",\n type: \"Architectural\",\n desc: \"\",\n name: \"pipes\",\n subModels: [],\n surveyPoints: [\n {\n position: [\n 0,\n 0,\n 0\n ],\n latLong: [\n 0,\n 0\n ]\n }\n ],\n properties: {\n unit: \"mm\"\n },\n permissions: [\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n }\n ],\n status: \"ok\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "put", + "url": "/:teamspace/:model/settings/", + "title": "Update Model Settings", + "name": "updateSettings", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to update Settings.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of the model to be created
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "unit", + "description": "The unit in which the model is specified
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "code", + "description": "A code to be associated with the model; it can be of maximum 5 letters (a-z) and numbers
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "type", + "description": "The type of the model
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "angleFromNorth", + "description": "GIS bearing angle
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "elevation", + "description": "GIS elevation
" + }, + { + "group": "Request body", + "type": "[]SurveyPoint", + "optional": false, + "field": "surveyPoints", + "description": "an array containing GIS surveypoints
" + } + ], + "Request body: SurveyPoint": [ + { + "group": "Request body: SurveyPoint", + "type": "Number[]", + "optional": false, + "field": "position", + "description": "an array representing a three dimensional coordinate
" + }, + { + "group": "Request body: SurveyPoint", + "type": "Number[]", + "optional": false, + "field": "latLong", + "description": "an array representing a two dimensional coordinate for latitude and logitude
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/settings HTTP/1.1\n{\n name: \"Medieval\",\n unit: \"cm\",\n code: \"1233\",\n type: \"Architectural\",\n angleFromNorth: 3,\n elevation: 0,\n surveyPoints: [\n {\n position: [\n 4,\n -7,\n -1\n ],\n latLong: [\n 1,\n 2,\n ]\n }\n ]\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n code: \"stage\",\n unit: \"cm\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "patch", + "url": "/:teamspace/:model/upload/ms-chunking/:corID", + "title": "Upload model chunk", + "name": "uploadChunk", + "group": "Model", + "description": "Upload model chunk for Microsoft Logic Apps.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID to upload
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "corID", + "description": "Upload correlation ID
" + } + ], + "Request header": [ + { + "group": "Request header", + "type": "String", + "optional": false, + "field": "Content-Range", + "description": "Byte range for the current content chunk, including the starting value, ending value, and the total content size, for example: "bytes 0-1023/10100"
" + }, + { + "group": "Request header", + "type": "String", + "optional": false, + "field": "Content-Type", + "description": "Type of chunked content
" + }, + { + "group": "Request header", + "type": "String", + "optional": false, + "field": "Content-Length", + "description": "Length of size in bytes of the current chunk
" + } + ], + "Request body: Attachment": [ + { + "group": "Request body: Attachment", + "type": "binary", + "optional": false, + "field": "FILE", + "description": "the file to be uploaded
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "Range", + "description": "Byte range for content that has been received by the endpoint, for example: "bytes=0-1023"
" + }, + { + "group": "200", + "type": "Number", + "optional": true, + "field": "x-ms-chunk-size", + "description": "Suggested chunk size in bytes
" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n{\n\t\"Range\": \"bytes=0-1023\",\n\t\"x-ms-chunk-size\": 1024\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "PATCH /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/upload/ms-chunking/00000000-0000-1111-2222-333333333333 HTTP/1.1\n\nheader: {\n\t\"Content-Range\": \"bytes 0-1023/10100\",\n\t\"Content-Type\": \"application/octet-stream\",\n\t\"Content-Length\": \"bytes=1024\"\n}\n\nbody: {\n\t\"file\":Start chunked model upload for Microsoft Logic Apps. Max chunk size defined as 52,428,800 bytes (52 MB) based on https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-limits-and-config?tabs=azure-portal
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID to upload
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "corID", + "description": "Upload correlation ID
" + } + ], + "Request header": [ + { + "group": "Request header", + "type": "String", + "optional": false, + "field": "x-ms-transfer-mode", + "description": "Indicates that the content is uploaded in chunks; value="chunked"
" + }, + { + "group": "Request header", + "type": "Number", + "optional": false, + "field": "x-ms-content-length", + "description": "The entire content size in bytes before chunking
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Number", + "optional": true, + "field": "x-ms-chunk-size", + "description": "Suggested chunk size in bytes
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "Location", + "description": "The URL location where to send the HTTP PATCH messages
" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n{\n\t\"x-ms-chunk-size\": 1024,\n\t\"Location\": \"/teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/upload/ms-chunking/00000000-0000-1111-2222-333333333333\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/upload/ms-chunking/00000000-0000-1111-2222-333333333333 HTTP/1.1\n\nheader: {\n\t\"x-ms-transfer-mode\": \"chunked\",\n\t\"x-ms-content-length\": 10100\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "post", + "url": "/:teamspace/:model/upload", + "title": "Upload Model.", + "name": "uploadModel", + "group": "Model", + "description": "It uploads a model file and creates a new revision for that model.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model id to upload.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "tag", + "description": "the tag name for the new revision
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "desc", + "description": "the description for the new revision
" + }, + { + "group": "Request body", + "type": "Boolean", + "optional": true, + "field": "importAnimations", + "description": "whether to import animations within a sequence
" + } + ], + "Request body: Attachment": [ + { + "group": "Request body: Attachment", + "type": "binary", + "optional": false, + "field": "FILE", + "description": "the file to be uploaded
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/upload HTTP/1.1\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundarySos0xligf1T8Sy8I\n\n------WebKitFormBoundarySos0xligf1T8Sy8I\nContent-Disposition: form-data; name=\"file\"; filename=\"3DrepoBIM.obj\"\nContent-Type: application/octet-stream\n\nUnique Notification ID
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/notification.js", + "groupTitle": "Notification" + }, + { + "type": "get", + "url": "/notifications/:id", + "title": "Get a notification", + "name": "getNotification", + "group": "Notification", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "id", + "description": "Unique Notification ID
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/notification.js", + "groupTitle": "Notification" + }, + { + "type": "get", + "url": "/notifications", + "title": "Get all notifications", + "name": "getNotifications", + "group": "Notification", + "version": "0.0.0", + "filename": "src/v4/routes/notification.js", + "groupTitle": "Notification" + }, + { + "type": "patch", + "url": "/notifications/:id", + "title": "Patch a notification", + "name": "patchNotification", + "group": "Notification", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "id", + "description": "Unique Notification ID
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/notification.js", + "groupTitle": "Notification" + }, + { + "type": "patch", + "url": "/notifications", + "title": "Patch all the user notifications", + "name": "patchNotification", + "group": "Notification", + "version": "0.0.0", + "filename": "src/v4/routes/notification.js", + "groupTitle": "Notification" + }, + { + "type": "get", + "url": "/:teamspace/:model/permission-templates", + "title": "List all model templates", + "name": "listModelTemplates", + "group": "PermissionTemplate", + "description": "Get a list of model permission templates. Intended for users that have manage_model_permission
privileges.
Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/permission-templates HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/permissionTemplate.js", + "groupTitle": "Permission Template", + "groupDescription": "Permission template is a grouping of model level permissions. An ID is assigned to it as well. They are viewer, commenter, and collaborator.
Three default permission templates are created by default. They are viewer, commenter, and collaborator.
", + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"Template1\",\n\t\t\"permissions\":[\n\t\t\t\"view_model\"\n\t\t]\n\t},\n\t{\n\t\t\"_id\":\"Template2\",\n\t\t\"permissions\":[\n\t\t\t\"view_model\",\n\t\t\t\"view_issue\"\n\t\t]\n\t}\n]", + "type": "json" + } + ] + } + }, + { + "type": "get", + "url": "/:teamspace/permission-templates", + "title": "Get all templates", + "name": "listTemplates", + "group": "PermissionTemplate", + "description": "Get a list of teamspace permission templates.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/permission-templates HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/permissionTemplate.js", + "groupTitle": "Permission Template", + "groupDescription": "Permission template is a grouping of model level permissions. An ID is assigned to it as well. They are viewer, commenter, and collaborator.
Three default permission templates are created by default. They are viewer, commenter, and collaborator.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"Template1\",\n\t\t\"permissions\":[\n\t\t\t\"view_model\"\n\t\t]\n\t},\n\t{\n\t\t\"_id\":\"Template2\",\n\t\t\"permissions\":[\n\t\t\t\"view_model\",\n\t\t\t\"view_issue\"\n\t\t]\n\t}\n]", + "type": "json" + } + ] + } + }, + { + "type": "get", + "url": "/plans", + "title": "List all Plans", + "name": "listPlans", + "group": "Plan", + "version": "0.0.0", + "filename": "src/v4/routes/plan.js", + "groupTitle": "Plan" + }, + { + "type": "put", + "url": "/:teamspace/:model/presentation/:code/start", + "title": "Starts a presentation session and returns the presentation code", + "name": "startPresentation", + "group": "Presentation", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "The teamspace where the presentation is taking place
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model where the presentation is taking place
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/presentation/start HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{ code: \"aASnk\" }", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/presentation.js", + "groupTitle": "Presentation" + }, + { + "type": "put", + "url": "/:teamspace/:model/presentation/:code/start", + "title": "Starts a presentation session and returns the presentation code", + "name": "startPresentation", + "group": "Presentation", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "The teamspace where the presentation is taking place
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model where the presentation is taking place
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "code", + "description": "The code that users need to join in order to get the viewpoint.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/presentation/start HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{ code: \"aASnk\" }", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/presentation.js", + "groupTitle": "Presentation" + }, + { + "type": "put", + "url": "/:teamspace/:model/presentation/:code/stream", + "title": "Streams a viewpoint", + "name": "streamPresentation", + "group": "Presentation", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "The teamspace where the presentation is taking place
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model where the presentation is taking place
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "code", + "description": "The code that users need to join in order to get the viewpoint.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "StreamingViewpoint", + "optional": false, + "field": "The", + "description": "viewpoint
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/presentation.js", + "groupTitle": "Presentation" + }, + { + "type": "post", + "url": "/:teamspace/projects", + "title": "Create project", + "name": "createProject", + "group": "Project", + "description": "It creates a project. The name of the project is required.
", + "permission": [ + { + "name": "canCreateProject" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "The name of the project to be created
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/projects HTTP/1.1\n{name: \"Classic project\"}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "{\n name: \"Classic project\",\n _id: \"5d5bec491c15383184eb7521\",\n permissions: [\n \"create_model\",\n \"create_federation\",\n \"admin_project\",\n \"edit_project\",\n \"delete_project\",\n \"upload_files_all_models\",\n \"edit_federation_all_models\",\n \"create_issue_all_models\",\n \"comment_issue_all_models\",\n \"view_issue_all_models\",\n \"view_model_all_models\",\n \"download_model_all_models\",\n \"change_model_settings_all_models\"\n ],\n models: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "delete", + "url": "/:teamspace/projects/:project", + "title": "Delete project", + "name": "deleteProject", + "group": "Project", + "description": "Deletes a project, including all the models and federations inside of it.
", + "permission": [ + { + "name": "canDeleteProject" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "project", + "description": "Project to delete
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /teamSpace1/projects/Classic%20project%20renamed HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n _id: \"5d5bec491c15383184eb7521\",\n name: \"Classic project renamed\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n }\n ],\n models: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "get", + "url": "/:teamspace/projects/:project/models", + "title": "List models of the project", + "name": "listModels", + "group": "Project", + "description": "It returns a list of models .
", + "permission": [ + { + "name": "canListProjects" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "project", + "description": "The name of the project to list models
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": true, + "field": "name", + "description": "Filters models by name
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/projects/Bim%20Logo/models?name=log HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n \"_id\": \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n \"federate\": true,\n \"desc\": \"\",\n \"name\": \"Full Logo\",\n \"__v\": 17,\n \"timestamp\": \"2019-05-02T16:17:37.902Z\",\n \"type\": \"Federation\",\n \"subModels\": [\n {\n \"database\": \"teamSpace1\",\n \"model\": \"b1fceab8-b0e9-4e45-850b-b9888efd6521\",\n \"name\": \"block\"\n },\n {\n \"database\": \"teamSpace1\",\n \"model\": \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\",\n \"name\": \"letters\"\n },\n {\n \"database\": \"teamSpace1\",\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n \"name\": \"pipes\"\n }\n ],\n \"surveyPoints\": [\n {\n \"position\": [\n 0,\n 0,\n 0\n ],\n \"latLong\": [\n -34.459127,\n 0\n ]\n }\n ],\n \"properties\": {\n \"unit\": \"mm\",\n \"topicTypes\": [\n {\n \"label\": \"Clash\",\n \"value\": \"clash\"\n },\n {\n \"label\": \"Diff\",\n \"value\": \"diff\"\n },\n {\n \"label\": \"RFI\",\n \"value\": \"rfi\"\n },\n {\n \"label\": \"Risk\",\n \"value\": \"risk\"\n },\n {\n \"label\": \"H&S\",\n \"value\": \"hs\"\n },\n {\n \"label\": \"Design\",\n \"value\": \"design\"\n },\n {\n \"label\": \"Constructibility\",\n \"value\": \"constructibility\"\n },\n {\n \"label\": \"GIS\",\n \"value\": \"gis\"\n },\n {\n \"label\": \"For information\",\n \"value\": \"for_information\"\n },\n {\n \"label\": \"VR\",\n \"value\": \"vr\"\n }\n ]\n },\n \"permissions\": [\n \"change_model_settings\",\n \"upload_files\",\n \"create_issue\",\n \"comment_issue\",\n \"view_issue\",\n \"view_model\",\n \"download_model\",\n \"edit_federation\",\n \"delete_federation\",\n \"delete_model\",\n \"manage_model_permission\"\n ],\n \"status\": \"ok\",\n \"id\": \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n \"model\": \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n \"account\": \"teamSpace1\",\n \"headRevisions\": {\n }\n }\n]\t *", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "get", + "url": "/:teamspace/projects/:project", + "title": "Get project", + "name": "listProject", + "group": "Project", + "description": "Get the details of a project; name, user permissions, modelids.
", + "permission": [ + { + "name": "canViewProject" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "project", + "description": "Project name to be queried
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/projects/Classic%20project%20renamed HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n _id: \"5d5bec491c15383184eb7521\",\n name: \"Classic project renamed\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n },\n {\n user: \"viewerTeamspace1Model1JobA\",\n permissions: []\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permissions: []\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permissions: []\n }\n ],\n models: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "get", + "url": "/:teamspace/projects", + "title": "List projects", + "name": "listProjects", + "group": "Project", + "description": "It returns a list of projects with their permissions and model ids.
", + "permission": [ + { + "name": "canListProjects" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/projects HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n _id: \"5ccb1490b4626d30c05c9401\",\n name: \"Medieval\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: []\n },\n {\n user: \"fed\",\n permissions: []\n },\n {\n user: \"teamSpace1\",\n permissions: []\n },\n {\n user: \"weirdTeamspace\",\n permissions: []\n }\n ],\n models: [\n \"50926a1f-1525-44ac-b6a1-d016949a13bb\"\n ]\n },\n {\n _id: \"5ccb1702b4626d30c05c9830\",\n name: \"Bim Logo\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: []\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permissions: []\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permissions: []\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permissions: []\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permissions: []\n },\n {\n user: \"adminTeamspace1JobA\",\n permissions: []\n },\n {\n user: \"adminTeamspace1JobB\",\n permissions: []\n },\n {\n user: \"weirdTeamspace\",\n permissions: []\n }\n ],\n models: [\n \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n \"b1fceab8-b0e9-4e45-850b-b9888efd6521\",\n \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\",\n \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\"\n ]\n },\n {\n _id: \"5d5bec491c15383184eb7521\",\n name: \"Classic project renamed\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n },\n {\n user: \"viewerTeamspace1Model1JobA\",\n permissions: []\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permissions: []\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permissions: []\n }\n ],\n models: []\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "patch", + "url": "/:teamspace/projects/:project", + "title": "Update project", + "name": "updateProject", + "group": "Project", + "description": "Update project properties (name, permissions)
", + "permission": [ + { + "name": "canUpdateProject" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "project", + "description": "Name of project
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "name", + "description": "Project name
" + }, + { + "group": "Request body", + "type": "ProjectPermission[]", + "optional": true, + "field": "permissions", + "description": "List of user permissions
" + } + ], + "Type: ProjectPermission": [ + { + "group": "Type: ProjectPermission", + "type": "String", + "optional": false, + "field": "user", + "description": "Username of user
" + }, + { + "group": "Type: ProjectPermission", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "List of user privileges
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (update permissions):", + "content": "PATCH /acme/ProjectAnvil HTTP/1.1\n{\n permissions: [\n {\n user: \"alice\",\n permissions: [\n \"admin_project\"\n ]\n },\n {\n user: \"mike\",\n permissions: []\n }\n ]\n}", + "type": "patch" + }, + { + "title": "Example usage (rename project):", + "content": "PATCH /acme/ProjectAnvil HTTP/1.1\n{\n name: \"ProjectInstantTunnel\"\n}", + "type": "patch" + }, + { + "title": "Example usage:", + "content": "PATCH /acme/ProjectInstantTunnel HTTP/1.1\n{\n name: \"Project Trebuchet\",\n permissions: [\n {\n user: \"bob\",\n permissions: [\n \"admin_project\"\n ]\n }\n ]\n}", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response:", + "content": "{\n status: \"ok\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "put", + "url": "/:teamspace/projects/:project", + "title": "Update project", + "name": "updateProjectPut", + "group": "Project", + "description": "It updates a project. The name can be changed and the permissions as well as the permissions of users
", + "deprecated": { + "content": "use now (#Project:updateProject)" + }, + "permission": [ + { + "name": "canUpdateProject" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "project", + "description": "The name of the project to update
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "The name of the project to be created
" + }, + { + "group": "Request body", + "type": "[]Permission", + "optional": false, + "field": "permissions", + "description": "The permissions for each user from the project
" + } + ], + "Request body: Permissions": [ + { + "group": "Request body: Permissions", + "type": "String", + "optional": false, + "field": "user", + "description": "The username of the user to have it permission changed
" + }, + { + "group": "Request body: Permissions", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "An array of permissions for the user to be assigned
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage update permissions:", + "content": "PUT /teamSpace1/Classic%20project HTTP/1.1\n{\n name: \"Classic project\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n },\n {\n user: \"viewerTeamspace1Model1JobA\",\n permissions: []\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permissions: []\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permissions: []\n }\n ]\n}", + "type": "put" + }, + { + "title": "Example usage rename project:", + "content": "PUT /teamSpace1/Classic%20project HTTP/1.1\n{name: \"Classic project renamed\"}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success update permissions:", + "content": "{\n _id: \"5d5bec491c15383184eb7521\",\n name: \"Classic project\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n }\n ],\n models: []\n}", + "type": "json" + }, + { + "title": "Success rename project:", + "content": "{\n _id: \"5d5bec491c15383184eb7521\",\n name: \"Classic project renamed\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n }\n ],\n models: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "get", + "url": "/:teamspace/:model/resources/:resourceId", + "title": "Get resource file", + "name": "getResource", + "group": "Resources", + "description": "Is the URL for downloading the resource file identified by the resourceId.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "resourceId", + "description": "The Id of the resource
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/resources.js", + "groupTitle": "Resources" + }, + { + "type": "post", + "url": "/:teamspace/:model/risks/:riskId/resources", + "title": "Attach resources to a risk", + "name": "attachResourceRisk", + "group": "Risks", + "description": "Attaches file or URL resources to a risk. If the type of the resource is file it should be sent as multipart/form-data. Both types at the same time cannot be sent. So in order to attach files and URLs it should be done with two different requests.
This method triggers a chat event
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ], + "Request body file resource (multipart/form-data)": [ + { + "group": "Request body file resource (multipart/form-data)", + "type": "File[]", + "optional": false, + "field": "files", + "description": "The array of files to be attached
" + }, + { + "group": "Request body file resource (multipart/form-data)", + "type": "String[]", + "optional": false, + "field": "names", + "description": "The names of the files; it should have the same length as the files field and should include the file extension
" + } + ], + "Request body URL resource": [ + { + "group": "Request body URL resource", + "type": "String[]", + "optional": false, + "field": "urls", + "description": "The array of URLs to be attached
" + }, + { + "group": "Request body URL resource", + "type": "String[]", + "optional": false, + "field": "names", + "description": "The names of the URLs; it should have the same length as the URL field
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success example result after two files has been uploaded", + "content": "\n[\n {\n \"_id\":\"7617f775-9eb7-4877-8ec3-98ea3457e519\",\n \"size\":1422,\n \"riskIds\":[\n \"3e8a11e0-9812-11e9-9c4d-ebde5888e062\"\n ],\n \"name\":\"todo.txt\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996461\n },\n {\n \"_id\":\"e25e42d5-c4f0-4fbc-a8f4-bc9899e6662a\",\n \"size\":2509356,\n \"riskIds\":[\n \"3e8a11e0-9812-11e9-9c4d-ebde5888e062\"\n ],\n \"name\":\"football.gif\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996462\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "post", + "url": "/:teamspace/:model/risks/:riskId/comments", + "title": "Add a comment", + "name": "commentRisk", + "group": "Risks", + "description": "Create a comment in a risk.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "_id", + "description": "Risk ID
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "rev_id", + "description": "Revision ID
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "comment", + "description": "Comment text
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint object
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "String", + "optional": false, + "field": "guid", + "description": "Comment ID
" + }, + { + "group": "Success 200", + "type": "Number", + "optional": false, + "field": "created", + "description": "Comment creation timestamp
" + }, + { + "group": "Success 200", + "type": "String", + "optional": false, + "field": "owner", + "description": "Comment owner
" + }, + { + "group": "Success 200", + "type": "String", + "optional": false, + "field": "comment", + "description": "Comment text
" + }, + { + "group": "Success 200", + "type": "Object", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint object
" + } + ] + }, + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n{\n\t\"guid\":\"00000000-0000-0000-0000-000000000007\",\n\t\"created\":1567172228143,\n\t\"owner\":\"alice\",\n\t\"comment\":\"Comment 1\",\n\t\"viewpoint\":{\n\t\t\"right\":[0.5,-0.1,0.5],\n\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\"position\":[-50000.0,100000.0,150000.0],\n\t\t\"look_at\":[35000.0,50000.0,9000.0],\n\t\t\"view_dir\":[0.5,-0.5,-1.0],\n\t\t\"near\":500.0,\n\t\t\"far\":300000,\n\t\t\"fov\":1.05,\n\t\t\"aspect_ratio\":1.5,\n\t\t\"clippingPlanes\":[],\n\t\t\"screenshot\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000005/screenshot.png\",\n\t\t\"guid\":\"00000000-0000-0000-0000-000000000006\",\n\t\t\"screenshotSmall\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000005/screenshotSmall.png\"\n\t}\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/comments HTTP/1.1\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\"comment\":\"Comment 1\",\n\t\"viewpoint\":{\n\t\t\"right\":[0.5,-0.1,0.5],\n\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\"position\":[-50000.0,100000.0,150000.0],\n\t\t\"look_at\":[35000.0,50000.0,9000.0],\n\t\t\"view_dir\":[0.5,-0.5,-1.0],\n\t\t\"near\":500.0,\n\t\t\"far\":300000,\n\t\t\"fov\":1.05,\n\t\t\"aspect_ratio\":1.5,\n\t\t\"clippingPlanes\":[],\n\t\t\"highlighted_group_id\":\"\",\n\t\t\"screenshot\":Delete a risk comment.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "guid", + "description": "Comment ID
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/comments HTTP/1.1\n{\n\t\"guid\":\"00000000-0000-0000-0000-000000000007\",\n}", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n{\n\t\"guid\":\"00000000-0000-0000-0000-000000000007\",\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "delete", + "url": "/:teamspace/:model/risks/:riskId/resources", + "title": "Detach a resource from a risk", + "name": "detachResourceRisk", + "group": "Risks", + "description": "Detachs a resource from a risk. If the risk is the last entity the resources has been attached to it also deletes the resource from the system. This method triggers a chat event .
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "_id", + "description": "The resource id to be detached
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "{", + "content": "\n{\n \"_id\":\"e25e42d5-c4f0-4fbc-a8f4-bc9899e6662a\",\n \"size\":2509356,\n \"riskIds\":[\n ],\n \"name\":\"football.gif\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996462\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "get", + "url": "/:teamspace/mitigations/criteria", + "title": "Get mitigation criteria", + "name": "findMitigationCriteria", + "group": "Risks", + "description": "Returns all mitigations criteria from mitigation suggestions.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/mitigations/criteria HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n{\n\t\"associated_activity\":[\n\t\t\"All construction\",\n\t\t\"Site tests\",\n\t\t\"Logistics\"\n\t],\n\t\"category\":[\n\t\t\"safety_electricity\"\n\t],\n\t\"element\":[\n\t\t\"Doors\",\n\t\t\"Floors\",\n\t\t\"Pipes\",\n\t\t\"Vents\",\n\t\t\"Walls\"\n\t],\n\t\"location_desc\":[\n\t\t\"Tower 1 - Level 0\",\n\t\t\"Tower 1 - Level 1\",\n\t\t\"Tower 1 - Level 2\",\n\t\t\"Tower 2 - Level 0\",\n\t\t\"Tower 2 - Level 1\",\n\t\t\"Tower 3 - Level 0\",\n\t\t\"Tower 3 - Level 1\",\n\t\t\"Tower 3 - Level 2\"\n\t],\n\t\"mitigation_stage\":[\n\t\t\"Preliminary Design\",\n\t\t\"Detail Design\",\n\t\t\"Preconstruction\",\n\t\t\"Site work and Change Control\"\n\t],\n\t\"mitigation_type\":[\n\t\t\"Eliminate\",\n\t\t\"Reduce\",\n\t\t\"Control\",\n\t\t\"Inform\"\n\t],\n\t\"risk_factor\":[\n\t\t\"Factor 2\",\n\t\t\"Factor 5\",\n\t\t\"Factor 8\"\n\t],\n\t\"scope\":[\n\t\t\"General concrete\",\n\t\t\"In situ concrete\"\n\t]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/mitigation.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "post", + "url": "/:teamspace/mitigations", + "title": "Find mitigation suggestions", + "name": "findMitigationSuggestions", + "group": "Risks", + "description": "Returns a list of suggestions for risk mitigation based on given criteria.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "associated_activity", + "description": "Risk associated activity
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "category", + "description": "Risk category
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "element", + "description": "Risk element type
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "location_desc", + "description": "Risk location description
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "risk_factor", + "description": "Risk factor
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "scope", + "description": "Risk construction scope
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/mitigations HTTP/1.1\n{\n\t\"associated_activity\":\"\",\n\t\"category\":\"safety_fall\",\n\t\"element\":\"Doors\",\n\t\"location_desc\":\"Tower 3 - Level 2\",\n\t\"risk_factor\":\"Factor 9\",\n\t\"scope\":\"Tower 3\"\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"mitigation_desc\":\"Replace all openings required in floor slabs with precast service openings.\",\n\t\t\"mitigation_detail\":\"Replace openings larger than a standard anvil required in floor slabs with precast service openings from A/W 2020 catalogue.\",\n\t\t\"mitigation_stage\":\"Preliminary Design\",\n\t\t\"mitigation_type\":\"Eliminate\"\n\t},\n\t{\n\t\t\"mitigation_desc\":\"Provide safe walking surface joint covers. Any covering should be: strong enough to support any loads likely to be placed on it ; and fixed in position to prevent accidental dislodgement.\",\n\t\t\"mitigation_detail\":\"Safe walking surface joint covers for all joins and gaps. Covers should be strong enough to support any loads likely to be placed on it and fixed in position with bolts to prevent accidental dislodgement.\",\n\t\t\"mitigation_stage\":\"Detail Design\",\n\t\t\"mitigation_type\":\"Reduce\"\n\t},\n\t{\n\t\t\"mitigation_desc\":\"Provide warning markings and/or colour change.\",\n\t\t\"mitigation_detail\":\"Provide warning markings from approved list of markings and/or colour change using chart from Document XYZ.\",\n\t\t\"mitigation_stage\":\"Preconstruction\",\n\t\t\"mitigation_type\":\"Control\"\n\t}\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/mitigation.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "get", + "url": "/:teamspace/:model/risks/:riskId", + "title": "Get a risk", + "name": "findRiskById", + "group": "Risks", + "description": "Retrieve a risk. The response includes all comments and screenshot URLs.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "Object", + "optional": false, + "field": "risk", + "description": "The Issue matching the Issue ID
" + } + ] + }, + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\"account\":\"acme\",\n\t\"assigned_roles\":[\n\t\t\"Job1\"\n\t],\n\t\"associated_activity\":\"Column casting\",\n\t\"category\":\"safety_fall\",\n\t\"comments\":[],\n\t\"consequence\":0,\n\t\"created\":1567156228976,\n\t\"creator_role\":\"Job4\",\n\t\"desc\":\"Risk description that describes the risk\",\n\t\"element\":\"Doors\",\n\t\"level_of_risk\":0,\n\t\"likelihood\":0,\n\t\"location_desc\":\"Tower 3 - Level 2\",\n\t\"mitigation_desc\":\"Erect temporary barrier\",\n\t\"mitigation_detail\":\"Erect a temporary 1.5m metal barrier along edge\",\n\t\"mitigation_stage\":\"Construction stage 5\",\n\t\"mitigation_status\":\"proposed\",\n\t\"mitigation_type\":\"Eliminate\",\n\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\"name\":\"Risk 1\",\n\t\"overall_level_of_risk\":0,\n\t\"owner\":\"alice\",\n\t\"position\":[55000.0,80000.0,-10000.0],\n\t\"residual_consequence\":-1,\n\t\"residual_level_of_risk\":-1,\n\t\"residual_likelihood\":-1,\n\t\"residual_risk\":\"\",\n\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\"risk_factor\":\"Factor 9\",\n\t\"safetibase_id\":\"\",\n\t\"scope\":\"Tower 3\",\n\t\"thumbnail\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/thumbnail.png\",\n\t\"viewpoint\":{\n\t\t\"aspect_ratio\":1.4,\n\t\t\"clippingPlanes\":[],\n\t\t\"far\":300000,\n\t\t\"fov\":1.05,\n\t\t\"guid\":\"00000000-0000-0000-0000-000000000004\",\n\t\t\"hideIfc\":true,\n\t\t\"look_at\":[35000.0,40000.0,8000.0],\n\t\t\"near\":600.0,\n\t\t\"position\":[-70000.0,120000.0,150000.0],\n\t\t\"right\":[0.8,-0.3,0.6],\n\t\t\"screenshot\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshot.png\",\n\t\t\"screenshotSmall\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshotSmall.png\",\n\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\"view_dir\":[0.5,-0.4,-0.7]\n\t}\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/risks/:riskId/screenshot.png", + "title": "Get risk screenshot", + "name": "getScreenshot", + "group": "Risks", + "description": "Retrieve a risk screenshot image.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Screenshot image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nName of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/risks/:riskId/screenshotSmall.png", + "title": "Get low-res screenshot", + "name": "getScreenshotSmall", + "group": "Risks", + "description": "Retrieve a low-resolution risk screenshot image.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Small screenshot image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nName of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/risks/:riskId/thumbnail.png", + "title": "Get risk thumbnail", + "name": "getThumbnail", + "group": "Risks", + "description": "Retrieve a risk thumbnail image.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Thumbnail image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nName of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model[/revision/:revId]/risks", + "title": "List all risks", + "name": "listRisks", + "group": "Risks", + "description": "Retrieve all model risks.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "updatedSince", + "description": "Only return issues that has been updated since this value (in epoch value)
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "numbers", + "description": "Array of issue numbers to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "ids", + "description": "Array of issue ids to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "categories", + "description": "Array of categories to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "mitigationStatus", + "description": "Array of mitigation status to filter for
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "likelihoods", + "description": "Array of likelihoods to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "consequences", + "description": "Array of consequences to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "residualLikelihoods", + "description": "Array of residual likelihoods to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "levelOfRisks", + "description": "Array of levels of risks to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "residualConsequences", + "description": "Array of residual consequences to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "residualLevelOfRisks", + "description": "Array of levels of risks to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "risks", + "description": "Risk objects
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\t\"account\":\"acme\",\n\t\t\"assigned_roles\":[\n\t\t\t\"Job1\"\n\t\t],\n\t\t\"associated_activity\":\"Column casting\",\n\t\t\"category\":\"safety_fall\",\n\t\t\"comments\":[],\n\t\t\"consequence\":0,\n\t\t\"created\":1567156228976,\n\t\t\"creator_role\":\"Job4\",\n\t\t\"desc\":\"Risk description that describes the risk\",\n\t\t\"element\":\"Doors\",\n\t\t\"level_of_risk\":0,\n\t\t\"likelihood\":0,\n\t\t\"location_desc\":\"Tower 3 - Level 2\",\n\t\t\"mitigation_desc\":\"Erect temporary barrier\",\n\t\t\"mitigation_detail\":\"Erect a temporary 1.5m metal barrier along edge\",\n\t\t\"mitigation_stage\":\"Construction stage 5\",\n\t\t\"mitigation_status\":\"proposed\",\n\t\t\"mitigation_type\":\"Eliminate\",\n\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\"name\":\"Risk 1\",\n\t\t\"overall_level_of_risk\":0,\n\t\t\"owner\":\"alice\",\n\t\t\"position\":[55000.0,80000.0,-10000.0],\n\t\t\"residual_consequence\":-1,\n\t\t\"residual_level_of_risk\":-1,\n\t\t\"residual_likelihood\":-1,\n\t\t\"residual_risk\":\"\",\n\t\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\t\"risk_factor\":\"Factor 9\",\n\t\t\"safetibase_id\":\"\",\n\t\t\"scope\":\"Tower 3\",\n\t\t\"thumbnail\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/thumbnail.png\",\n\t\t\"viewpoint\":{\n\t\t\t\"aspect_ratio\":1.4,\n\t\t\t\"clippingPlanes\":[],\n\t\t\t\"far\":300000,\n\t\t\t\"fov\":1.05,\n\t\t\t\"guid\":\"00000000-0000-0000-0000-000000000004\",\n\t\t\t\"hideIfc\":true,\n\t\t\t\"look_at\":[35000.0,40000.0,8000.0],\n\t\t\t\"near\":600.0,\n\t\t\t\"position\":[-70000.0,120000.0,150000.0],\n\t\t\t\"right\":[0.8,-0.3,0.6],\n\t\t\t\"screenshot\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshot.png\",\n\t\t\t\"screenshotSmall\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshotSmall.png\",\n\t\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\t\"view_dir\":[0.5,-0.4,-0.7]\n\t\t}\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/risks HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/risks HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "get", + "url": "/:teamspace/:model[/revision/:revId]/risks.html", + "title": "Render risks as HTML", + "name": "renderRisksHTML", + "group": "Risks", + "description": "Retrieve HTML page of all risks.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": false, + "field": "ids", + "description": "Risk IDs to show
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "risks", + "description": "Risk objects
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n", + "type": "html" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/risks.html?[query] HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/risks.html?[query] HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "post", + "url": "/:teamspace/:model[/revision/:revId]/risks", + "title": "Create a risk", + "name": "storeRisk", + "group": "Risks", + "description": "Create a model risk.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Risk name
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "assigned_roles", + "description": "Risk owner
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "associated_activity", + "description": "Associated activity
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "category", + "description": "Category
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "consequence", + "description": "Risk consequence (0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "desc", + "description": "Risk description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "element", + "description": "Element type
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "likelihood", + "description": "Risk likelihood (0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "location_desc", + "description": "Location description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_status", + "description": "Treatment status
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_desc", + "description": "Treatment summary
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_detail", + "description": "Treatment detailed description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_stage", + "description": "Treatment stage
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_type", + "description": "Treatment type
" + }, + { + "group": "Request body", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Risk pin coordinates
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "residual_consequence", + "description": "Treated risk consequence (-1: unset, 0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "residual_likelihood", + "description": "Treated risk likelihood (-1: unset, 0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "residual_risk", + "description": "Residual risk
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "risk_factor", + "description": "Risk factor
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "scope", + "description": "Construction scope
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint
" + } + ], + "Type: Viewpoint": [ + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "Right vector of viewpoint indicating the direction of right in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "Up vector of viewpoint indicating the direction of up in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Position vector indicates where in the world the viewpoint is positioned
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "Vector indicating where in the world the viewpoint is looking at
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "Vector indicating the direction the viewpoint is looking at in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "Vector indicating the near plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "Vector indicating the far plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "Angle of the field of view
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "Aspect ratio of the fustrum
" + }, + { + "group": "Type: Viewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "Clipping planes associated with the viewpoint
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group ID generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "highlighted_group", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group definition for those objects (this shouldnt be use simultaneously with highlighted_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "hidden_group", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects (this shouldnt be use simultaneously with hidden_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "shown_group", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the definition of the group to hold those objects (this shouldnt be use simultaneously with shown_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "override_groups", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups with one group for each colour
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "transformation_groups", + "description": "List of groups with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "Base64 string representing the screenshot associated with the viewpoint
" + } + ], + "Type: Group": [ + { + "group": "Type: Group", + "type": "Number[3]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Type: Group", + "type": "ModelObjects", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + } + ], + "Type: ModelObjects": [ + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "account", + "description": "The account that has the model which contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id that contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String[]", + "optional": false, + "field": "shared_ids", + "description": "The shared ids of objects to be selected
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/risks HTTP/1.1\n{\n\t\"assigned_roles\":[\n\t\t\"Job1\"\n\t],\n\t\"associated_activity\":\"\",\n\t\"category\":\"safety_fall\",\n\t\"comments\":[],\n\t\"consequence\":0,\n\t\"creator_role\":\"Job4\",\n\t\"desc\":\"Risk description that describes the risk\",\n\t\"element\":\"Doors\",\n\t\"level_of_risk\":0,\n\t\"likelihood\":0,\n\t\"location_desc\":\"Tower 3 - Level 2\",\n\t\"mitigation_desc\":\"Erect temporary barrier\",\n\t\"mitigation_detail\":\"Erect a temporary 1.5m metal barrier along edge\",\n\t\"mitigation_stage\":\"Construction stage 5\",\n\t\"mitigation_status\":\"proposed\",\n\t\"mitigation_type\":\"Eliminate\",\n\t\"name\":\"Risk 1\",\n\t\"overall_level_of_risk\":0,\n\t\"position\":[55000.0,80000.0,-10000.0],\n\t\"residual_consequence\":-1,\n\t\"residual_level_of_risk\":-1,\n\t\"residual_likelihood\":-1,\n\t\"residual_risk\":\"\",\n\t\"risk_factor\":\"Factor 9\",\n\t\"safetibase_id\":\"\",\n\t\"scope\":\"Tower 3\",\n\t\"viewpoint\":{\n\t\t\"aspect_ratio\":1.4,\n\t\t\"clippingPlanes\":[],\n\t\t\"far\":300000,\n\t\t\"fov\":1.05,\n\t\t\"hideIfc\":true,\n\t\t\"highlighted_group_id\":\"\",\n\t\t\"look_at\":[35000.0,40000.0,8000.0],\n\t\t\"near\":600.0,\n\t\t\"position\":[-70000.0,120000.0,150000.0],\n\t\t\"right\":[0.8,-0.3,0.6],\n\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\"view_dir\":[0.5,-0.4,-0.7],\n\t\t\"screenshot\":Update model risk.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Risk name
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "assigned_roles", + "description": "Risk owner
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "associated_activity", + "description": "Associated activity
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "category", + "description": "Category
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "consequence", + "description": "Risk consequence (0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "desc", + "description": "Risk description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "element", + "description": "Element type
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "likelihood", + "description": "Risk likelihood (0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "location_desc", + "description": "Location description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_status", + "description": "Treatment status
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_desc", + "description": "Treatment summary
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_detail", + "description": "Treatment detailed description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_stage", + "description": "Treatment stage
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_type", + "description": "Treatment type
" + }, + { + "group": "Request body", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Risk pin coordinates
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "residual_consequence", + "description": "Treated risk consequence (-1: unset, 0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "residual_likelihood", + "description": "Treated risk likelihood (-1: unset, 0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "residual_risk", + "description": "Residual risk
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "risk_factor", + "description": "Risk factor
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "scope", + "description": "Construction scope
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002 HTTP/1.1\n{\n\t\"residual_likelihood\":1\n}", + "type": "patch" + }, + { + "title": "Example usage:", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/risks/00000000-0000-0000-0000-000000000002 HTTP/1.1\n{\n\t\"residual_likelihood\":1\n}", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\"account\":\"acme\",\n\t\"assigned_roles\":[\n\t\t\"Job1\"\n\t],\n\t\"associated_activity\":\"\",\n\t\"category\":\"safety_fall\",\n\t\"comments\":[],\n\t\"consequence\":0,\n\t\"created\":1567156228976,\n\t\"creator_role\":\"Job4\",\n\t\"desc\":\"Risk description that describes the risk\",\n\t\"element\":\"Doors\",\n\t\"level_of_risk\":0,\n\t\"likelihood\":0,\n\t\"location_desc\":\"Tower 3 - Level 2\",\n\t\"mitigation_desc\":\"Erect temporary barrier\",\n\t\"mitigation_detail\":\"Erect a temporary 1.5m metal barrier along edge\",\n\t\"mitigation_stage\":\"Construction stage 5\",\n\t\"mitigation_status\":\"proposed\",\n\t\"mitigation_type\":\"Eliminate\",\n\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\"name\":\"Risk 1\",\n\t\"owner\":\"alice\",\n\t\"overall_level_of_risk\":0,\n\t\"position\":[55000.0,80000.0,-10000.0],\n\t\"residual_consequence\":-1,\n\t\"residual_level_of_risk\":-1,\n\t\"residual_likelihood\":1,\n\t\"residual_risk\":\"\",\n\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\"risk_factor\":\"Factor 9\",\n\t\"safetibase_id\":\"\",\n\t\"scope\":\"Tower 3\",\n\t\"thumbnail\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/thumbnail.png\",\n\t\"viewpoint\":{\n\t\t\"aspect_ratio\":1.4,\n\t\t\"clippingPlanes\":[],\n\t\t\"far\":300000,\n\t\t\"fov\":1.05,\n\t\t\"guid\":\"00000000-0000-0000-0000-000000000004\",\n\t\t\"hideIfc\":true,\n\t\t\"look_at\":[35000.0,40000.0,8000.0],\n\t\t\"near\":600.0,\n\t\t\"position\":[-70000.0,120000.0,150000.0],\n\t\t\"right\":[0.8,-0.3,0.6],\n\t\t\"screenshot\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshot.png\",\n\t\t\"screenshotSmall\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshotSmall.png\",\n\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\"view_dir\":[0.5,-0.4,-0.7]\n\t}\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "post", + "url": "/:teamspace/:model/sequences", + "title": "Create custom sequence", + "name": "createSequence", + "group": "Sequences", + "description": "Create custom sequence for model.
", + "examples": [ + { + "title": "Example usage", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/sequences HTTP/1.1\n{\n\t\"name\":\"Custom Sequence 1\",\n\t\"frames\":[\n\t\t{\n\t\t\t\"dateTime\":1244246400000,\n\t\t\t\"viewpoint\":{\n\t\t\t\t\"override_groups\":[\n\t\t\t\t\t{\n\t\t\t\t\t\t\"color\":[\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t255,\n\t\t\t\t\t\t\t0\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"rules\":[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"field\":\"IFC GUID\",\n\t\t\t\t\t\t\t\t\"operator\":\"IS\",\n\t\t\t\t\t\t\t\t\"values\":[\n\t\t\t\t\t\t\t\t\t\"0h79Q0rcfC1gOPK50yoFCv\",\n\t\t\t\t\t\t\t\t\t\"0K5o7g755EZw2RjNI7HcYK\",\n\t\t\t\t\t\t\t\t\t\"0yuGDtpaPCSBT7QB7wvN5I\",\n\t\t\t\t\t\t\t\t\t\"2HBVtaIWv07ud53r01WB6q\"\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"account\":\"acme\",\n\t\t\t\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t\"hidden_group\":{\n\t\t\t\t\t\"rules\":[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"field\":\"IFC GUID\",\n\t\t\t\t\t\t\t\"operator\":\"IS\",\n\t\t\t\t\t\t\t\"values\":[\n\t\t\t\t\t\t\t\t\"2S2omCydz5b9jSgrcLLblk\",\n\t\t\t\t\t\t\t\t\"0_U7q0Dzj6DfPp4VzMmTUt\",\n\t\t\t\t\t\t\t\t\"0iMv$JxRL67v6DoyA3RRwz\",\n\t\t\t\t\t\t\t\t\"1W4yiIKW92qAUdezi70DTY\",\n\t\t\t\t\t\t\t\t\"00ojKm$5f7luRCAjta0hsu\",\n\t\t\t\t\t\t\t\t\"0d2LnELub06glJ9mZh2up$\",\n\t\t\t\t\t\t\t\t\"37gui3POjDQgmIadjhr$ek\",\n\t\t\t\t\t\t\t\t\"3XAjSwznb6PfZG9t_wAFXi\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"account\":\"acme\",\n\t\t\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244246500000,\n\t\t\t\"viewpoint\":{\n\t\t\t\t\"up\":[0,1,0],\n\t\t\t\t\"position\":[38,38 ,125.080119148101],\n\t\t\t\t\"look_at\":[0,0,-163.080119148101],\n\t\t\t\t\"view_dir\":[0,0,-1],\n\t\t\t\t\"right\":[1,0,0],\n\t\t\t\t\"fov\":2.11248306530104,\n\t\t\t\t\"aspect_ratio\":0.875018933732738,\n\t\t\t\t\"far\":276.756120771945,\n\t\t\t\t\"near\":76.4241101223321\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244246700000,\n\t\t\t\"viewpoint\":{\n\t\t\t\t\"override_groups\":[\n\t\t\t\t\t{\n\t\t\t\t\t\t\"color\":[\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t255,\n\t\t\t\t\t\t\t0\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"rules\":[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"field\":\"IFC GUID\",\n\t\t\t\t\t\t\t\t\"operator\":\"IS\",\n\t\t\t\t\t\t\t\t\"values\":[\n\t\t\t\t\t\t\t\t\t\"00ojKm$5f7luRCAjta0hsu\"\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"account\":\"acme\",\n\t\t\t\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\"\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244419200000,\n\t\t\t\"viewId\":\"00000000-0000-0001-0001-000000000001\"\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244458200000,\n\t\t\t\"viewId\":\"00000000-0000-0001-0001-000000000002\"\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244484300000,\n\t\t\t\"viewpoint\": {}\n\t\t}\n\t]\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "post", + "url": "/:teamspace/:model/sequences/:sequenceId/activities", + "title": "Create one or more activities", + "name": "createSequenceActivities", + "group": "Sequences", + "description": "Creates a sequence activity tree.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "Activity[]", + "optional": false, + "field": "activity", + "description": "An array of the activity tree that will be created
" + }, + { + "group": "Request body", + "type": "Boolean", + "optional": true, + "field": "overwrite", + "description": "This flag indicates whether the request will replace the currently stored activities or just added at the end of the currently stored activities array. If not present it will be considered as false.
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Type: Activity": [ + { + "group": "Type: Activity", + "type": "String", + "optional": false, + "field": "name", + "description": "The name of the activity
" + }, + { + "group": "Type: Activity", + "type": "Number", + "optional": false, + "field": "startDate", + "description": "The starting timestamp date of the activity
" + }, + { + "group": "Type: Activity", + "type": "Number", + "optional": false, + "field": "endDate", + "description": "The ending timestamp date of the activity
" + }, + { + "group": "Type: Activity", + "type": "Object", + "optional": true, + "field": "resources", + "description": "The resources asoociated with the activity
" + }, + { + "group": "Type: Activity", + "type": "KeyValue[]", + "optional": true, + "field": "data", + "description": "An array of key value pairs with metadata for the activity
" + }, + { + "group": "Type: Activity", + "type": "Activity[]", + "optional": true, + "field": "subActivities", + "description": "An array of activities that will be children of the activity
" + } + ], + "Type: KeyValue": [ + { + "group": "Type: KeyValue", + "type": "String", + "optional": false, + "field": "key", + "description": "The key of the pair
" + }, + { + "group": "Type: KeyValue", + "type": "Any", + "optional": false, + "field": "value", + "description": "The value of the pair
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/activities HTTP/1.1\n{\n \"overwrite\": true,\n \"activities\": [\n {\n \"name\": \"Clinic Construction\",\n \"startDate\": 1603184400000,\n \"endDate\": 1613062800000,\n \"data\": [\n {\n \"key\": \"Color\",\n \"value\": \"green\"\n }\n ],\n \"subActivities\": [\n {\n \"name\": \"Site Work & Logistics\",\n \"startDate\": 1603184400000,\n \"endDate\": 1613062800000,\n \"data\": [\n {\n \"key\": \"Height\",\n \"value\": 12\n }\n ],\n \"subActivities\": [\n {\n \"name\": \"Site Office Installation\",\n \"startDate\": 1603184400000,\n \"endDate\": 1603213200000,\n \"data\": [\n {\n \"key\": \"Size\",\n \"value\": \"Big\"\n }\n ]\n },\n {\n \"name\": \"Excavation\",\n \"startDate\": 1603270800000,\n \"endDate\": 1603299600000\n }\n ]\n }\n ]\n }\n ]\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "delete", + "url": "/:teamspace/:model/sequences/:sequenceID/legend", + "title": "Delete legend", + "name": "deleteLegend", + "group": "Sequences", + "description": "Delete the legend associated to this sequence
", + "examples": [ + { + "title": "Example usage", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002/legend HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "delete", + "url": "/:teamspace/:model/sequences/:sequenceID", + "title": "Delete sequence", + "name": "deleteSequence", + "group": "Sequences", + "description": "Delete the custom sequence by ID
", + "examples": [ + { + "title": "Example usage", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "delete", + "url": "/:teamspace/:model/sequences/:sequenceId/activities/:activityId", + "title": "Edit an activity", + "name": "deleteSequenceActivity", + "group": "Sequences", + "description": "Delete a sequence activity.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "activityId", + "description": "The activity unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/activities/fe94be44-5cd8-4aaf-b020-afc1456680d3 HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "put", + "url": "/:teamspace/:model/sequences/:sequenceId/activities/:activityId", + "title": "Edit an activity", + "name": "editSequenceActivity", + "group": "Sequences", + "description": "Edits a sequence activity.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "activityId", + "description": "The activity unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "name", + "description": "The name of the activity
" + }, + { + "group": "Request body", + "type": "Number", + "optional": true, + "field": "startDate", + "description": "The starting timestamp date of the activity
" + }, + { + "group": "Request body", + "type": "Number", + "optional": true, + "field": "endDate", + "description": "The ending timestamp date of the activity
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "parent", + "description": "The parent id if it has one. This parent must exist previously
" + }, + { + "group": "Request body", + "type": "Object", + "optional": true, + "field": "resources", + "description": "The resources asoociated with the activity
" + }, + { + "group": "Request body", + "type": "KeyValue[]", + "optional": true, + "field": "data", + "description": "An array of key value pairs with metadata for the activity
" + } + ], + "Type: KeyValue": [ + { + "group": "Type: KeyValue", + "type": "String", + "optional": false, + "field": "key", + "description": "The key of the pair
" + }, + { + "group": "Type: KeyValue", + "type": "Any", + "optional": false, + "field": "value", + "description": "The value of the pair
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/activities/fe94be44-5cd8-4aaf-b020-afc1456680d3 HTTP/1.1\n{\n \"name\":\"Renamed activity\"\n}", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences/:sequenceID/legend", + "title": "get the legend", + "name": "getLegend", + "group": "Sequences", + "description": "Get the legend for this sequence
", + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002/legend HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t \"Building works\": \"#aabbcc\"\n\t \"Temporary works\": \"#ffffff66\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences/:sequenceID", + "title": "Get sequence", + "name": "getSequence", + "group": "Sequences", + "description": "Get sequence by ID
", + "examples": [ + { + "title": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"teamspace\":\"alice\",\n\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\"name\":\"Sequence 1\",\n\t\"frames\":[\n\t\t{\n\t\t\t\"dateTime\":1244246400000,\n\t\t\t\"state\":\"00000000-0000-0000-0001-000000000002\"\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244419200000,\n\t\t\t\"state\":\"00000000-0000-0000-0002-000000000002\"\n\t\t}\n\t],\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences/:sequenceId/activities", + "title": "Get all activities", + "name": "getSequenceActivities", + "group": "Sequences", + "description": "Get all sequence activities.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/activities HTTP/1.1\n*", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"activities\":[\n\t\t{\n\t\t\t\"id\":\"00000000-0000-0001-0001-000000000001\",\n\t\t\t\"name\":\"Construction\",\n\t\t\t\"startDate\":1244246400000,\n\t\t\t\"endDate\":1244246450000,\n\t\t\t\"subActivities\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"00000000-0001-0001-0001-000000000001\",\n\t\t\t\t\t\"name\":\"Prepare site\",\n\t\t\t\t\t\"startDate\":1244246400000,\n\t\t\t\t\t\"endDate\":1244246430000,\n\t\t\t\t\t\"subActivities\":[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\":\"00000001-0001-0001-0001-000000000001\",\n\t\t\t\t\t\t\t\"name\":\"Erect site hoarding\",\n\t\t\t\t\t\t\t\"startDate\":1244246400000,\n\t\t\t\t\t\t\t\"endDate\":1244246410000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\":\"00000002-0001-0001-0001-000000000001\",\n\t\t\t\t\t\t\t\"name\":\"Clear existing structures\",\n\t\t\t\t\t\t\t\"startDate\":1244246410000,\n\t\t\t\t\t\t\t\"endDate\":1244246420000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\":\"00000003-0001-0001-0001-000000000001\",\n\t\t\t\t\t\t\t\"name\":\"Smooth work surfaces\",\n\t\t\t\t\t\t\t\"startDate\":1244246420000,\n\t\t\t\t\t\t\t\"endDate\":1244246430000\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"00000001-0002-0001-0001-000000000001\",\n\t\t\t\t\t\"name\":\"Construct tunnel\",\n\t\t\t\t\t\"startDate\":1244246430000,\n\t\t\t\t\t\"endDate\":1244246450000,\n\t\t\t\t\t\"subActivities\":[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\":\"00000001-0002-0001-0001-000000000001\",\n\t\t\t\t\t\t\t\"name\":\"Deploy instant tunnel\",\n\t\t\t\t\t\t\t\"startDate\":1244246430000,\n\t\t\t\t\t\t\t\"endDate\":1244246440000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\":\"00000002-0002-0001-0001-000000000001\",\n\t\t\t\t\t\t\t\"name\":\"Add road markings\",\n\t\t\t\t\t\t\t\"startDate\":1244246440000,\n\t\t\t\t\t\t\t\"endDate\":1244246450000\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences/:sequenceId/activities/:activityId", + "title": "Get activity", + "name": "getSequenceActivityDetail", + "group": "Sequences", + "description": "Get sequence activity details.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "activityId", + "description": "Activity ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/activities/00000000-0000-0002-0001-000000000001 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n \"id\":\"00000000-0000-0002-0001-000000000001\",\n \"name\":\"Construct tunnel\",\n \"sequenceId\": \"00000000-0000-0000-0001-000000000001\",\n \"parent\": \"00000130-2300-0002-0001-000567000001\"\n \"startDate\": 1610000000000,\n \"endDate\": 1615483938124,\n \"data\":[\n {\"key\":\"Name\",\"value\":\"Construction\"},\n {\"key\":\"Status\",\"value\":\"Planned\"},\n {\"key\":\"Is Compound Task\",\"value\":\"Yes\"},\n {\"key\":\"Code\",\"value\":\"ST00020\"},\n {\"key\":\"Planned Start\",\"value\":\"15 Apr 2020 10:00:00\"},\n {\"key\":\"Type\",\"value\":\"Work\"},\n {\"key\":\"Constraint\",\"value\":\"No Constraint\"},\n {\"key\":\"Planned Finish\",\"value\":\"11 Sep 2020 18:00:00\"},\n {\"key\":\"Percentage Complete\",\"value\":0},\n {\"key\":\"Physical Volume Unity\",\"value\":\"Unknown\"},\n {\"key\":\"Estimated Rate\",\"value\":0},\n {\"key\":\"Planned Physical Volume\",\"value\":6.6},\n {\"key\":\"Actual Physical Volume\",\"value\":0.9},\n {\"key\":\"Remaining Physical Volume\",\"value\":5.7},\n {\"key\":\"Budgeted Cost\",\"value\":30},\n {\"key\":\"Actual Cost\",\"value\":9999.99}\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences/:sequenceId/state/:stateId", + "title": "Get state", + "name": "getSequenceState", + "group": "Sequences", + "description": "Get state of model in sequence.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "stateId", + "description": "State unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/state/00000000-0000-0000-0001-000000000002 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"transparency\":[\n\t\t{\n\t\t\t\"value\":1,\n\t\t\t\"shared_ids\":[\n\t\t\t\t11111111-1111-1111-1111-111111111111,\n\t\t\t\t22222222-2222-2222-2222-222222222222,\n\t\t\t\t33333333-3333-3333-3333-333333333333\n\t\t\t]\n\t\t}\n\t],\n\t\"color\":[\n\t\t{\n\t\t\t\"value\":[\n\t\t\t\t0,\n\t\t\t\t1,\n\t\t\t\t0\n\t\t\t],\n\t\t\t\"shared_ids\":[\n\t\t\t\t44444444-4444-4444-4444-444444444444,\n\t\t\t\t55555555-5555-5555-5555-555555555555,\n\t\t\t\t66666666-6666-6666-6666-666666666666\n\t\t\t]\n\t\t}\n\t],\n\t\"transform\":[\n\t\t{\n\t\t\t\"value\":[\n\t\t\t\t1, 0, 0, -0.0036411285400390625,\n\t\t\t\t0, 1, 0, 0.0012891292572021484,\n\t\t\t\t0, 0, 1, 0,\n\t\t\t\t0, 0, 0, 1\n\t\t\t],\n\t\t\t\"shared_ids\":[\n\t\t\t\t77777777-7777-7777-7777-777777777777,\n\t\t\t\t88888888-8888-8888-8888-888888888888,\n\t\t\t\t99999999-9999-9999-9999-999999999999\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"value\":[\n\t\t\t\t1, 0, 0, -0.0036411285400390625,\n\t\t\t\t0, 1, 0, 0.0012891292572021484,\n\t\t\t\t0, 0, 1, 0,\n\t\t\t\t0, 0, 0, 1\n\t\t\t],\n\t\t\t\"shared_ids\":[\n\t\t\t\t66666666-6666-6666-6666-666666666666\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"value\":[\n\t\t\t\t1, 0, 0, -0.0036411285400390625,\n\t\t\t\t0, 1, 0, 0.0012891292572021484,\n\t\t\t\t0, 0, 1, 0,\n\t\t\t\t0, 0, 0, 1\n\t\t\t],\n\t\t\t\"shared_ids\":[\n\t\t\t\t44444444-4444-4444-4444-444444444444,\n\t\t\t\taaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,\n\t\t\t\tbbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,\n\t\t\t\tcccccccc-cccc-cccc-cccc-cccccccccccc\n\t\t\t]\n\t\t}\n\t]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences", + "title": "List all sequences", + "name": "listSequences", + "group": "Sequences", + "description": "List all sequences associated with the model.
", + "parameter": { + "fields": { + "Query": [ + { + "group": "Query", + "type": "String", + "optional": true, + "field": "rev_id", + "description": "Revision unique ID
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (with revision)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences?rev_id=00000000-0000-0000-0000-000000000001 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"teamspace\":\"alice\",\n\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\t\"name\":\"Sequence 1\",\n\t\t\"frames\":[\n\t\t\t{\n\t\t\t\t\"dateTime\":1244246400000,\n\t\t\t\t\"state\":\"00000000-0000-0000-0001-000000000002\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"dateTime\":1244419200000,\n\t\t\t\t\"state\":\"00000000-0000-0000-0002-000000000002\"\n\t\t\t}\n\t\t],\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n\t}\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "put", + "url": "/:teamspace/:model/sequences/:sequenceID/legend", + "title": "Add/Update legend", + "name": "updateLegend", + "group": "Sequences", + "description": "Update/add a legend to this sequence
", + "examples": [ + { + "title": "Example usage", + "content": "PUT /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002/legend HTTP/1.1", + "type": "put" + }, + { + "title": "Example usage:", + "content": "{\n\t \"Building works\": \"#aabbcc\"\n\t \"Temporary works\": \"#ffffff66\"\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "patch", + "url": "/:teamspace/:model/sequences/:sequenceID", + "title": "Update a sequence", + "name": "updateSequence", + "group": "Sequences", + "description": "Update a sequence (note: currently only name chance is supported
", + "examples": [ + { + "title": "Example usage", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "patch" + }, + { + "title": "Example usage:", + "content": "{\n\t \"name\": \"Building works\"\n}", + "type": "patch" + } + ], + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "The new name of the sequence
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "get", + "url": "/:teamspace/subscriptions", + "title": "List subscriptions", + "name": "listSubscriptions", + "group": "Subscription", + "description": "List all subscriptions for current user if applicable.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/subscriptions HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n basic: {\n collaborators: 0,\n data: 200\n },\n discretionary: {\n collaborators: \"unlimited\",\n data: 10240,\n expiryDate: null\n }\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "401": [ + { + "group": "401", + "optional": false, + "field": "NOT_AUTHORIZED", + "description": "Not Authorized
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "HTTP/1.1 401 Not Authorized\n{\n\t\"message\":\"Not Authorized\",\n\t\"status\":401,\"code\":\n\t\"NOT_AUTHORIZED\",\n\t\"value\":9,\n\t\"place\":\"GET /teamSpace1/subscriptions\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/subscriptions.js", + "groupTitle": "Subscription" + }, + { + "type": "post", + "url": "/:teamspace/members", + "title": "Add a team member", + "name": "addTeamMember", + "group": "Teamspace", + "description": "Adds a user to a teamspace and assign it a job.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "job", + "description": "The job that the users going to have assigned
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "user", + "description": "The username of the user to become a member
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "The permisions to be assigned to the member it can be an empty array or have a "teamspace_admin" value.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/members HTTP/1.1\n{\n job: \"jobA\",\n user: \"projectshared\",\n permissions: []\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "{\n job: \"jobA\",\n permissions: [],\n user: \"projectshared\",\n firstName: \"Drink\",\n lastName: \"Coffee\",\n company: null\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/members/search/:searchString", + "title": "Search for non-members", + "name": "findUsersWithoutMembership", + "group": "Teamspace", + "description": "It returns a list of users that dont belong to the teamspace and that their usernames matches partially with the string and if entered an email it only matches if the string is the entire email address.
In the result it's included their username, first name, last name, company and roles in other teamspaces.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "search", + "description": "Search string provided to find member
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/members/search/project HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n\n[\n {\n user: \"projectowner\",\n roles: [\n {\n role: \"team_member\",\n db: \"projectowner\"\n }\n ],\n firstName: \"Project\",\n lastName: \"Owner\",\n company: null\n },\n {\n user: \"projectshared\",\n roles: [\n {\n role: \"team_member\",\n db: \"projectshared\"\n }\n ],\n firstName: \"Drink\",\n lastName: \"Coffee\",\n company: null\n },\n {\n user: \"project_username\",\n roles: [\n {\n role: \"team_member\",\n db: \"project_username\"\n }\n ],\n firstName: \"George\",\n lastName: \"Crown\",\n company: null\n },\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/addOns", + "title": "get enabled add ons", + "name": "getAddOns", + "group": "Teamspace", + "description": "view the list of addOns enabled on this teamspace
", + "permission": [ + { + "name": "teamspace member" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success", + "content": "{\n vrEnabled: true,\n hereEnabled: true\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/billingInfo", + "title": "Get billing info", + "name": "getBillingInfo", + "group": "Teamspace", + "description": "It returns the teamspace billing info.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/billingInfo HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n vat: \"GB 365684514\",\n line1: \"10 Downing Street\",\n postalCode: \"SW1A 2AA\",\n city: \"London\",\n company: \"Teamspace one\",\n countryCode: \"GB\",\n lastName: \"Voorhees\",\n firstName: \"Jason\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/members/:user", + "title": "Get member's info", + "name": "getMemberInfo", + "group": "Teamspace", + "description": "It returns the teamspace's member small info .
", + "permission": [ + { + "name": "teamSpaceMember" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "The username of the user you wish to query
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/members/viewerTeamspace1Model1JobB HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n user: \"viewerTeamspace1Model1JobB\",\n firstName: \"Alice\",\n lastName: \"Stratford\",\n company: \"Teamspace one\",\n job: {\"_id\": \"Job1\", color: \"#FFFFFF\"}\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/members", + "title": "Get members list", + "name": "getMemberList", + "group": "Teamspace", + "description": "It returns a list of members identifying which of them are teamspace administrators, and their jobs.
", + "permission": [ + { + "name": "teamSpaceMember" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/members HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n members: [\n {\n user: \"teamSpace1\",\n firstName: \"Teamspace\",\n lastName: \"One\",\n company: \"Teamspace one\",\n permissions: [\n \"teamspace_admin\"\n ],\n job: \"jobA\",\n isCurrentUser: true\n },\n {\n user: \"unassignedTeamspace1UserJobA\",\n firstName: \"John\",\n lastName: \"Williams\",\n company: \"Teamspace One\",\n permissions: [],\n job: \"jobA\",\n isCurrentUser: false\n },\n {\n user: \"viewerTeamspace1Model1JobB\",\n firstName: \"Alice\",\n lastName: \"Stratford\",\n company: \"Teamspace one\",\n permissions: [],\n job: \"jobB\",\n isCurrentUser: false\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/settings/mitigations.csv", + "title": "Download mitigations file", + "name": "getMitigationsFile", + "group": "Teamspace", + "description": "Returns a CSV file containing all defined suggested risk mitigations.
", + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/settings/mitigations.csv HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nName of teamspace
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/quota", + "title": "Get Quota Information", + "name": "getQuotaInfo", + "group": "Teamspace", + "description": "It returns the quota information. Each teamspace has a space limit and a limit of collaborators. The values returned are space used (both these values are in bytes) and the collaborator limit. If spaceLimit or collaboratorLimit are nulled it means that there are no space limit/member limit.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/quota HTTP/1.1", + "type": "get" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n spaceLimit: 1048576,\n\t collaboratorLimit: 12,\n spaceUsed: 2048\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/settings", + "title": "Get teamspace settings", + "name": "getTeamspaceSettings", + "group": "Teamspace", + "description": "Returns all teamspace settings.
", + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/settings HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"riskCategories\":[\n\t\t\"Commercial Issue\",\n\t\t\"Environmental Issue\",\n\t\t\"Health - Material effect\",\n\t\t\"Health - Mechanical effect\",\n\t\t\"Safety Issue - Fall\",\n\t\t\"Safety Issue - Trapped\",\n\t\t\"Safety Issue - Event\",\n\t\t\"Safety Issue - Handling\",\n\t\t\"Safety Issue - Struck\",\n\t\t\"Safety Issue - Public\",\n\t\t\"Social Issue\",\n\t\t\"Other Issue\",\n\t\t\"UNKNOWN\"\n\t],\n\t\"topicTypes\":[\n\t\t\"For information\",\n\t\t\"VR\",\n\t\t\"Clash\",\n\t\t\"Diff\",\n\t\t\"RFI\",\n\t\t\"Risk\",\n\t\t\"H&S\",\n\t\t\"Design\",\n\t\t\"Constructibility\",\n\t\t\"GIS\"\n\t],\n\t\"mitigationsUpdatedAt\":1567156228976,\n\t\"_id\":\"acme\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + } + }, + { + "type": "delete", + "url": "/:teamspace/members/:user", + "title": "Remove from the teamspace", + "name": "removeTeamMember", + "group": "Teamspace", + "description": "Removes a user from the teampspace.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "Username of the member to remove
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /teamSpace1/members/viewerTeamspace1Model1JobB HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n user: \"viewerTeamspace1Model1JobB\",\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "patch", + "url": "/:teamspace/settings", + "title": "Update teamspace settings", + "name": "updateTeamspaceSettings", + "group": "Teamspace", + "description": "Update teamspace settings.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String[]", + "optional": true, + "field": "riskCategories", + "description": "List of risk categories
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": true, + "field": "topicTypes", + "description": "List of issue topic types
" + } + ], + "Risk category": [ + { + "group": "Risk category", + "type": "String", + "optional": false, + "field": "value", + "description": "Value of risk category
" + }, + { + "group": "Risk category", + "type": "String", + "optional": false, + "field": "label", + "description": "Label for risk category
" + } + ], + "Topic type": [ + { + "group": "Topic type", + "type": "String", + "optional": false, + "field": "value", + "description": "Value of topic type
" + }, + { + "group": "Topic type", + "type": "String", + "optional": false, + "field": "label", + "description": "Label for topic type
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "PUT /acme/settings HTTP/1.1\n{\n\t\"topicTypes\":[\n\t\t\"New Topic 1\",\n\t\t\"New Topic 2\"\n\t],\n\t\"riskCategories\":[\n\t\t\"New Category 1\",\n\t\t\"NEW CATEGORY 2\"\n\t]\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"riskCategories\":[\n\t\t\"New Category 1\",\n\t\t\"NEW CATEGORY 2\"\n\t],\n\t\"topicTypes\":[\n\t\t\"New Topic 1\",\n\t\t\"New Topic 2\"\n\t],\n\t\"mitigationsUpdatedAt\":1567156228976,\n\t\"_id\":\"acme\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "post", + "url": "/:teamspace/settings/mitigations.csv", + "title": "Upload mitigations file", + "name": "uploadMitigationsFile", + "group": "Teamspace", + "description": "Upload a risk mitigations CSV file to a teamspace.
", + "examples": [ + { + "title": "Example usage", + "content": "POST /acme/settings/mitigations.csv HTTP/1.1\nName of teamspace
" + } + ] + } + } + }, + { + "type": "get", + "url": "/starredMeta", + "title": "Gets the starred metadata tags for the logged user", + "description": "This endpoint returns the starred metadata tags. You can manage the starred metadata in the frontend from BIM (i) icon in the viewer.
", + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n[\n \"material\",\n \"color\",\n \"base offset\"\n]", + "type": "json" + } + ] + }, + "name": "GetStarredMetadataTags", + "group": "User", + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "get", + "url": "/starredModels", + "title": "Gets the starred models for the logged user", + "name": "GetStarredModels", + "group": "User", + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "put", + "url": "/starredMeta", + "title": "Replaces the whole starred metadata tags array for the logged user", + "name": "SetMetadataTags", + "group": "User", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "optional": true, + "field": "String", + "description": "(Request body) An array of tags to be starred
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": " [\n \t\"material\",\n\t \t\"color\"\n\t ]", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "put", + "url": "/starredModels", + "title": "Sets the whole starred models for the logged user", + "name": "SetStarredModels", + "group": "User", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "optional": true, + "field": "String", + "description": "An array of models to be starred, belong to the teamspace
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": " {\n \t\"user1\": [\"c7d9184a-83d3-4ef0-975c-ba2ced888e79\"],\n \t\"user2\": [\"4d17e126-8238-432d-a421-93819373e21a\", \"0411e74a-0661-48f9-bf4f-8eabe4a673a0\"]\n\t }", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "post", + "url": "/starredMeta", + "title": "Adds a starred metadata tag for the logged user", + "name": "StarMetadataTags", + "group": "User", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "tag", + "description": "The tag to be starred
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": "{\n \"tag\": \"material\"\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "post", + "url": "/starredModels", + "title": "Adds a starred models for the logged user", + "name": "StarModels", + "group": "User", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "teamspace where model resides
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "model ID to add
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": "{\n \"teamspace\": \"user1\",\n \"model\": \"c7d9184a-83d3-4ef0-975c-ba2ced888e79\"\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "delete", + "url": "/starredMeta", + "title": "removes a starred metadata tag for the logged user if the tag exists", + "name": "UnstarMetadataTags", + "group": "User", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "tag", + "description": "The tag to be starred
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": "{\n \"tag\": \"material\"\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "delete", + "url": "/starredModels", + "title": "removes a starred models for the logged user if the tag exists", + "name": "UnstarModels", + "group": "User", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "teamspace where model resides
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "model ID to remove
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": "{\n \"teamspace\": \"user1\",\n \"model\": \"c7d9184a-83d3-4ef0-975c-ba2ced888e79\"\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "delete", + "url": "/apikey", + "title": "Deletes the current apikey for the logged user", + "name": "deleteApiKey_HTTP_1_1_200_OK___", + "group": "User", + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "post", + "url": "/apikey", + "title": "Generates an apikey for the logged user", + "name": "generateApiKey", + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n apiKey:\"20f947a673dce5419ce187ca7998a68f\"\n}", + "type": "json" + } + ] + }, + "group": "User", + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "get", + "url": "/me", + "title": "Gets the profile for the logged user", + "name": "getProfile", + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n username: \"jasonv\",\n firstName: \"Jason\",\n lastName: \"Voorhees\",\n email: \"jason@vorhees.com\",\n hasAvatar: true\n}", + "type": "json" + } + ] + }, + "group": "User", + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "post", + "url": "/:teamspace/:model/viewpoints/", + "title": "Create view", + "name": "createView", + "group": "Views", + "description": "Create a new view.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of view
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "Screenshot
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "clippingPlanes", + "description": "List of clipping planes
" + } + ], + "Request body: screenshot": [ + { + "group": "Request body: screenshot", + "type": "String", + "optional": false, + "field": "base64", + "description": "Screenshot image in base64
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/viewpoints HTTP/1.1\n{\n\t\"clippingPlanes\":[],\n\t\"name\":\"View 3\",\n\t\"screenshot\":{\n\t\t\"base64\":Delete a view.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewId", + "description": "View ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000000 HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"status\":\"success\"\n}", + "type": "png" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/view.js", + "groupTitle": "Views" + }, + { + "type": "get", + "url": "/:teamspace/:model/viewpoints/:viewId", + "title": "Get view", + "name": "findView", + "group": "Views", + "description": "Retrieve a view.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewId", + "description": "View ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Type: ResultViewpoint": [ + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "The right vector of the viewpoint indicating the direction of right in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "The up vector of the viewpoint indicating the direction of up in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "The position vector indicates where in the world the viewpoint is positioned.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "The vector indicating where in the world the viewpoint is looking at.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "The vector indicating where is the viewpoint is looking at in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "The vector indicating the near plane.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "The vector indicating the far plane.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "The angle of the field of view.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "The aspect ratio of the fustrum.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "the clipping planes associated with the viewpoint
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String[]", + "optional": true, + "field": "override_group_ids", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups ids with one group for each colour
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "A string in base64 representing the screenshot associated with the viewpoint
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000001 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\"thumbnail\":\"charence/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000001/thumbnail.png\",\n\t\"viewpoint\":{\n\t\t\"right\":[1.0,-0.0,0.0],\n\t\t\"up\":[0.0,0.0,-1.0],\n\t\t\"position\":[35000.0,150000.0,20000.0],\n\t\t\"look_at\":[35000.0,3000.0,20000.0],\n\t\t\"view_dir\":[-0.0,-1,-0.0],\n\t\t\"near\":100.0,\n\t\t\"far\":100000.0,\n\t\t\"fov\":1.0,\n\t\t\"aspect_ratio\":1.185,\n\t\t\"clippingPlanes\":[],\n\t\t\"highlighted_group_id\":\"\"\n\t},\n\t\"clippingPlanes\":[],\n\t\"screenshot\":{\n\t\t\"thumbnailUrl\":View ID
" + }, + { + "group": "View object", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of view
" + }, + { + "group": "View object", + "type": "String", + "optional": false, + "field": "thumbnail", + "description": "Thumbnail image
" + }, + { + "group": "View object", + "type": "ResultViewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint properties
" + }, + { + "group": "View object", + "type": "Number[]", + "optional": false, + "field": "clippingPlanes", + "description": "[DEPRECATED] Array of clipping planes
" + }, + { + "group": "View object", + "type": "Object", + "optional": false, + "field": "screenshot", + "description": "[DEPRECATED] Screenshot object
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/view.js", + "groupTitle": "Views" + }, + { + "type": "get", + "url": "/:teamspace/:model/viewpoints/:viewId/thumbnail.png", + "title": "Get view thumbnail", + "name": "getThumbnail", + "group": "Views", + "description": "Retrieve a view's thumbnail image.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewId", + "description": "View ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000000/thumbnail.png HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nList all model views.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "Object[]", + "optional": false, + "field": "views", + "description": "List of view objects
" + } + ], + "View object": [ + { + "group": "View object", + "type": "String", + "optional": false, + "field": "_id", + "description": "View ID
" + }, + { + "group": "View object", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of view
" + }, + { + "group": "View object", + "type": "String", + "optional": false, + "field": "thumbnail", + "description": "Thumbnail image
" + }, + { + "group": "View object", + "type": "ResultViewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint properties
" + }, + { + "group": "View object", + "type": "Number[]", + "optional": false, + "field": "clippingPlanes", + "description": "[DEPRECATED] Array of clipping planes
" + }, + { + "group": "View object", + "type": "Object", + "optional": false, + "field": "screenshot", + "description": "[DEPRECATED] Screenshot object
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\t\"thumbnail\":\"charence/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000001/thumbnail.png\",\n\t\t\"viewpoint\":{\n\t\t\t\"right\":[1.0,-0.0,0.0],\n\t\t\t\"up\":[0.0,0.0,-1.0],\n\t\t\t\"position\":[35000.0,150000.0,20000.0],\n\t\t\t\"look_at\":[35000.0,3000.0,20000.0],\n\t\t\t\"view_dir\":[-0.0,-1,-0.0],\n\t\t\t\"near\":100.0,\n\t\t\t\"far\":100000.0,\n\t\t\t\"fov\":1.0,\n\t\t\t\"aspect_ratio\":1.185,\n\t\t\t\"clippingPlanes\":[],\n\t\t\t\"highlighted_group_id\":\"\"\n\t\t},\n\t\t\"clippingPlanes\":[],\n\t\t\"screenshot\":{\n\t\t\t\"thumbnailUrl\":Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Type: ResultViewpoint": [ + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "The right vector of the viewpoint indicating the direction of right in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "The up vector of the viewpoint indicating the direction of up in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "The position vector indicates where in the world the viewpoint is positioned.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "The vector indicating where in the world the viewpoint is looking at.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "The vector indicating where is the viewpoint is looking at in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "The vector indicating the near plane.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "The vector indicating the far plane.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "The angle of the field of view.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "The aspect ratio of the fustrum.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "the clipping planes associated with the viewpoint
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String[]", + "optional": true, + "field": "override_group_ids", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups ids with one group for each colour
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "A string in base64 representing the screenshot associated with the viewpoint
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + } + } + }, + { + "type": "put", + "url": "/:teamspace/:model/viewpoints/:viewId", + "title": "Update view", + "name": "updateView", + "group": "Views", + "description": "Update a view.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewId", + "description": "View ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of view
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /acme/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000001 HTTP/1.1\n{\n\t\"name\":\"NewName\"\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000001\"\n}", + "type": "png" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/view.js", + "groupTitle": "Views" + } +] }); diff --git a/backend/docs/api_data.json b/backend/docs/api_data.json new file mode 100644 index 00000000000..7667495e545 --- /dev/null +++ b/backend/docs/api_data.json @@ -0,0 +1,14845 @@ +[ + { + "type": "get", + "url": "/version", + "title": "Application version", + "name": "printVersion", + "group": "3D_Repo", + "description": "Show current application version.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "VERSION", + "description": "API service version
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "unity", + "description": "Unity viewer version
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "navis", + "description": "Autodesk Navisworks version
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "unitydll", + "description": "Unity viewer version
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"VERSION\": \"2.20.1\",\n\t\"unity\": {\n\t\t\"current\": \"2.20.0\",\n\t\t\"supported\": []\n\t},\n\t\"navis\": {\n\t\t\"current\": \"2.16.0\",\n\t\t\"supported\": [\n\t\t\t\"2.8.0\"\n\t\t]\n\t},\n\t\"unitydll\": {\n\t\t\"current\": \"2.8.0\",\n\t\t\"supported\": []\n\t}\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "3D_Repo" + }, + { + "type": "post", + "url": "/:teamspace/permissions", + "title": "Assign permissions", + "name": "createPermission", + "group": "Account_Permission", + "description": "Assign account level permission to a user
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "user", + "description": "User to assign permissions to
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "List of account level permissions
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + }, + { + "group": "200", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "Account Level Permission types
" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"user\": \"bob\",\n\t\t\"permissions\": [\n\t\t\t\"create_project\"\n\t\t]\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/permissions HTTP/1.1\n{\n\t\"user\": \"bob\",\n\t\"permissions\": [\n\t\t\"create_project\"\n\t]\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/accountPermission.js", + "groupTitle": "Account_Permission" + }, + { + "type": "delete", + "url": "/:teamspace/permissions/:user", + "title": "Revoke permissions", + "name": "deletePermission", + "group": "Account_Permission", + "description": "Revoke all permissions from a user.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User to delete
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /acme/permissions/alice HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/accountPermission.js", + "groupTitle": "Account_Permission" + }, + { + "type": "get", + "url": "/:teamspace/permissions", + "title": "List all permissions", + "name": "listPermissions", + "group": "Account_Permission", + "description": "Get a list of all account permission objects for a teamspace
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + }, + { + "group": "200", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "Account level permissions
" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"user\": \"alice\",\n\t\t\"permissions\": [\n\t\t\t\"teamspace_admin\"\n\t\t]\n\t},\n\t{\n\t\t\"user\": \"bob\",\n\t\t\"permissions\": [\n\t\t\t\"create_project\"\n\t\t]\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/permissions HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/accountPermission.js", + "groupTitle": "Account_Permission" + }, + { + "type": "put", + "url": "/:teamspace/permissions/:user", + "title": "Update permissions", + "name": "updatePermission", + "group": "Account_Permission", + "description": "Update permissions assignment for a user.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User to update
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "List of account level permissions
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "List of account level permissions
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"permissions\": [\n\t\t\"teamspace_admin\"\n\t]\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /acme/permissions/alice HTTP/1.1\n{\n\t\"permissions\": [\n\t\t\"teamspace_admin\"\n\t]\n}", + "type": "put" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/accountPermission.js", + "groupTitle": "Account_Permission" + }, + { + "type": "post", + "url": "/forgot-password", + "title": "Forgot password", + "name": "forgotPassword", + "group": "Account", + "description": "Send a password reset link to account's e-mail.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "username", + "description": "Account username
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "email", + "description": "E-mail address registered with account
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (with username):", + "content": "POST /forgot-password HTTP/1.1\n{\n\t\"username: \"alice\"\n}", + "type": "get" + }, + { + "title": "Example usage (with e-mail):", + "content": "POST /forgot-password HTTP/1.1\n{\n\t\"email: \"alice@acme.co.uk\"\n}", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "get", + "url": "/:user/avatar", + "title": "Get avatar", + "name": "getAvatar", + "group": "Account", + "description": "Get user avatar.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "avatar", + "description": "User Avatar Image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nUser does not have an avatar
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "HTTP/1.1 404 Not Found\n{\n\t\"message\": \"User does not have an avatar\",\n\t\"status\": 404,\n\t\"code\": \"USER_DOES_NOT_HAVE_AVATAR\",\n\t\"place\": \"GET /alice/avatar\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /alice/avatar HTTP/1.1", + "type": "put" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "get", + "url": "/:user.json", + "title": "List account information", + "name": "listInfo", + "group": "Account", + "description": "Account information and list of projects grouped by teamspace that the user has access to.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "accounts", + "description": "User account
" + }, + { + "group": "200", + "type": "Object", + "optional": false, + "field": "billingInfo", + "description": "Billing information
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "email", + "description": "User e-mail address
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "firstName", + "description": "First name
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "lastName", + "description": "Surname
" + }, + { + "group": "200", + "type": "Boolean", + "optional": false, + "field": "hasAvatar", + "description": "True if user account has an avatar
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"accounts\": [\n\t\t{\n\t\t\t\"account\": \"repoman\",\n\t\t\t\"models\": [\n\t\t\t\t{\n\t\t\t\t\t\"permissions\": [\n\t\t\t\t\t\t\"change_model_settings\",\n\t\t\t\t\t\t\"upload_files\",\n\t\t\t\t\t\t\"create_issue\",\n\t\t\t\t\t\t\"comment_issue\",\n\t\t\t\t\t\t\"view_issue\",\n\t\t\t\t\t\t\"view_model\",\n\t\t\t\t\t\t\"download_model\",\n\t\t\t\t\t\t\"edit_federation\",\n\t\t\t\t\t\t\"delete_federation\",\n\t\t\t\t\t\t\"delete_model\",\n\t\t\t\t\t\t\"manage_model_permission\"\n\t\t\t\t\t],\n\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\t\t\"name\": \"ufo\",\n\t\t\t\t\t\"status\": \"ok\",\n\t\t\t\t\t\"timestamp\": \"2016-07-26T15:52:11.000Z\"\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"fedModels\": [],\n\t\t\t\"isAdmin\": true,\n\t\t\t\"permissions\": [\n\t\t\t\t\"teamspace_admin\"\n\t\t\t],\n\t\t\t\"quota\": {\n\t\t\t\t\"spaceLimit\": 10485760,\n\t\t\t\t\"collaboratorLimit\": 5,\n\t\t\t\t\"spaceUsed\": 12478764\n\t\t\t},\n\t\t\t\"projects\": []\n\t\t},\n\t\t{\n\t\t\t\"account\": \"breakingbad\",\n\t\t\t\"models\": [\n\t\t\t\t{\n\t\t\t\t\t\"permissions\": [\n\t\t\t\t\t\t\"view_issue\",\n\t\t\t\t\t\t\"view_model\",\n\t\t\t\t\t\t\"upload_files\",\n\t\t\t\t\t\t\"create_issue\"\n\t\t\t\t\t],\n\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000001\",\n\t\t\t\t\t\"name\": \"homelab\",\n\t\t\t\t\t\"status\": \"ok\",\n\t\t\t\t\t\"timestamp\": null\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"fedModels\": [\n\t\t\t\t{\n\t\t\t\t\t\"federate\": true,\n\t\t\t\t\t\"permissions\": [\n\t\t\t\t\t\t\"change_model_settings\",\n\t\t\t\t\t\t\"upload_files\",\n\t\t\t\t\t\t\"create_issue\",\n\t\t\t\t\t\t\"comment_issue\",\n\t\t\t\t\t\t\"view_issue\",\n\t\t\t\t\t\t\"view_model\",\n\t\t\t\t\t\t\"download_model\",\n\t\t\t\t\t\t\"edit_federation\",\n\t\t\t\t\t\t\"delete_federation\",\n\t\t\t\t\t\t\"delete_model\",\n\t\t\t\t\t\t\"manage_model_permission\"\n\t\t\t\t\t],\n\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000003\",\n\t\t\t\t\t\"name\": \"fed1\",\n\t\t\t\t\t\"status\": \"ok\",\n\t\t\t\t\t\"timestamp\": \"2017-05-11T12:49:59.000Z\",\n\t\t\t\t\t\"subModels\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"database\": \"breakingbad\",\n\t\t\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000001\",\n\t\t\t\t\t\t\t\"name\": \"homelab\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"database\": \"breakingbad\",\n\t\t\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000002\",\n\t\t\t\t\t\t\t\"name\": \"laundrylab\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"projects\": [\n\t\t\t\t{\n\t\t\t\t\t\"_id\": \"58f78c8ededbb13a982114ee\",\n\t\t\t\t\t\"name\": \"folder1\",\n\t\t\t\t\t\"permission\": [],\n\t\t\t\t\t\"models\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"permissions\": [\n\t\t\t\t\t\t\t\t\"view_issue\",\n\t\t\t\t\t\t\t\t\"view_model\",\n\t\t\t\t\t\t\t\t\"upload_files\",\n\t\t\t\t\t\t\t\t\"create_issue\"\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000004\",\n\t\t\t\t\t\t\t\"name\": \"laundrylab\",\n\t\t\t\t\t\t\t\"status\": \"ok\",\n\t\t\t\t\t\t\t\"timestamp\": null\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t],\n\t\"billingInfo\": {\n\t\t\"countryCode\": \"US\",\n\t\t\"postalCode\": \"0\",\n\t\t\"line2\": \"123\",\n\t\t\"city\": \"123\",\n\t\t\"line1\": \"123\",\n\t\t\"vat\": \"000\",\n\t\t\"company\": \"Universal Pictures\",\n\t\t\"_id\": \"59145aedf4f613668fba0f98\"\n\t},\n\t\"email\":\"alice@acme.co.uk\",\n\t\"firstName\":\"Alice\",\n\t\"lastName\":\"Allen\",\n\t\"hasAvatar\": true,\n\t\"jobs\": [\n\t\t{\n\t\t\t\"_id\": \"Director\"\n\t\t},\n\t\t{\n\t\t\t\"_id\": \"Actor\"\n\t\t},\n\t\t{\n\t\t\t\"_id\": \"Producer\n\t\t}\n\t]\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /alice.json HTTP/1.1", + "type": "delete" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "put", + "url": "/:user/password", + "title": "Reset password", + "name": "resetPassword", + "group": "Account", + "description": "Reset user account password. New password must be different.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User account
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "oldPassword", + "description": "Old password
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "newPassword", + "description": "New password
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "token", + "description": "Password reset token
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "optional": false, + "field": "account", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"account\":\"alice\"\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "TOKEN_INVALID", + "description": "Token is invalid or has expired
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "HTTP/1.1 400 Bad Request\n{\n\t\"message\":\"Token is invalid or expired\",\n\t\"status\":400,\n\t\"code\":\"TOKEN_INVALID\",\n\t\"value\":59,\n\t\"place\": \"PUT /alice/password\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage (with old password):", + "content": "PUT /alice/password HTTP/1.1\n{\n\t\"oldPassword\":\"AW96B6\",\n\t\"newPassword\":\"TrustNo1\"\n}", + "type": "post" + }, + { + "title": "Example usage (with token):", + "content": "PUT /alice/password HTTP/1.1\n{\n\t\"token\":\"1234567890\",\n\t\"newPassword\":\"TrustNo1\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "post", + "url": "/:user", + "title": "Sign up", + "name": "signUp", + "group": "Account", + "description": "Sign up for a new user account.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "New account username to register
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "password", + "description": "Password
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "email", + "description": "Valid e-mail address
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "firstName", + "description": "First name
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "lastName", + "description": "Surname
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "company", + "description": "Company
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "jobTitle", + "description": "Job title
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "countryCode", + "description": "ISO 3166-1 alpha-2
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "captcha", + "description": "Google reCAPTCHA response token
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "optional": false, + "field": "account", + "description": "New Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"account\":\"alice\"\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "SIGN_UP_PASSWORD_MISSING", + "description": "Password is missing
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "\nHTTP/1.1 400 Bad Request\n{\n\t\"message\": \"Password is missing\",\n\t\"status\": 400,\n\t\"code\": \"SIGN_UP_PASSWORD_MISSING\",\n\t\"value\": 57,\n\t\"place\": \"POST /nabile\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /alice HTTP/1.1\n{\n\t\"email\":\"alice@acme.co.uk\",\n\t\"password\":\"AW96B6\",\n\t\"firstName\":\"Alice\",\n\t\"lastName\":\"Allen\",\n\t\"company\":\"Acme Corporation\",\n\t\"countryCode\":\"GB\",\n\t\"jobTitle\":\"CEO\",\n\t\"captcha\":\"1234567890qwertyuiop\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "put", + "url": "/:user", + "title": "Update user account", + "name": "updateUser", + "group": "Account", + "description": "Update account information.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "Account username
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "email", + "description": "Valid e-mail address
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "firstName", + "description": "First name
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "lastName", + "description": "Surname
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "optional": false, + "field": "account", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"account\":\"alice\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /alice HTTP/1.1\n{\n\t\"email\":\"alice@3drepo.org\",\n\t\"firstName\":\"Alice\",\n\t\"lastName\":\"Anderson\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "post", + "url": "/:user/avatar", + "title": "Upload avatar", + "name": "uploadAvatar", + "group": "Account", + "description": "Upload a new avatar image. Only multipart form data content type will be accepted.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "File", + "optional": false, + "field": "file", + "description": "Image to upload
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /alice/avatar HTTP/1.1\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryN8dwXAkcO1frCHLf\n\n------WebKitFormBoundaryN8dwXAkcO1frCHLf\nContent-Disposition: form-data; name=\"file\"; filename=\"avatar.png\"\nContent-Type: image/png\n\nStatus of Avatar upload.
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"status\":\"success\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "post", + "url": "/:user/verify", + "title": "Verify", + "name": "verify", + "group": "Account", + "description": "Verify an account after signing up.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "Account username
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "token", + "description": "Account verification token
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "optional": false, + "field": "account", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"account\":\"alice\"\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "ALREADY_VERIFIED", + "description": "User already verified
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "HTTP/1.1 400 Bad Request\n{\n\t\"message\": \"Already verified\",\n\t\"status\": 400,\n\t\"code\": \"ALREADY_VERIFIED\",\n\t\"value\": 60,\n\t\"place\": \"POST /alice/verify\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /alice/verify HTTP/1.1\n{\n\t\"token\":\"1234567890\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Account" + }, + { + "type": "get", + "url": "/login", + "title": "Get current username", + "name": "checkLogin", + "group": "Authentication", + "description": "Get the username of the logged in user.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "username", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"username\": \"alice\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /login HTTP/1.1\n{}", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Authentication" + }, + { + "type": "post", + "url": "/login", + "title": "Login", + "name": "login", + "group": "Authentication", + "description": "3D Repo account login. Logging in generates a token that can be used for cookie-based authentication. To authentication subsequent API calls using cookie-based authentication, simply put the following into the HTTP header: Cookie: connect.sid=:sessionId
NOTE: If you use a modern browser’s XMLHttpRequest object to make API calls, you don’t need to take care of the authentication process after calling /login.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "username", + "description": "Account username
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "password", + "description": "Account password
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "username", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nset-cookie:connect.sid=12345678901234567890;\n{\n\t\"username\": \"alice\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /login HTTP/1.1\n{\n\t\"username\": \"alice\",\n\t\"password\": \"AW96B6\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Authentication" + }, + { + "type": "post", + "url": "/logout", + "title": "Logout", + "name": "logout", + "group": "Authentication", + "description": "Invalidate the authenticated session.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "username", + "description": "Account username
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"username\": \"alice\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /logout HTTP/1.1\n{}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/auth.js", + "groupTitle": "Authentication" + }, + { + "type": "post", + "url": "/:teamspace/:model/revision(/master/head|/:revId)/groups", + "title": "Create group", + "name": "createGroup", + "group": "Groups", + "description": "Add a group to the model.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "author", + "description": "Username of group creator
" + }, + { + "group": "Request body", + "type": "Number[]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "description", + "description": "Group description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Group name
" + }, + { + "group": "Request body", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + }, + { + "group": "Request body", + "type": "Object[]", + "optional": true, + "field": "rules", + "description": "List of rules in group
" + }, + { + "group": "Request body", + "type": "Number[]", + "optional": true, + "field": "transformation", + "description": "Flat 16 element array representation of 4x4 transformation matrix
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (/master/head)", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups HTTP/1.1\n{\n\t\"name\":\"Group 1\",\n\t\"description\":\"This is the description text for the first group.\",\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\":\"acme\",\n\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"shared_ids\":[\n\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "post" + }, + { + "title": "Example usage (/:revId)", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/groups HTTP/1.1\n{\n\t\"name\":\"Group 1\",\n\t\"description\":\"This is the description text for the first group.\",\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\":\"acme\",\n\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"shared_ids\":[\n\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "post" + }, + { + "title": "Example usage (smart group)", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups HTTP/1.1\n{\n\t\"name\":\"Smart 1\",\n\t\"description\":\"This is a smart group of objects with type IfcWall or IfcDoor with area > 5.\",\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"objects\":[],\n\t\"rules\":[\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"Area\"]\n\t\t\t},\n\t\t\t\"operator\":\"GT\",\n\t\t\t\"values\":[5]\n\t\t},\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"IFC Type\"]\n\t\t\t},\n\t\t\t\"operator\":\"IS\",\n\t\t\t\"values\":[\n\t\t\t\t\"IfcWall\",\n\t\t\t\t\"IfcDoor\"\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response (normal group)", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\"name\":\"Group 1\",\n\t\"description\":\"This is the description text for the first group.\",\n\t\"author\":\"alice\",\n\t\"createdAt\":\"2018-03-09T10:45:00.000Z\",\n\t\"color\":[255,0,0],\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\":\"acme\",\n\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"ifc_guids\":[],\n\t\t\t\"shared_ids\":[\n\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t],\n\t\"rules\":[]\n}", + "type": "json" + }, + { + "title": "Success-Response (smart group)", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000004\",\n\t\"name\":\"Smart 1\",\n\t\"description\":\"This is a smart group of objects with type IfcWall or IfcDoor with area > 5.\",\n\t\"author\":\"alice\",\n\t\"createdAt\":\"2018-03-09T10:45:00.000Z\",\n\t\"color\":[255,0,0],\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\":\"acme\",\n\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"ifc_guids\":[],\n\t\t\t\"shared_ids\":[\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t],\n\t\"rules\":[\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"Area\"]\n\t\t\t},\n\t\t\t\"operator\":\"GT\",\n\t\t\t\"values\":[5]\n\t\t},\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"IFC Type\"]\n\t\t\t},\n\t\t\t\"operator\":\"IS\",\n\t\t\t\"values\":[\n\t\t\t\t\"IfcWall\",\n\t\t\t\t\"IfcDoor\"\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "json" + } + ], + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "author", + "description": "Username of group creator
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "createdAt", + "description": "Group creation timestamp in milliseconds
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "description", + "description": "Group description
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "name", + "description": "Group name
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "rules", + "description": "List of rules in group
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "transformation", + "description": "Flat 16 element array representation of 4x4 transformation matrix
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedAt", + "description": "Group update timestamp in milliseconds
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedBy", + "description": "Username of last user to amend group
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "_id", + "description": "Unique ID of group
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "delete", + "url": "/:teamspace/:model/groups?ids=[GROUPS]", + "title": "Delete groups", + "name": "deleteGroups", + "group": "Groups", + "description": "Delete groups.
", + "parameter": { + "fields": { + "Query": [ + { + "group": "Query", + "type": "String", + "optional": false, + "field": "GROUPS", + "description": "Comma separated list of group IDs
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "status", + "description": "Group deletion result (success|ERROR CODE)
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"status\":\"success\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/groups?ids=00000000-0000-0000-0000-000000000002,00000000-0000-0000-0000-000000000003 HTTP/1.1", + "type": "delete" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "post", + "url": "/:teamspace/:model/groups/export", + "title": "Export Groups", + "name": "exportGroups", + "group": "Groups", + "description": "This is a back-ported endpoint from V5. For details please see V5 documentation /docs/#/Federations/ExportFederationGroups
", + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision(/master/head|/:revId)/groups/:groupId?[query]", + "title": "Find group", + "name": "findGroup", + "group": "Groups", + "description": "Find a group.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "groupId", + "description": "Group ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "ifcguids", + "description": "Flag that returns IFC GUIDs for group elements
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (/master/head)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (/:revId)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/groups/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (with IFC GUIDs)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups/00000000-0000-0000-0000-000000000004?ifcguids=true HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"createdAt\":1520592300000,\n\t\"description\":\"This is the description text for the first group.\",\n\t\"name\":\"Group 1\",\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\": \"acme\",\n\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"ifc_guids\": [],\n\t\t\t\"shared_ids\": [\n\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t],\n\t\"updatedAt\":1552128300000,\n\t\"updatedBy\":\"alice\",\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n}", + "type": "json" + }, + { + "title": "Success-Response (with IFC GUIDs)", + "content": "HTTP/1.1 200 OK\n{\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"createdAt\":1520592300000,\n\t\"description\":\"This is a smart group of objects with type IfcWall or IfcDoor with area > 5.\",\n\t\"name\":\"Smart 1\",\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\": \"acme\",\n\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"ifc_guids\": [\n\t\t\t\t\"2cx1GdQ9fAgRIWgfhfBb84\",\n\t\t\t\t\"13NEEUJ8DEE8fEH0aHgm2z\",\n\t\t\t\t\"3OLNF2_DL6hfPgh8Bw7fI7\"\n\t\t\t],\n\t\t\t\"shared_ids\": [\n\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t],\n\t\"rules\":[\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"Area\"]\n\t\t\t},\n\t\t\t\"operator\":\"GT\",\n\t\t\t\"values\":[5]\n\t\t},\n\t\t{\n\t\t\t\"field\": {\n\t\t\t\t\"operator\": \"IS\",\n\t\t\t\t\"values\": [\"IFC Type\"]\n\t\t\t},\n\t\t\t\"operator\":\"IS\",\n\t\t\t\"values\":[\n\t\t\t\t\"IfcWall\",\n\t\t\t\t\"IfcDoor\"\n\t\t\t]\n\t\t}\n\t],\n\t\"updatedAt\":1552128300000,\n\t\"updatedBy\":\"alice\",\n\t\"_id\":\"00000000-0000-0000-0000-000000000004\"\n}", + "type": "json" + } + ], + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "author", + "description": "Username of group creator
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "createdAt", + "description": "Group creation timestamp in milliseconds
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "description", + "description": "Group description
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "name", + "description": "Group name
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "rules", + "description": "List of rules in group
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "transformation", + "description": "Flat 16 element array representation of 4x4 transformation matrix
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedAt", + "description": "Group update timestamp in milliseconds
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedBy", + "description": "Username of last user to amend group
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "_id", + "description": "Unique ID of group
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "post", + "url": "/:teamspace/:model/groups/import", + "title": "Import Groups", + "name": "importGroups", + "group": "Groups", + "description": "This is a back-ported endpoint from V5. For details please see V5 documentation /docs/#/Federations/ImportFederationGroups
", + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision(/master/head/|/:revId)/groups?[query]", + "title": "List all groups", + "name": "listGroups", + "group": "Groups", + "description": "List all groups associated with the model.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "ifcguids", + "description": "Flag that returns IFC GUIDs for group elements
" + }, + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "noIssues", + "description": "Flag that hides groups for issues
" + }, + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "noRisks", + "description": "Flag that hides groups for risks
" + }, + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "noViews", + "description": "Flag that hides groups for risks
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "updatedSince", + "description": "Only return issues that has been updated since this value (in epoch value)
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of group objects
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"author\":\"alice\",\n\t\t\"color\":[255,0,0],\n\t\t\"createdAt\":1520592300000,\n\t\t\"description\":\"This is the description text for the first group.\",\n\t\t\"name\":\"Group 1\",\n\t\t\"objects\":[\n\t\t\t{\n\t\t\t\t\"account\": \"acme\",\n\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\t\"ifc_guids\": [],\n\t\t\t\t\"shared_ids\": [\n\t\t\t\t\t\"24fdcf2d-b9eb-4fa2-a614-dfe2532493b3\",\n\t\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\t\"updatedAt\":1552128300000,\n\t\t\"updatedBy\":\"alice\",\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n\t},\n\t{\n\t\t\"author\":\"alice\",\n\t\t\"color\":[0,255,0],\n\t\t\"createdAt\":1520592300000,\n\t\t\"description\":\"(No description)\",\n\t\t\"name\":\"Group 2\",\n\t\t\"objects\":[\n\t\t\t{\n\t\t\t\t\"account\": \"acme\",\n\t\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\t\"ifc_guids\": [],\n\t\t\t\t\"shared_ids\": [\n\t\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\"\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\t\"rules\":[],\n\t\t\"updatedAt\":1552128300000,\n\t\t\"updatedBy\":\"alice\",\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000003\"\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage (/master/head)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (/:revId)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/groups HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (no issue/risk groups)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups?noIssues=true&noRisks=true HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (with IFC GUIDs)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups?ifcguids=true HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "put", + "url": "/:teamspace/:model/revision(/master/head|/:revId)/groups/:groupId/", + "title": "Update group", + "name": "updateGroup", + "group": "Groups", + "description": "Update a group.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "groupId", + "description": "Group ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "author", + "description": "Username of group creator
" + }, + { + "group": "Request body", + "type": "Number[]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "description", + "description": "Group description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Group name
" + }, + { + "group": "Request body", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + }, + { + "group": "Request body", + "type": "Object[]", + "optional": true, + "field": "rules", + "description": "List of rules in group
" + }, + { + "group": "Request body", + "type": "Number[]", + "optional": true, + "field": "transformation", + "description": "Flat 16 element array representation of 4x4 transformation matrix
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (/master/head)", + "content": "PUT /acme/00000000-0000-0000-0000-000000000000/revision/master/head/groups/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "put" + }, + { + "title": "Example usage (/:revId)", + "content": "PUT /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/groups/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"author\":\"alice\",\n\t\"color\":[255,0,0],\n\t\"createdAt\":1520592300000,\n\t\"description\":\"Updated description text.\",\n\t\"name\":\"Group 1\",\n\t\"objects\":[\n\t\t{\n\t\t\t\"account\": \"acme\",\n\t\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\t\"ifc_guids\": [],\n\t\t\t\"shared_ids\": [\n\t\t\t\t\"db18ef69-6d6e-49a0-846e-907346abb39d\",\n\t\t\t\t\"c532ff34-6669-4807-b7f3-6a0ffb17b027\",\n\t\t\t\t\"fec16ea6-bb7b-4f12-b39b-f06fe6bf041d\",\n\t\t\t\t\"3f881fa8-2b7b-443e-920f-396c1c85e903\"\n\t\t\t]\n\t\t}\n\t],\n\t\"updatedAt\":1552128300000,\n\t\"updatedBy\":\"alice\",\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n}", + "type": "json" + } + ], + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "author", + "description": "Username of group creator
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "createdAt", + "description": "Group creation timestamp in milliseconds
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "description", + "description": "Group description
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "name", + "description": "Group name
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + }, + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "rules", + "description": "List of rules in group
" + }, + { + "group": "200", + "type": "Number[]", + "optional": false, + "field": "transformation", + "description": "Flat 16 element array representation of 4x4 transformation matrix
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedAt", + "description": "Group update timestamp in milliseconds
" + }, + { + "group": "200", + "type": "Number", + "optional": false, + "field": "updatedBy", + "description": "Username of last user to amend group
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "_id", + "description": "Unique ID of group
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/group.js", + "groupTitle": "Groups", + "groupDescription": "A grouping of model elements. Groups can either comprise of a set of manually defined elements or rules (smart group) that define the criteria for its elements.
" + }, + { + "type": "get", + "url": "/:teamspace/:model/revisions.json", + "title": "List all revisions", + "name": "listRevisions", + "group": "History", + "description": "List all revisions for a model.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "Revisions", + "description": "object
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\t\"author\":\"alice\",\n\t\t\"timestamp\":\"2009-06-06T00:00:00.000Z\",\n\t\t\"name\":\"00000000-0000-0000-0000-000000000001\",\n\t\t\"branch\":\"master\"\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revisions.json HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/history.js", + "groupTitle": "History" + }, + { + "type": "get", + "url": "/:teamspace/:model/revisions/:branch.json", + "title": "List all revisions by branch", + "name": "listRevisionsByBranch", + "group": "History", + "description": "List all model revisions from a branch.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "branch", + "description": "Name of revision branch
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "optional": false, + "field": "Revisions", + "description": "object for a branch
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000004\",\n\t\t\"author\": \"alice\",\n\t\t\"desc\": \"For coordination\",\n\t\t\"timestamp\": \"2015-10-21T07:28:00.000Z\",\n\t\t\"name\":\"00000000-0000-0000-0000-000000000004\",\n\t\t\"branch\": \"staging\"\n\t},\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000003\",\n\t\t\"author\": \"alice\",\n\t\t\"desc\": \"Roof access added\",\n\t\t\"timestamp\": \"1985-10-26T09:00:00.000Z\",\n\t\t\"name\":\"00000000-0000-0000-0000-000000000003\",\n\t\t\"branch\": \"staging\"\n\t},\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\t\"author\": \"alice\",\n\t\t\"desc\": \"Initial design\",\n\t\t\"timestamp\": \"1955-11-12T06:38:00.000Z\",\n\t\t\"name\":\"00000000-0000-0000-0000-000000000002\",\n\t\t\"branch\": \"staging\"\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revisions/staging.json HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/history.js", + "groupTitle": "History" + }, + { + "type": "patch", + "url": "/:teamspace/:model/revisions/:id", + "title": "Update revision status", + "name": "updateRevisionStatus", + "group": "History", + "description": "Update the status of revision, setting it to void/active
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "id", + "description": "Unique Revision ID or tag
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": "{\n \"void\": true\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/history.js", + "groupTitle": "History" + }, + { + "type": "post", + "url": "/:teamspace/invitations", + "title": "Create/Update invitation", + "name": "createInvitation", + "group": "Invitations", + "description": "It creates or updates an invitation with the permissions and a job assigned to the invited email
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "email", + "description": "The email to which the invitation will be sent
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "job", + "description": "An existing job for the teamspace
" + }, + { + "group": "Request body", + "type": "Permissions", + "optional": false, + "field": "permissions", + "description": "Valid permissions for the invited. If there is a teamspace_admin: true the rest of the permissions for that teamspace are ignored.
" + } + ], + "Request body: Permisssions": [ + { + "group": "Request body: Permisssions", + "type": "Boolean", + "optional": true, + "field": "teamspace_admin", + "description": "Flag indicating if the invited user will become a teamspace administrator. If this flag is true the rest of the permissions are ignored.
" + }, + { + "group": "Request body: Permisssions", + "type": "ProjectPermissions[]", + "optional": true, + "field": "projects", + "description": "Permissions for projects and their models.
" + } + ], + "Request body: ProjectPermissions": [ + { + "group": "Request body: ProjectPermissions", + "type": "String", + "optional": false, + "field": "project", + "description": "The id of the project in which the project permissions will be applied for the invited user.
" + }, + { + "group": "Request body: ProjectPermissions", + "type": "Boolean", + "optional": true, + "field": "project_admin", + "description": "Flag indicating if the invited user will become a teamspace administrator. If this flag is true the rest of the permissions are ignored.
" + }, + { + "group": "Request body: ProjectPermissions", + "type": "ModelPermissions[]", + "optional": true, + "field": "models", + "description": "An array indicating the permissions for the models.
" + } + ], + "Request body: ModelPermissions": [ + { + "group": "Request body: ModelPermissions", + "type": "String", + "optional": false, + "field": "model", + "description": "The id of the model that will have the permission applied for the invited user.
" + }, + { + "group": "Request body: ModelPermissions", + "type": "String", + "optional": false, + "field": "permission", + "description": "The type of permission applied for the invited user. Valid values are 'viewer', 'commenter' or 'collaborator'
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (with projects and models, permissions):", + "content": "POST /teamSpace1/invitations HTTP/1.1\n\t{\n\t\temail:'invited@enterprise.com'\n\t\tjob: 'jobA',\n\t\tpermissions:{\n\t\t\tprojects:[\n\t\t\t\t{\n\t\t\t\t\tproject: '5bf7df65-f3a8-4337-8016-a63f00000000',\n\t\t\t\t\tmodels: [\n\t\t\t\t\t\t{ model: '5bfc11fa-50ac-b7e7-4328-83aa11fa50ac', permission:'viewer'},\n\t\t\t\t\t\t{ model: '00b1fb4d-091d-4f11-8dd6-9deaf71f5ca5', permission:'commenter'},\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproject: 'Bim Logo',\n\t\t\t\t\tproject_admin: true\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t}", + "type": "post" + }, + { + "title": "Example usage (with teamspace admin):", + "content": "POST /teamSpace1/invitations HTTP/1.1\n\t{\n\t\temail:'anotherinvited@enterprise.com'\n\t\tjob: 'jobA',\n\t\tpermissions: {\n\t\t\tteamspace_admin: true\n\t\t}\n\t}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success (with projects and models, permissions)", + "content": "HTTP/1.1 200 OK\n\t{\n\t\temail:'invited@enterprise.com'\n\t\tjob: 'jobA',\n\t\tpermissions:{\n\t\t\tprojects:[\n\t\t\t\t{\n\t\t\t\t\tproject: '5bf7df65-f3a8-4337-8016-a63f00000000',\n\t\t\t\t\tmodels: [\n\t\t\t\t\t\t{ model: '5bfc11fa-50ac-b7e7-4328-83aa11fa50ac', permission:'viewer'},\n\t\t\t\t\t\t{ model: '00b1fb4d-091d-4f11-8dd6-9deaf71f5ca5', permission:'commenter'},\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproject: 'Bim Logo',\n\t\t\t\t\tproject_admin: true\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t}", + "type": "json" + }, + { + "title": "Success (with teamspace admin)", + "content": "HTTP/1.1 200 OK\n\t{\n\t\temail:'anotherinvited@enterprise.com'\n\t\tjob: 'jobA',\n\t\tpermissions: {\n\t\t\tteamspace_admin: true\n\t\t}\n\t}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/invitations.js", + "groupTitle": "Invitations" + }, + { + "type": "get", + "url": "/:teamspace/invitations", + "title": "Get invitations list", + "name": "getInvitations", + "group": "Invitations", + "description": "It returns a list of invitations with their permissions and their jobs.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/invitations HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n[\n {\n \"email\": \"7e634bae01db4f@mail.com\",\n \"job\": \"jobA\",\n \"permissions\": {\n \"teamspace_admin\": true\n }\n },\n {\n \"email\": \"93393d28f953@mail.com\",\n \"job\": \"jobA\",\n \"permissions\": {\n \"projects\": [\n {\n \"project\": '5bf7df65-f3a8-4337-8016-a63f00000000',\n \"project_admin\": true\n }\n ]\n }\n },\n {\n \"email\": \"48bc8da2f3bc@mail.com\",\n \"job\": \"jobA\",\n \"permissions\": {\n \"projects\": [\n {\n \"project\": '5bf7df65-f3a8-4337-8016-a63f00000000',\n \"models\": [\n {\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n \"permission\": \"collaborator\"\n }\n ]\n }\n ]\n }\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/invitations.js", + "groupTitle": "Invitations" + }, + { + "type": "delete", + "url": "/:teamspace/invitations/:email", + "title": "Revokes an invitation", + "name": "removeInvitation", + "group": "Invitations", + "description": "It revokes an invitation for a teamspace
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "email", + "description": "Email of the user invitation that you wish to revoke
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /teamSpace1/invitations/invited@enterprise.com HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/invitations.js", + "groupTitle": "Invitations" + }, + { + "type": "get", + "url": "/:teamspace/invoices", + "title": "List all invoices", + "name": "listInvoices", + "group": "Invoice", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "description": "List all invoices if available, to current logged in user.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "Invoice", + "description": "Object
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\"_id\":\"invoice_ID\",\n\t\"invoiceNo\":\"AA-111\",\n\t\"nextPaymentAmount\":00,\n\t\"taxAmount\":0,\n\t\"amount\":00,\n\t\"currency\":\"GBP\",\n\t\"transactionId\":\"transaction_ID\",\n\t\"gateway\":\"GATEWAY_PROVIDER\",\n\t\"billingAgreementId\":\"billing_agreement_ID\",\n\t\"periodEnd\":\"2018-06-03\",\n\t\"periodStart\":\"2018-05-04\",\n\t \"info\":\n\t\t{\n\t\t \"vat\":\"\",\n\t\t \"countryCode\":\"AO\",\n\t\t \"postalCode\":\"SW11 1BQ\",\n\t\t \"city\":\"London\",\n\t\t \"line2\":\"1 Street Road\",\n\t\t \"line1\":\"London\",\n\t\t \"company\":\"Comapny\",\n\t\t \"lastName\":\"User Lastname\",\n\t\t \"firstName\":\"User Firstname\",\n\t\t \"_id\":\"invoice_ID\",\n\t\t \"countryName\":\"United Kingdom\"\n\t\t},\n\t \"nextPaymentDate\":\"2018-06-04\",\n\t \"createdAt\":\"04-05-2018 15:59\",\n\t \"__v\":0,\"state\":\"complete\",\n\t \"items\":\n\t\t[{\n\t\t\t \"name\":\"pricingPlanName\",\n\t\t\t\"currency\":\"GBP\",\n\t\t\t\"amount\":00,\n\t\t\t\"taxAmount\":0,\n\t\t\t\"_id\":\"invoice_ID\",\n\t\t\t\"description\":\"Advance License (from 2018)\",\n\t\t\t\"id\":\"invoice_ID\"},\n\t\t\t {\n\t\t\t\t\"name\":\"pricingPlanName\",\n\t\t\t\t\"currency\":\"GBP\",\n\t\t\t\t\"amount\":29,\n\t\t\t\t\"taxAmount\":0,\n\t\t\t\t\"_id\":\"invoice_ID\",\n\t\t\t\t\"description\":\"This is a dummy invoice for use with API Documentation\",\n\t\t\t\t\"id\":\"invoice_ID\"\n\t\t}],\n\t\t\t\t\"type\":\"invoice\",\n\t\t\t\t\"proRata\":false,\n\t\t\t\t\"pending\":false,\n\t\t\t\t\"unitPrice\":\"29.00\",\n\t\t\t\t\"B2B_EU\":false,\n\t\t\t\t\"taxPercentage\":0,\n\t\t\t\t\"createdAtDate\":\"2018-05-04\",\n\t\t\t\t\"netAmount\":00\n\t}\n]", + "type": "json" + } + ] + }, + "error": { + "fields": { + "401": [ + { + "group": "401", + "optional": false, + "field": "NOT_AUTHORIZED", + "description": "Not Authorized
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "\nHTTP/1.1 401 Not Authorized\n{\n\t\"message\":\"Not Authorized\",\n\t\"status\":401,\"code\":\n\t\"NOT_AUTHORIZED\",\n\t\"value\":9,\n\t\"place\":\"GET /nabile/subscriptions\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/invoice.js", + "groupTitle": "Invoice" + }, + { + "type": "get", + "url": "/:teamspace/invoices/:invoiceNo.html", + "title": "Render invoices as HTML", + "name": "renderInvoice", + "group": "Invoice", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "invoiceNo", + "description": "Invoice number to render.
" + } + ] + } + }, + "description": "Render a HTML web page of the requested invoice.
", + "version": "0.0.0", + "filename": "src/v4/routes/invoice.js", + "groupTitle": "Invoice" + }, + { + "type": "get", + "url": "/:teamspace/invoices/:invoiceNo.pdf", + "title": "Render invoices as PDF", + "name": "renderInvoicePDF", + "group": "Invoice", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "optional": false, + "field": "invoiceNo.pdf", + "description": "Invoice to render.
" + } + ] + } + }, + "description": "Render out a PDF version of the requested invocie.
", + "version": "0.0.0", + "filename": "src/v4/routes/invoice.js", + "groupTitle": "Invoice" + }, + { + "type": "post", + "url": "/:teamspace/:model/issues/:issueId/resources", + "title": "Attach resources to an issue", + "name": "attachResource", + "group": "Issues", + "description": "Attaches file or url resources to an issue. If the type of the resource is file it should be send as multipart/form-data. Both types at the same time cant be sent. So in order to attach files and urls it should be done with two different requests.
This method triggers a chat event
", + "parameter": { + "fields": { + "Request body file resource (multipart/form-data)": [ + { + "group": "Request body file resource (multipart/form-data)", + "type": "File[]", + "optional": false, + "field": "files", + "description": "The array of files to be attached
" + }, + { + "group": "Request body file resource (multipart/form-data)", + "type": "String[]", + "optional": false, + "field": "names", + "description": "The names of the files; it should have the same length as the files field and should include the file extension
" + } + ], + "Request body url resource": [ + { + "group": "Request body url resource", + "type": "String[]", + "optional": false, + "field": "urls", + "description": "The array of urls to be attached
" + }, + { + "group": "Request body url resource", + "type": "String[]", + "optional": false, + "field": "names", + "description": "The names of the urls; it should have the same length as the url field
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success example result after two files has been uploaded", + "content": "\n[\n {\n \"_id\":\"7617f775-9eb7-4877-8ec3-98ea3457e519\",\n \"size\":1422,\n \"issueIds\":[\n \"3e8a11e0-9812-11e9-9c4d-ebde5888e062\"\n ],\n \"name\":\"todo.txt\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996461\n },\n {\n \"_id\":\"e25e42d5-c4f0-4fbc-a8f4-bc9899e6662a\",\n \"size\":2509356,\n \"issueIds\":[\n \"3e8a11e0-9812-11e9-9c4d-ebde5888e062\"\n ],\n \"name\":\"football.gif\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996462\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "post", + "url": "/:teamspace/:model/issues/:issueId/comments", + "title": "Add comment to issue", + "name": "commentIssue", + "group": "Issues", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "comment", + "description": "Comment text
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": true, + "field": "viewpoint", + "description": "The viewpoint associated with the comment
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ], + "Type: Viewpoint": [ + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "Right vector of viewpoint indicating the direction of right in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "Up vector of viewpoint indicating the direction of up in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Position vector indicates where in the world the viewpoint is positioned
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "Vector indicating where in the world the viewpoint is looking at
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "Vector indicating the direction the viewpoint is looking at in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "Vector indicating the near plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "Vector indicating the far plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "Angle of the field of view
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "Aspect ratio of the fustrum
" + }, + { + "group": "Type: Viewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "Clipping planes associated with the viewpoint
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group ID generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "highlighted_group", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group definition for those objects (this shouldnt be use simultaneously with highlighted_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "hidden_group", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects (this shouldnt be use simultaneously with hidden_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "shown_group", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the definition of the group to hold those objects (this shouldnt be use simultaneously with shown_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "override_groups", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups with one group for each colour
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "transformation_groups", + "description": "List of groups with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "Base64 string representing the screenshot associated with the viewpoint
" + } + ], + "Type: Group": [ + { + "group": "Type: Group", + "type": "Number[3]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Type: Group", + "type": "ModelObjects", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + } + ], + "Type: ModelObjects": [ + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "account", + "description": "The account that has the model which contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id that contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String[]", + "optional": false, + "field": "shared_ids", + "description": "The shared ids of objects to be selected
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + }, + "examples": [ + { + "title": "PAYLOAD", + "content": "{\n \"comment\": \"This is a commment\",\n \"viewpoint\": {right: [-0.0374530553817749, -7.450580596923828e-9, -0.9992983341217041],…}\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n{\n guid: \"096de7ed-e3bb-4d5b-ae68-17a5cf7a5e5e\",\n comment: \"This is a commment\",\n created: 1558534690327,\n guid: \"096de7ed-e3bb-4d5b-ae68-17a5cf7a5e5e\",\n owner: \"username\",\n viewpoint: {right: [-0.0374530553817749, -7.450580596923828e-9, -0.9992983341217041],…}\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "404", + "description": "Issue not found
" + }, + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "Comment with no text
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "delete", + "url": "/:teamspace/:model/issues/:issueId/comments", + "title": "Deletes an comment from an issue", + "name": "commentIssue", + "group": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "Json", + "optional": false, + "field": "PAYLOAD", + "description": "The data with the comment guid to be deleted.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ] + }, + "examples": [ + { + "title": "PAYLOAD", + "content": "{\n guid: \"096de7ed-e3bb-4d5b-ae68-17a5cf7a5e5e\"\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n{\n guid: \"096de7ed-e3bb-4d5b-ae68-17a5cf7a5e5e\"\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "404", + "description": "Issue not found
" + }, + { + "group": "Error 4xx", + "optional": false, + "field": "401", + "description": "Not authorized, when the user is not the owner
" + }, + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "Issue comment sealed, when the user is trying to delete a comment that is sealed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "delete", + "url": "/:teamspace/:model/issues/:issueId/resources", + "title": "Detach a resource from an issue", + "name": "detachResource", + "group": "Issues", + "description": "Detachs a resource from an issue. If the issue is the last entity the resources has been attached to it also deletes the resource from the system. This method triggers a chat event .
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "_id", + "description": "The resource id to be detached
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n \"_id\":\"e25e42d5-c4f0-4fbc-a8f4-bc9899e6662a\",\n \"size\":2509356,\n \"issueIds\":[\n ],\n \"name\":\"football.gif\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996462\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "get", + "url": "/:teamspace/:model/issues/:issueId", + "title": "Get issue", + "name": "findIssue", + "group": "Issues", + "description": "Find an issue with the requested Issue ID.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "Object", + "optional": false, + "field": "issue", + "description": "The Issue matching the Issue ID
" + } + ] + }, + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n{\n\t\taccount: \"username\"\n\t\tassigned_roles: []\n\t\tcommentCount: 0\n\t\tcreated: 1542723030489\n\t\tcreator_role: \"3D Repo\"\n\t\tdesc: \"(No Description)\"\n\t\tmodel: \"model_ID\"\n\t\tmodelCode: \"\"\n\t\tname: \"Issue one\"\n\t\tnumber: 1\n\t\towner: \"username\"\n\t\tposition: []\n\t\tpriority: \"none\"\n\t\trev_id: \"revision_ID\"\n\t\tscale: 1\n\t\tstatus: \"open\"\n\t\tthumbnail: \"USERNAME/MODEL_ID/issues/ISSUE_ID/thumbnail.png\"\n\t\ttopic_type: \"for_information\"\n\t\ttypePrefix: \"Architectural\"\n\t\tviewCount: 1\n\t\tviewpoint: {near: 24.057758331298828, far: 12028.87890625, fov: 1.0471975803375244,…}\n\t\t__v: 0\n\t\t_id: \"ISSUE_ID\"\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "ISSUE_NOT_FOUND", + "description": "Issue not found
" + } + ] + }, + "examples": [ + { + "title": "HTTP/1.1 404 Not Found", + "content": "HTTP/1.1 404 Not Found\n{\n\t \"place\": \"GET /issues/:issueId\",\n\t \"status\": 500,\n\t \"message\": \"Issue not found\",\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues.bcfzip", + "title": "Download issues BCF file", + "name": "getIssuesBCF", + "group": "Issues", + "description": "Download issues as a BCF file.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:revId/issues.bcfzip", + "title": "Get Issues BCF zip file by revision ID", + "name": "getIssuesBCFTRid", + "group": "Issues", + "description": "Get Issues BCF export based on revision ID.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues/:issueId/viewpoints/:viewpointId/screenshot.png", + "title": "Get issue viewpoint screenshot", + "name": "getScreenshot", + "group": "Issues", + "description": "Get an issue viewpoint screenshot.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewpointId", + "description": "Viewpoint ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues/:issueId/viewpoints/:viewpointId/screenshotSmall.png", + "title": "Get smaller version of Issue screenshot", + "name": "getScreenshotSmall", + "group": "Issues", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "Issue", + "description": "Screenshot.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewpointId", + "description": "Viewpoint ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues/:issueId/thumbnail.png", + "title": "Get issue thumbnail", + "name": "getThumbnail", + "group": "Issues", + "description": "Retrieve screenshot thumbnail image for requested issue.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "thumbnail", + "description": "Thumbnail image
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ] + } + } + }, + { + "type": "post", + "url": "/:teamspace/:model/issues.bcfzip", + "title": "Import BCF file", + "name": "importBCF", + "group": "Issues", + "description": "Upload issues BCF file.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues?[query]", + "title": "List Issues", + "name": "listIssues", + "group": "Issues", + "description": "List all issues for model.
", + "success": { + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"ISSUE_ID\",\n\t\t\"creator_role\":\"Client\",\"scale\":1,\n\t\t\"due_date\":1543881600000,\n\t\t\"priority\":\"low\",\n\t\t\"desc\":\"reverse\",\n\t\t\"topic_type\":\"for_information\",\n\t\t\"status\":\"for approval\",\n\t\t\"owner\":\"username\",\n\t\t\"created\":1546217360002,\n\t\t\"name\":\"Without reverse\",\n\t\t\"number\":2,\n\t\t\"rev_id\":\"REVISION_ID\",\n\t\t\"__v\":0,\n\t\t\"assigned_roles\":[\"Architect\"],\n\t\t\"viewCount\":1,\n\t\t\"commentCount\":0,\n\t\t\"thumbnail\":\"nabile/MODEL_ID/issues/ISSUE_ID/thumbnail.png\",\n\t\t\"position\":[8341.8056640625,1279.962158203125,-3050.34521484375],\n\t\t\"typePrefix\":\"sample\",\n\t\t\"modelCode\":\"\",\n\t\t\"account\":\"username\",\n\t\t\"model\":\"MODEL_ID\",\n\t\t\"viewpoint\":\n\t\t\t{\n\t\t\t\t\"near\":54.739341735839844,\n\t\t\t\t\"far\":27369.669921875,\n\t\t\t\t\"fov\":1.0471975803375244,\n\t\t\t\t\"aspect_ratio\":1.451704502105713,\n\t\t\t\t\"hideIfc\":true,\n\t\t\t\t\"guid\":\"9279d95e-3aee-49c2-ba45-9d2302044597\",\n\t\t\t\t\"_id\":\"5c296790e5f57704580ca00a\",\n\t\t\t\t\"type\":\"perspective\",\n\t\t\t\t\"screenshot\":\"ACCOUNT/MODEL_ID/issues/ISSUE_ID/viewpoints/MODEL_ID/screenshot.png\",\n\t\t\t\t\"clippingPlanes\":[],\"right\":[0.7270411252975464,1.862645149230957e-8,0.6865938901901245],\n\t\t\t\t\"view_dir\":[0.6777805089950562,-0.15971262753009796,-0.7177084684371948],\n\t\t\t\t\"look_at\":[8400.001953125,2339.99951171875,-9599.9990234375],\n\t\t\t\t\"position\":[-3360.6259765625,5111.28125,2853.4453125],\n\t\t\t\t\"up\":[0.10965770483016968,0.9871635437011719,-0.11611767113208771],\n\t\t\t\t\"screenshotSmall\":\"nabile/MODEL_ID/issues/ISSUE_ID/viewpoints/MODEL_ID/screenshotSmall.png\"\n\t\t\t}\n\t}\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": true, + "field": "convertCoords", + "description": "Convert coordinates to user space
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "updatedSince", + "description": "Only return issues updated since this value (in epoch value)
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "numbers", + "description": "Array of issue numbers to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "ids", + "description": "Array of issue IDs to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "topicTypes", + "description": "Array of topic types to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "status", + "description": "Array of status to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "priorities", + "description": "Array of priorities to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "owners", + "description": "Array of owners to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "assignedRoles", + "description": "Array of assigned roles to filter. For searching unassigned issues the one of the values should be 'Unassigned'.
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:revId/issues", + "title": "List Issues by revision ID", + "name": "listIssuesByRevision", + "group": "Issues", + "description": "Get all issues related to specific revision ID.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "Issues", + "description": "Object
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "\n[\n\t{\n\t\t\"_id\":\"issue_ID\",\n\t\t\"creator_role\":\"Client\",\n\t\t\"scale\":1,\n\t\t\"due_date\":1547424000000,\n\t\t\"priority\":\"low\",\n\t\t\"desc\":\"This is a description\",\n\t\t\"topic_type\":\"for_information\",\n\t\t\"status\":\"open\",\"owner\":\"username\",\n\t\t\"created\":1546626949432,\n\t\t\"name\":\"An Issue for API\",\n\t\t\"number\":3,\n\t\t\"rev_id\":\"9cf31c6e-37cc-4625-8cee-270cf731059e\",\n\t\t\"__v\":0,\n\t\t\"assigned_roles\":[\"Architect\"],\n\t\t\"viewCount\":1,\"commentCount\":0,\n\t\t\"thumbnail\":\"ACCOUNT/MODEL_ID/issues/ISSUE_ID/thumbnail.png\",\n\t\t\"position\":[],\n\t\t\"typePrefix\":\"sample\",\n\t\t\"modelCode\":\"\",\n\t\t\"account\":\"username\",\n\t\t\"model\":\"MODEL_ID\",\n\t\t\"viewpoint\":\n\t\t\t{\n\t\t\t\t\"near\":54.739341735839844,\n\t\t\t\t\"far\":27369.669921875,\n\t\t\t\t\"fov\":1.0471975803375244,\n\t\t\t\t\"aspect_ratio\":2.522167444229126,\n\t\t\t\t\"hideIfc\":true,\n\t\t\t\t\"guid\":\"5afbe23f-8307-42d0-ba77-f031922281ce\",\n\t\t\t\t\"_id\":\"5c2fa785b4af3c45f8f83c60\",\n\t\t\t\t\"type\":\"perspective\",\n\t\t\t\t\"screenshot\":\"username/MODEL_ID/issues/ISSUE_ID/viewpoints/5afbe23f-8307-42d0-ba77-f031922281ce/screenshot.png\",\n\t\t\t\t\"clippingPlanes\":[],\"right\":[0.7270411252975464,1.862645149230957e-8,0.6865938901901245],\n\t\t\t\t\t\"view_dir\":[0.6777805089950562,-0.15971262753009796,-0.7177084684371948],\n\t\t\t\t\t\"look_at\":[8400.001953125,2339.99951171875,-9599.9990234375],\n\t\t\t\t\t\"position\":[-3360.6259765625,5111.28125,2853.4453125],\n\t\t\t\t\t\"up\":[0.10965770483016968,0.9871635437011719,-0.11611767113208771],\n\t\t\t\t\t\"screenshotSmall\"username/MODEL_ID/issues/ISSUE_ID/viewpoints/5afbe23f-8307-42d0-ba77-f031922281ce/screenshot.png\"}\n\t}\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": true, + "field": "convertCoords", + "description": "Convert coordinates to user space
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "updatedSince", + "description": "Only return issues updated since this value (in epoch value)
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "numbers", + "description": "Array of issue numbers to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "ids", + "description": "Array of issue IDs to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "topicTypes", + "description": "Array of topic types to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "status", + "description": "Array of status to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "priorities", + "description": "Array of priorities to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "owners", + "description": "Array of owners to filter
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "assignedRoles", + "description": "Array of assigned roles to filter. For searching unassigned issues the one of the values should be 'Unassigned'.
" + } + ] + } + } + }, + { + "type": "post", + "url": "/:teamspace/:model/issues", + "title": "Create issue", + "name": "newIssue", + "group": "Issues", + "description": "Creates a new issue.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "The name of the issue
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "assigned_roles", + "description": "The roles assigned to the issue. Even though its an array (this is for future support of multiple assigned jobs), currently it has one or none elements correspoing to the available jobs in the teamaspace.
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "status", + "description": "The status of the issue. It can have a value of "open","in progress","for approval", "void" or "closed".
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "priority", + "description": "The priority of the issue. It can have a value of "none", String"low", "medium" or "high".
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "topic_type", + "description": "Type of the issue. It's value has to be one of the defined topic_types for the model. See here for more details.
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": false, + "field": "viewpoint", + "description": "The viewpoint of the issue, defining the position of the camera and the screenshot for that position.
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "desc", + "description": "The description of the created issue
" + }, + { + "group": "Request body", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "The vector defining the pin of the issue. If the pin doesnt has an issue its an empty array.
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Type: Viewpoint": [ + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "Right vector of viewpoint indicating the direction of right in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "Up vector of viewpoint indicating the direction of up in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Position vector indicates where in the world the viewpoint is positioned
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "Vector indicating where in the world the viewpoint is looking at
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "Vector indicating the direction the viewpoint is looking at in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "Vector indicating the near plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "Vector indicating the far plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "Angle of the field of view
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "Aspect ratio of the fustrum
" + }, + { + "group": "Type: Viewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "Clipping planes associated with the viewpoint
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group ID generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "highlighted_group", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group definition for those objects (this shouldnt be use simultaneously with highlighted_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "hidden_group", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects (this shouldnt be use simultaneously with hidden_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "shown_group", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the definition of the group to hold those objects (this shouldnt be use simultaneously with shown_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "override_groups", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups with one group for each colour
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "transformation_groups", + "description": "List of groups with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "Base64 string representing the screenshot associated with the viewpoint
" + } + ], + "Type: Group": [ + { + "group": "Type: Group", + "type": "Number[3]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Type: Group", + "type": "ModelObjects", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + } + ], + "Type: ModelObjects": [ + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "account", + "description": "The account that has the model which contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id that contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String[]", + "optional": false, + "field": "shared_ids", + "description": "The shared ids of objects to be selected
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues HTTP/1.1\n{\n \"name\": \"Amazing issue\",\n \"assigned_roles\": [\n \"jobA\"\n ],\n \"status\": \"open\",\n \"priority\": \"none\",\n \"topic_type\": \"for_information\",\n \"viewpoint\": {\n \"right\": [\n 0.8471935391426086,\n -2.2351741790771484e-8,\n 0.5312844514846802\n ],\n \"up\": [\n 0.14098820090293884,\n 0.9641460180282593,\n -0.22482173144817352\n ],\n \"position\": [\n -5828.818359375,\n 5268.15625,\n 7829.76171875\n ],\n \"look_at\": [\n -2445.6826171875,\n 3515.4658203125,\n 2434.966552734375\n ],\n \"view_dir\": [\n 0.5122357606887817,\n -0.2653723657131195,\n -0.8168182373046875\n ],\n \"near\": 20.835742950439453,\n \"far\": 10417.87109375,\n \"fov\": 1.0471975803375244,\n \"aspect_ratio\": 4.031496047973633,\n \"clippingPlanes\": [],\n \"override_groups\": [\n {\n \"color\": [\n \t 0,\n \t 106,\n \t 255,\n \t 52\n \t ],\n \t \"objects\": [\n {\n \"shared_ids\": [\n \"ffd49cfd-57fb-4c31-84f7-02b41352b54f\"\n ],\n \"account\": \"teamSpace1\",\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\"\n }\n ]\n },\n {\n \"color\": [\n 96,\n 237,\n 61\n ],\n \t\"objects\": [\n \t {\n \"shared_ids\": [\n \"a4a14ee6-aa44-4f36-96bd-f80dbabf8ead\"\n ],\n \"account\": \"teamSpace1\",\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\"\n }\n ]\n }\n ],\n \"transformation_groups\": [\n {\n \"transformation\": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],\n \t \"objects\": [\n {\n \"shared_ids\": [\n \"ffd49cfd-57fb-4c31-84f7-02b41352b54f\"\n ],\n \"account\": \"teamSpace1\",\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\"\n }\n ]\n },\n {\n \"color\": [\n 96,\n 237,\n 61\n ],\n \t\"objects\": [\n \t {\n \"shared_ids\": [\n \"a4a14ee6-aa44-4f36-96bd-f80dbabf8ead\"\n ],\n \"account\": \"teamSpace1\",\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\"\n }\n ]\n }\n ],\n \"highlighted_group\": {\n \t\"objects\": [\n \t\t{\n \t\t\t\"shared_ids\": [\n \t\t\t\t\"60286d41-d897-4de6-a0ed-0929fa68be96\"\n \t\t\t],\n \t\t\t\"account\": \"teamSpace1\",\n \t\t\t\"model\": \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\"\n \t\t}\n \t],\n \t\"color\": [\n \t\t255,\n \t\t255,\n \t\t0\n \t]\n },\n \"hidden_group\": {\n \t\"objects\": [\n \t\t{\n \t\t\t\"shared_ids\": [\n \t\t\t\t\"57b0969f-6009-4e32-9153-2b17d3a3628b\"\n \t\t\t],\n \t\t\t\"account\": \"teamSpace1\",\n \t\t\t\"model\": \"b1fceab8-b0e9-4e45-850b-b9888efd6521\"\n \t\t}\n \t]\n }\n \"hideIfc\": true,\n \"screenshot\": \"iVBORw0KGgoAAAANSUhEUgAACAAAA...ggg==\"\n },\n \"desc\": \"This is the most awesome issue ever\",\n \"position\": [\n -3960.10205078125,\n 4487.1552734375,\n 3326.732177734375\n ]\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"name\": \"Amazing issue\",\n \"assigned_roles\": [\n \"jobA\"\n ],\n \"status\": \"open\",\n \"priority\": \"none\",\n \"topic_type\": \"for_information\",\n \"owner\": \"teamSpace1\",\n \"desc\": \"This is the most awesome issue ever\",\n \"rev_id\": \"330f909b-9279-41aa-a87c-1c46f53a8e93\",\n \"creator_role\": \"jobA\",\n \"scale\": 1,\n \"position\": [\n -3960.10205078125,\n 4487.1552734375,\n 3326.732177734375\n ],\n \"_id\": \"9ba5fb10-c8db-11e9-8f2a-ada77612c97e\",\n \"created\": 1566918114625,\n \"number\": 1,\n \"thumbnail\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/9ba5fb10-c8db-11e9-8f2a-ada77612c97e/thumbnail.png\",\n \"typePrefix\": \"Structural\",\n \"modelCode\": \"\",\n \"account\": \"teamSpace1\",\n \"model\": \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n \"viewpoint\": {\n \"right\": [\n 0.8471935391426086,\n -2.2351741790771484e-8,\n 0.5312844514846802\n ],\n \"up\": [\n 0.14098820090293884,\n 0.9641460180282593,\n -0.22482173144817352\n ],\n \"position\": [\n -5828.818359375,\n 5268.15625,\n 7829.76171875\n ],\n \"look_at\": [\n -2445.6826171875,\n 3515.4658203125,\n 2434.966552734375\n ],\n \"view_dir\": [\n 0.5122357606887817,\n -0.2653723657131195,\n -0.8168182373046875\n ],\n \"near\": 20.835742950439453,\n \"far\": 10417.87109375,\n \"fov\": 1.0471975803375244,\n \"aspect_ratio\": 4.031496047973633,\n \"clippingPlanes\": [],\n \"hidden_group_id\": \"119d5dc0-e223-11ea-8549-49012d4e4956\",\n \"highlighted_group_id\" : \"80c5a270-e223-11ea-8549-49012d4e4956\",\n \"override_group_ids\": [\n \"11952060-e223-11ea-8549-49012d4e4956\",\n \"bc5ca80-e6c7-11ea-bd51-ddd919e6418e\"\n ],\n \"transformation_group_ids\": [\n \"12345678-e223-11ea-8549-49012d4e4956\",\n \"12345678-e6c7-11ea-bd51-ddd919e6418e\"\n ],\n \"hideIfc\": true,\n \"screenshot\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/9ba5fb10-c8db-11e9-8f2a-ada77612c97e/viewpoints/125ce196-852c-49ed-9a2f-f9a77aa03390/screenshot.png\",\n \"guid\": \"125ce196-852c-49ed-9a2f-f9a77aa03390\",\n \"screenshotSmall\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/9ba5fb10-c8db-11e9-8f2a-ada77612c97e/viewpoints/125ce196-852c-49ed-9a2f-f9a77aa03390/screenshotSmall.png\"\n },\n \"comments\": [],\n \"extras\": {\n }\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "post", + "url": "/:teamspace/:model/revision/:revId/issues", + "title": "Create issue on revision", + "name": "newIssueRev", + "group": "Issues", + "description": "Creates a new issue for a particular revision. See here for more details.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ] + } + } + }, + { + "type": "post", + "url": "/:teamspace/:model/revision/:revId/issues.bcfzip", + "title": "Post Issues BCF zip file by revision ID", + "name": "postIssuesBCF", + "group": "Issues", + "description": "Upload Issues BCF file using current revision ID.
", + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "status", + "description": ""ok" on success
" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP\n{\n\t\"status\":\"ok\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/issues.html", + "title": "Issues response into as HTML", + "name": "renderIssuesHTML", + "group": "Issues", + "description": "Render all Issues into a HTML webpage, response is rendered HTML.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:revId/issues.html", + "title": "Issues response into as HTML by revision ID", + "name": "renderIssuesHTMLRid", + "group": "Issues", + "description": "Render all Issues into a HTML webpage based on current revision ID.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ] + } + } + }, + { + "type": "patch", + "url": "/:teamspace/:model/issues/:issueId", + "title": "Update issue", + "name": "updateIssue", + "group": "Issues", + "description": "Updates an issue. It takes the part of the issue that can be updated. The system will create a system comment within the issue describing which values were changed. The user needs to be the teamspace administrator, the project administrator, has the same job as the creator of the issue, or has the issue assigned. In the case that the issue has been assigned to the user, the user cannot change it to the "closed" status.
If the issue is being updated to assigned to a job and the status of the issue has the value "for_approval", then the status of the issue is automatically changed to "in_progress".
If the user is changing the issue to the "for_approval" status, the issue will be assigned to the job that the creator of the issue.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "[]String", + "optional": true, + "field": "assigned_roles", + "description": "Job roles assigned to the issue
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "desc", + "description": "Description of issue
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "status", + "description": "The status of issue (values: "open", "in progress", "for approval", "closed")
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "topic_type", + "description": "Topic type of issue (see here for available types)
" + }, + { + "group": "Request body", + "type": "[3]Number", + "optional": true, + "field": "position", + "description": "Vector defining the pin position of the issue; empty if the issue has no pin
" + }, + { + "group": "Request body", + "type": "Number", + "optional": true, + "field": "due_date", + "description": "Due date timestamp for the issue
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "priority", + "description": "The priority of the issue (values: "none", "low", "medium", "high")
" + }, + { + "group": "Request body", + "type": "Number", + "optional": true, + "field": "scale", + "description": "The scale factor of the issue
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": true, + "field": "viewpoint", + "description": "The viewpoint and screenshot of the issue
" + }, + { + "group": "Request body", + "type": "Number", + "optional": true, + "field": "viewCount", + "description": "The viewcount of the issue
" + }, + { + "group": "Request body", + "type": "Object", + "optional": true, + "field": "extras", + "description": "A field containing any extras that wanted to be saved in the issue (typically used by BCF)
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + } + ], + "Type: Viewpoint": [ + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "Right vector of viewpoint indicating the direction of right in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "Up vector of viewpoint indicating the direction of up in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Position vector indicates where in the world the viewpoint is positioned
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "Vector indicating where in the world the viewpoint is looking at
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "Vector indicating the direction the viewpoint is looking at in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "Vector indicating the near plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "Vector indicating the far plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "Angle of the field of view
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "Aspect ratio of the fustrum
" + }, + { + "group": "Type: Viewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "Clipping planes associated with the viewpoint
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group ID generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "highlighted_group", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group definition for those objects (this shouldnt be use simultaneously with highlighted_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "hidden_group", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects (this shouldnt be use simultaneously with hidden_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "shown_group", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the definition of the group to hold those objects (this shouldnt be use simultaneously with shown_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "override_groups", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups with one group for each colour
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "transformation_groups", + "description": "List of groups with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "Base64 string representing the screenshot associated with the viewpoint
" + } + ], + "Type: Group": [ + { + "group": "Type: Group", + "type": "Number[3]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Type: Group", + "type": "ModelObjects", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + } + ], + "Type: ModelObjects": [ + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "account", + "description": "The account that has the model which contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id that contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String[]", + "optional": false, + "field": "shared_ids", + "description": "The shared ids of objects to be selected
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PATCH /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/98c39770-c8e2-11e9-8f2a-ada77612c97e HTTP/1.1\n{\"status\":\"in progress\"}", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"_id\": \"98c39770-c8e2-11e9-8f2a-ada77612c97e\",\n \"name\": \"issue 2\",\n \"assigned_roles\": [\n \"jobC\"\n ],\n \"status\": \"in progress\",\n \"priority\": \"none\",\n \"topic_type\": \"for_information\",\n \"owner\": \"teamSpace1\",\n \"rev_id\": \"330f909b-9279-41aa-a87c-1c46f53a8e93\",\n \"creator_role\": \"jobA\",\n \"scale\": 1,\n \"created\": 1566921116263,\n \"desc\": \"(No Description)\",\n \"number\": 2,\n \"thumbnail\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/98c39770-c8e2-11e9-8f2a-ada77612c97e/thumbnail.png\",\n \"comments\": [\n {\n \"guid\": \"febbe083-5a98-4711-8d60-d2ac06721f83\",\n \"created\": 1566924049774,\n \"owner\": \"teamSpace1\",\n \"action\": {\n \"property\": \"assigned_roles\",\n \"from\": \"\",\n \"to\": \"jobB\"\n },\n \"sealed\": true\n },\n {\n \"guid\": \"e8ba32b2-d58e-4c33-90f7-c6e0404ef1ee\",\n \"created\": 1566924062287,\n \"owner\": \"teamSpace1\",\n \"action\": {\n \"property\": \"assigned_roles\",\n \"from\": \"jobB\",\n \"to\": \"jobC\"\n },\n \"sealed\": true\n },\n {\n \"guid\": \"83117273-2698-4d2d-bd47-7cd31e6a7b14\",\n \"created\": 1566924080277,\n \"owner\": \"teamSpace1\",\n \"action\": {\n \"property\": \"status\",\n \"from\": \"open\",\n \"to\": \"in progress\"\n }\n }\n ],\n \"status_last_changed\": 1566924080277,\n \"account\": \"teamSpace1\",\n \"model\": \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n \"viewpoint\": {\n \"right\": [\n 0.9953137040138245,\n -4.656612873077393e-10,\n 0.09669896215200424\n ],\n \"up\": [\n 0.005437099374830723,\n 0.9984180331230164,\n -0.05596357211470604\n ],\n \"position\": [\n -3083.33251953125,\n 3886.8251953125,\n 8998.2783203125\n ],\n \"look_at\": [\n -2445.680419921875,\n 3515.46533203125,\n 2434.984130859375\n ],\n \"view_dir\": [\n 0.0965459868311882,\n -0.05622706934809685,\n -0.9937390685081482\n ],\n \"near\": 20.835796356201172,\n \"far\": 10417.8984375,\n \"fov\": 1.0471975803375244,\n \"aspect_ratio\": 3.1459293365478516,\n \"clippingPlanes\": [],\n \"highlighted_group_id\": \"98b9d370-c8e2-11e9-8f2a-ada77612c97e\",\n \"hideIfc\": true,\n \"screenshot\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/98c39770-c8e2-11e9-8f2a-ada77612c97e/viewpoints/a1167d5f-2434-4a50-a158-d6a6745e7d6a/screenshot.png\",\n \"guid\": \"a1167d5f-2434-4a50-a158-d6a6745e7d6a\",\n \"screenshotSmall\": \"teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/issues/98c39770-c8e2-11e9-8f2a-ada77612c97e/viewpoints/a1167d5f-2434-4a50-a158-d6a6745e7d6a/screenshotSmall.png\"\n },\n \"position\": [],\n \"extras\": {\n }\n}", + "type": "json" + } + ], + "fields": { + "200": [ + { + "group": "200", + "type": "Object", + "optional": false, + "field": "Updated", + "description": "Issue Object.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues" + }, + { + "type": "patch", + "url": "/:teamspace/:model/revision/:revId/issues/:issueId", + "title": "Update issue on revision", + "name": "updateIssueRev", + "group": "Issues", + "description": "Updates an issue for a particular revision. See here for more details.
", + "version": "0.0.0", + "filename": "src/v4/routes/issue.js", + "groupTitle": "Issues", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "issueId", + "description": "Issue ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "revId", + "description": "Revision ID
" + } + ] + } + } + }, + { + "type": "post", + "url": "/:teamspace/jobs/:jobId/:user", + "title": "Assign a job", + "name": "addUserToJob", + "group": "Jobs", + "description": "Assign a job to a user.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "optional": false, + "field": "jobId", + "description": "Job ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "User
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/jobs/Job1/alice HTTP/1.1", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs" + }, + { + "type": "post", + "url": "/:teamspace/jobs", + "title": "Create a new job", + "name": "createJob", + "group": "Jobs", + "description": "Create a new job on teamspace.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "_id", + "description": "Name of job
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "color", + "description": "Colour of job
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "success": { + "fields": { + "Job object": [ + { + "group": "Job object", + "type": "String", + "optional": false, + "field": "_id", + "description": "Name of job
" + }, + { + "group": "Job object", + "type": "String", + "optional": false, + "field": "color", + "description": "Colour of job
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t_id:\"Job4\",\n\tcolor:\"#ffff00\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/jobs HTTP/1.1\n{\n\t_id:\"Job4\",\n\tcolor:\"#ffff00\"\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs" + }, + { + "type": "delete", + "url": "/:teamspace/jobs/:jobId", + "title": "Delete a job", + "name": "deleteJob", + "group": "Jobs", + "description": "Delete a job from teamspace.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "jobId", + "description": "Job ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /acme/jobs/Job 1 HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs" + }, + { + "type": "get", + "url": "/:teamspace/myJob", + "title": "Get user job", + "name": "getUserJob", + "group": "Jobs", + "description": "Get job assigned to current user.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/myJob HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t_id\":\"Job1\",\n\t\"color\":\"ff00000\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/jobs/colors", + "title": "List colours", + "name": "listColors", + "group": "Jobs", + "description": "List job colours.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "String[]", + "optional": false, + "field": "colors", + "description": "List of job colours
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t\"#ff0000\",\n\t\"#00ff00\",\n\t\"#0000ff\"\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/jobs/colors HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/jobs", + "title": "List all jobs", + "name": "listJobs", + "group": "Jobs", + "description": "List of all jobs defined in teamspace.
", + "success": { + "fields": { + "Job object": [ + { + "group": "Job object", + "type": "String", + "optional": false, + "field": "_id", + "description": "Name of job
" + }, + { + "group": "Job object", + "type": "String", + "optional": false, + "field": "color", + "description": "Colour of job
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"Job1\",\n\t\t\"color\":\"#ff0000\"\n\t},\n\t{\n\t\t\"_id\":\"Job2\",\n\t\t\"color\":\"#00ff00\"\n\t},\n\t{\n\t\t\"_id\":\"Job3\",\n\t\t\"color\":\"#0000ff\"\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/jobs HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + } + }, + { + "type": "put", + "url": "/:teamspace/jobs/:jobId", + "title": "Update job", + "name": "updateJob", + "group": "Jobs", + "description": "Update job.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "jobId", + "description": "Job ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "_id", + "description": "Name of job
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "color", + "description": "Colour of job
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /acme/jobs/Job1 HTTP/1.1\n{\n\t_id:\"Renamed Job\",\n\tcolor:\"#00ffff\"\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/job.js", + "groupTitle": "Jobs" + }, + { + "type": "get", + "url": "/:teamspace/:model/maps/hereadminlabeloverlay/:zoomLevel/:gridx/:gridy.png?[query]", + "title": "Here admin layer", + "name": "getHereAdminOverlayTile", + "group": "Maps", + "description": "Retrieve a Here Maps administrative labels overlay tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/hereadminlabeloverlay/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps aerial map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/hereaerial/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nGet Here Maps service options.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/ HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nGeographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/maps/herebuildings/:lat/:long/tile.json", + "title": "Here building elevation", + "name": "getHereBuildingsFromLongLat", + "group": "Maps", + "description": "Retrieve building elevation information from Here Maps.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "lat", + "description": "Latitude
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "long", + "description": "Longitude
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/herebuildings/51.524575/-0.139088/tile.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"Rows\":[\n\t\t{\n\t\t\t\"BUILDING_ID\":\"700567270\",\n\t\t\t\"FACE_ID\":\"700567270\",\n\t\t\t\"FEATURE_TYPE\":\"2005700\",\n\t\t\t\"HEIGHT\":\"22\",\n\t\t\t\"GROUND_CLEARANCE\":null,\n\t\t\t\"CF_ID\":\"1400645341\",\n\t\t\t\"HAS_3DLM\":\"N\",\n\t\t\t\"NAME\":null,\n\t\t\t\"LAT\":\"5150745,9,-12,-4,10,-5,2\",\n\t\t\t\"LON\":\"-14284,18,14,-9,-12,-9,-2\",\n\t\t\t\"INNER_LAT\":null,\n\t\t\t\"INNER_LON\":null\n\t\t},\n\t\t{\n\t\t\t\"BUILDING_ID\":\"700567273\",\n\t\t\t\"FACE_ID\":\"700567273\",\n\t\t\t\"FEATURE_TYPE\":\"2005700\",\n\t\t\t\"HEIGHT\":\"11\",\n\t\t\t\"GROUND_CLEARANCE\":null,\n\t\t\t\"CF_ID\":\"1400645344\",\n\t\t\t\"HAS_3DLM\":\"N\",\n\t\t\t\"NAME\":null,\n\t\t\t\"LAT\":\"5150742,-12,-4,-4,11,5,4\",\n\t\t\t\"LON\":\"-14252,14,-9,-8,-14,8,9\",\n\t\t\t\"INNER_LAT\":null,\n\t\t\t\"INNER_LON\":null\n\t\t}\n\t]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
" + }, + { + "type": "get", + "url": "/:teamspace/:model/maps/heregrey/:zoomLevel/:gridx/:gridy.png?[query]", + "title": "Here grey tile", + "name": "getHereGreyTile", + "group": "Maps", + "description": "Retrieve a Here Maps grey map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heregrey/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps grey transit map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heregreytransit/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps hybrid map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/herehybrid/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps label overlay tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/herelabeloverlay/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps line and label overlay tile image of street lines, city centre labels, and item labels.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/herelinelabeloverlay/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/here/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps point-of-interest (POI) map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/herepoi/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps terrain map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/hereterrain/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps toll zone map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heretollzone/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps traffic flow overlay tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heretrafficflow/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "min_traffic_congestion", + "description": "Specifies the minimum traffic congestion level to use for rendering traffic flow (free, heavy, queuing, blocked)
" + }, + { + "group": "Query", + "type": "DateTime", + "optional": true, + "field": "time", + "description": "Date and time for showing historical traffic patterns
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps traffic map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heretraffic/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "min_traffic_congestion", + "description": "Specifies the minimum traffic congestion level to use for rendering traffic flow (free, heavy, queuing, blocked)
" + }, + { + "group": "Query", + "type": "DateTime", + "optional": true, + "field": "time", + "description": "Date and time for showing historical traffic patterns
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps truck restrictions overlay tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heretruckoverlay/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve a Here Maps truck restrictions map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/heretruck/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "congestion", + "description": "Flag that enables congestion and environmental zone display
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg", + "description": "MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "lg2", + "description": "Secondary MARC three-letter language code for labels
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pois", + "description": "Mask for Here Maps POIs categories
" + }, + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "ppi", + "description": "Tile resolution in pixels per inch (72, 250, 320, 500)
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "pview", + "description": "Render map boundaries based on internal or local views
" + }, + { + "group": "Query", + "type": "String", + "optional": true, + "field": "style", + "description": "Select style used to render map tile
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nRetrieve an Open Street Map (OSM) map tile image.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps/osm/17/65485/43574.png HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "zoomLevel", + "description": "Zoom level
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridx", + "description": "Longitudinal (X) grid reference
" + }, + { + "group": "Parameter", + "type": "Number", + "optional": false, + "field": "gridy", + "description": "Latitudinal (Y) grid reference
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Map tile image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nList the available geographic information system (GIS) sources and map layers.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "Object[]", + "optional": false, + "field": "maps", + "description": "List of available map objects
" + } + ], + "Map object": [ + { + "group": "Map object", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of map provider
" + }, + { + "group": "Map object", + "type": "Object[]", + "optional": false, + "field": "layers", + "description": "List of available map layer objects
" + } + ], + "Layer object": [ + { + "group": "Layer object", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of map layer
" + }, + { + "group": "Layer object", + "type": "String", + "optional": false, + "field": "source", + "description": "Map source identifier
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"maps\":[\n\t\t{\n\t\t\t\"name\":\"Open Street Map\",\n\t\t\t\"layers\":[\n\t\t\t\t{\n\t\t\t\t\t\"name\":\"Map Tiles\",\n\t\t\t\t\t\"source\":\"OSM\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"name\":\"Here\",\n\t\t\t\"layers\":[\n\t\t\t\t{\n\t\t\t\t\t\"name\":\"Map Tiles\",\n\t\t\t\t\t\"source\":\"HERE\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"name\":\"Traffic Flow\",\n\t\t\t\t\t\"source\":\"HERE_TRAFFIC_FLOW\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"name\":\"Truck Restrictions\",\n\t\t\t\t\t\"source\":\"HERE_TRUCK_OVERLAY\"\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/maps HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/maps.js", + "groupTitle": "Maps", + "groupDescription": "Geographic information system (GIS) resources from Open Street Maps (OSM) and Here are supported. Please note that an app_id and app_code from Here are required to access Here resources.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/meta/4DTaskSequence.json", + "title": "Get All metadata for 4D Sequence Tags", + "name": "getAllIdsWith4DSequenceTag", + "group": "Meta", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/meta/4DTaskSequence.json", + "title": "Get All metadata with 4D Sequence Tags by revision", + "name": "getAllIdsWith4DSequenceTagRev", + "group": "Meta", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/meta/all.json?filter=:filter", + "title": "Get all metadata", + "name": "getAllMetadata", + "group": "Meta", + "description": "Get all objects in the tree with their metadata.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "filter", + "description": "(optional) properties to filter for, comma separated
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/meta/all.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"data\": [\n {\n \"_id\": \"2f461edf-4544-412a-bb84-ffdb3bbe563b\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuilding\",\n \"IFC GUID\": \"00tMo7QcxqWdIGvc4sMN2A\",\n \"BuildingID\": \"n/a\",\n \"IsPermanentID\": \"True\",\n \"OccupancyType\": \"Private dwelling\",\n \"IsLandmarked\": \"True\",\n \"NumberOfStoreys\": 2\n },\n \"parents\": [\n \"9eeddbe2-750d-46fb-988f-bcf9ec2ecf51\"\n ]\n },\n {\n \"_id\": \"85ad29bd-cd99-4472-a92f-86266b07e57d\",\n \"metadata\": {\n \"IFC Type\": \"IfcSite\",\n \"IFC GUID\": \"20FpTZCqJy2vhVJYtjuIce\"\n },\n \"parents\": [\n \"48359ad0-9b6d-44ed-ae93-47e2ec69ea88\"\n ]\n },\n {\n \"_id\": \"b5fe5dcf-ce8c-4b1e-a96b-bdc5aa001963\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuildingElementProxy\",\n \"IFC GUID\": \"3VkTAO0fr0XQHS3DxQzfxm\",\n \"Reference\": \"LegoRoundTree\"\n },\n \"parents\": [\n \"2bf2a864-5cb0-41ba-85a8-c2cffc3da06d\"\n ]\n },\n {\n \"_id\": \"c4682cf2-7b2a-41c7-8fe2-c0c39512dd99\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuildingStorey\",\n \"IFC GUID\": \"1oZ0wPs_PE8ANCPg3bIs4j\",\n \"AboveGround\": \"False\"\n },\n \"parents\": [\n \"323a9900-ece1-4857-8980-ec96ffc7f681\"\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/meta/all.json?filter=:filter", + "title": "Get all metadata by revision", + "name": "getAllMetadataByRev", + "group": "Meta", + "description": "Get all tree objects with their metadata tags by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to get metadata from
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "filter", + "description": "(optional) properties to filter for, comma separated
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/meta/findObjsWith/:metaKey.json", + "title": "Get ids by metadata", + "name": "getIdsWithMetadataField", + "group": "Meta", + "description": "Get ids of tree objects which has a particular metadata key (in the latest revision). It also returns the metadata value for that key.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "metaKey", + "description": "Unique metadata key
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/meta/findObjsWith/IsLandmarked.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"data\": [\n {\n \"_id\": \"2f461edf-4544-412a-bb84-ffdb3bbe563b\",\n \"metadata\": {\n \"value\": \"True\"\n },\n \"parents\": [\n \"9eeddbe2-750d-46fb-988f-bcf9ec2ecf51\"\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/meta/findObjsWith/:metaKey.json", + "title": "Get ids by metadata", + "name": "getIdsWithMetadataFieldByRev", + "group": "Meta", + "description": "Get ids of tree objects which has a particular metadata key from a particular revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to get metadata from
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "metaKey", + "description": "Unique meta key
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/meta/:id.json", + "title": "Get metadata", + "name": "getMetadataById", + "group": "Meta", + "description": "Get all metadata tags by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "optional": false, + "field": "id", + "description": "Meta Unique ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/meta/b5fe5dcf-ce8c-4b1e-a96b-bdc5aa001963.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"meta\": [\n {\n \"_id\": \"b5fe5dcf-ce8c-4b1e-a96b-bdc5aa001963\",\n \"name\": \"LegoRoundTree:LegoRoundTree:302403\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuildingElementProxy\",\n \"IFC GUID\": \"3VkTAO0fr0XQHS3DxQzfxm\",\n \"Reference\": \"LegoRoundTree\"\n }\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "get", + "url": "/:teamspace/:model/meta/keys", + "title": "Get array of metadata fields", + "name": "getMetadataFields", + "group": "Meta", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/meta/keys HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n \"AboveGround\",\n \"BuildingID\",\n \"IFC GUID\",\n \"IFC Type\",\n \"IsLandmarked\",\n \"IsPermanentID\",\n \"NumberOfStoreys\",\n \"OccupancyType\",\n \"Reference\"\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "post", + "url": "/:teamspace/:model/revision(/master/head/|/:revId)/meta/rules?filter=:filter", + "title": "Filter metadata by rules", + "name": "queryMetadataByRules", + "group": "Meta", + "description": "Get all objects matching filter rules in the tree with their metadata.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "filter", + "description": "(optional) properties to filter for, comma separated
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Boolean", + "optional": true, + "field": "meshids", + "description": "Flag that returns Mesh IDs for matching rule queries
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (/master/head)", + "content": "POST /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/meta/rules HTTP/1.1\n[\n\t{\n\t\t\"field\":\"Area\",\n\t\t\"operator\":\"GT\",\n\t\t\"values\":[5]\n\t},\n\t{\n\t\t\"field\":\"IFC Type\",\n\t\t\"operator\":\"IS\",\n\t\t\"values\":[\n\t\t\t\"IfcWall\",\n\t\t\t\"IfcDoor\"\n\t\t]\n\t}\n]", + "type": "post" + }, + { + "title": "Example usage (/:revId)", + "content": "POST /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/00000000-0000-0000-0000-000000000001/meta/rules HTTP/1.1", + "type": "post" + }, + { + "title": "Example usage (mesh IDs)", + "content": "POST /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/meta/rules?meshids=true HTTP/1.1", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success (metadata):", + "content": "{\n \"data\": [\n {\n \"_id\": \"2f461edf-4544-412a-bb84-ffdb3bbe563b\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuilding\",\n \"IFC GUID\": \"00tMo7QcxqWdIGvc4sMN2A\",\n \"BuildingID\": \"n/a\",\n \"IsPermanentID\": \"True\",\n \"OccupancyType\": \"Private dwelling\",\n \"IsLandmarked\": \"True\",\n \"Area\": 9000,\n \"NumberOfStoreys\": 2\n },\n \"parents\": [\n \"9eeddbe2-750d-46fb-988f-bcf9ec2ecf51\"\n ]\n },\n {\n \"_id\": \"85ad29bd-cd99-4472-a92f-86266b07e57d\",\n \"metadata\": {\n \"IFC Type\": \"IfcWall\",\n \"IFC GUID\": \"20FpTZCqJy2vhVJYtjuIce\"\n },\n \"parents\": [\n \"48359ad0-9b6d-44ed-ae93-47e2ec69ea88\"\n ]\n },\n {\n \"_id\": \"b5fe5dcf-ce8c-4b1e-a96b-bdc5aa001963\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuildingElementProxy\",\n \"IFC GUID\": \"3VkTAO0fr0XQHS3DxQzfxm\",\n \"Area\": 6,\n \"Reference\": \"LegoRoundTree\"\n },\n \"parents\": [\n \"2bf2a864-5cb0-41ba-85a8-c2cffc3da06d\"\n ]\n },\n {\n \"_id\": \"c4682cf2-7b2a-41c7-8fe2-c0c39512dd99\",\n \"metadata\": {\n \"IFC Type\": \"IfcDoor\",\n \"IFC GUID\": \"1oZ0wPs_PE8ANCPg3bIs4j\",\n \"AboveGround\": \"False\"\n },\n \"parents\": [\n \"323a9900-ece1-4857-8980-ec96ffc7f681\"\n ]\n }\n ]\n}", + "type": "json" + }, + { + "title": "Success (federation metadata):", + "content": "{\n \"data\": [],\n \"subModels\": [\n {\n \"data\": [\n {\n \"_id\": \"2f461edf-4544-412a-bb84-ffdb3bbe563b\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuilding\",\n \"IFC GUID\": \"00tMo7QcxqWdIGvc4sMN2A\",\n \"BuildingID\": \"n/a\",\n \"IsPermanentID\": \"True\",\n \"OccupancyType\": \"Private dwelling\",\n \"IsLandmarked\": \"True\",\n \"Area\": 9000,\n \"NumberOfStoreys\": 2\n },\n \"parents\": [\n \"9eeddbe2-750d-46fb-988f-bcf9ec2ecf51\"\n ]\n },\n {\n \"_id\": \"85ad29bd-cd99-4472-a92f-86266b07e57d\",\n \"metadata\": {\n \"IFC Type\": \"IfcWall\",\n \"IFC GUID\": \"20FpTZCqJy2vhVJYtjuIce\"\n },\n \"parents\": [\n \"48359ad0-9b6d-44ed-ae93-47e2ec69ea88\"\n ]\n },\n {\n \"_id\": \"b5fe5dcf-ce8c-4b1e-a96b-bdc5aa001963\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuildingElementProxy\",\n \"IFC GUID\": \"3VkTAO0fr0XQHS3DxQzfxm\",\n \"Area\": 6,\n \"Reference\": \"LegoRoundTree\"\n },\n \"parents\": [\n \"2bf2a864-5cb0-41ba-85a8-c2cffc3da06d\"\n ]\n },\n {\n \"_id\": \"c4682cf2-7b2a-41c7-8fe2-c0c39512dd99\",\n \"metadata\": {\n \"IFC Type\": \"IfcDoor\",\n \"IFC GUID\": \"1oZ0wPs_PE8ANCPg3bIs4j\",\n \"AboveGround\": \"False\"\n },\n \"parents\": [\n \"323a9900-ece1-4857-8980-ec96ffc7f681\"\n ]\n }\n ],\n \"account\": \"acme\",\n \"model\": \"00000000-0000-0000-0000-000000000001\"\n },\n {\n \"data\": [\n {\n \"_id\": \"2f461edf-4544-412a-bb84-ffdb3bbe563b\",\n \"metadata\": {\n \"IFC Type\": \"IfcBuilding\",\n \"IFC GUID\": \"12tTo3QcxqWd5Gvc4sABCA\",\n \"BuildingID\": \"Site B\",\n \"IsPermanentID\": \"True\",\n \"OccupancyType\": \"Private dwelling\",\n \"IsLandmarked\": \"True\",\n \"Area\": 20,\n \"NumberOfStoreys\": 1\n },\n \"parents\": [\n \"9eeddbe2-750d-46fb-988f-bcf9ec2ecf51\"\n ]\n }\n ],\n \"account\": \"acme\",\n \"model\": \"00000000-0000-0000-0000-000000000002\"\n }\n ]\n}", + "type": "json" + }, + { + "title": "Success (mesh IDs):", + "content": "[\n\t{\n\t\t\"account\": \"acme\",\n\t\t\"model\": \"00000000-0000-0000-0000-000000000000\",\n\t\t\"mesh_ids\": [\n\t\t\t\"11111111-1111-1111-1111-111111111111\",\n\t\t\t\"22222222-2222-2222-2222-222222222222\",\n\t\t\t\"33333333-3333-3333-3333-333333333333\",\n\t\t\t\"44444444-4444-4444-4444-444444444444\"\n\t\t]\n\t}\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/meta.js", + "groupTitle": "Meta" + }, + { + "type": "patch", + "url": "/:teamspace/models/permissions", + "title": "Batch update model permissions", + "name": "batchUpdateModelPermissions", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "ModelPermissions[]", + "optional": false, + "field": "BODY", + "description": "List of model permissions
" + } + ], + "Request body: ModelPermissions": [ + { + "group": "Request body: ModelPermissions", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Request body: ModelPermissions", + "type": "Permission[]", + "optional": false, + "field": "permissions", + "description": "List of user permissions
" + } + ], + "Request body: Permission": [ + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "user", + "description": "User ID
" + }, + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "permission", + "description": "Permission type ('viewer'|'commenter'|'collaborator'|'').
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PATCH /acme/models/permissions HTTP/1.1\n[\n {\n model: \"00000000-0000-0000-0000-000000000000\",\n permissions: [\n {\n user: \"alice\",\n permission: \"collaborator\"\n },\n {\n user: \"bob\",\n permission: \"commenter\"\n },\n {\n user: \"mike\",\n permission: \"\"\n }\n ]\n },\n {\n model: \"11111111-1111-1111-1111-111111111111\",\n permissions: [\n {\n user: \"charlie\",\n permission: \"viewer\"\n }\n ]\n },\n {\n model: \"22222222-2222-2222-2222-222222222222\",\n permissions: [\n {\n user: \"dave\",\n permission: \"commenter\"\n },\n {\n user: \"eve\",\n permission: \"\"\n }\n ]\n }\n]", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n status: \"ok\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "post", + "url": "/:teamspace/model", + "title": "Create a model", + "name": "createModel", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "project", + "description": "Name of project in which the model will be created
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "modelName", + "description": "Name of the model to be created
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "unit", + "description": "The unit in which the model is specified
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "desc", + "description": "A description of the model
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "code", + "description": "A code to be associated with the model; it can be of maximum 5 letters (a-z) and numbers
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "type", + "description": "The type of the model
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/model HTTP/1.1\n{\n project: \"classic project\",\n modelName: \"awesomeModel\",\n unit: \"ft\",\n desc: \"This is an awesome model!\",\n code: \"awe12\",\n type: \"Mechanical\"\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n account: \"teamSpace1\",\n model: \"17d09947-368e-4748-877f-d105842c6681\",\n name: \"awesomeModel\",\n permissions: [\n \"change_model_settings\",\n \"upload_files\",\n \"create_issue\",\n \"comment_issue\",\n \"view_issue\",\n \"view_model\",\n \"download_model\",\n \"edit_federation\",\n \"delete_federation\",\n \"delete_model\",\n \"manage_model_permission\"\n ],\n setting: {\n type: \"Mechanical\",\n desc: \"\",\n name: \"awesomeModel\",\n _id: \"17d09947-368e-4748-877f-d105842c6681\",\n subModels: [],\n surveyPoints: [],\n properties: {\n unit: \"ft\"\n },\n permissions: [],\n status: \"ok\"\n }\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "delete", + "url": "/:teamspace/:model", + "title": "Delete Model.", + "name": "deleteModel", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to delete.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /teamSpace1/17d09947-368e-4748-877f-d105842c6681 HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"account\": \"teamSpace1\",\n \"model\": \"17d09947-368e-4748-877f-d105842c6681\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/download/latest", + "title": "Download model", + "name": "downloadModel", + "group": "Model", + "description": "It returns the model file using the latest revision.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to download.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/download/latest HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success (with headers):", + "content": "\nHTTP/1.1 200 OK\nX-Powered-By: Express\nVary: Origin\nAccess-Control-Allow-Credentials: true\nContent-Length: 11964\nContent-Disposition: attachment;filename=3DrepoBIM_blocks.obj\nset-cookie: connect.sid=s%3Ax4mDfLE-NqmPUO5tSSxPAyMjgov6YRge.bVSUoML3obJNp1XuObpbtXY44RjgEhJtsTz%2FwhwIckE; Domain=local.3drepo.io; Path=/; Expires=Tue, 27 Aug 2019 12:18:34 GMT; HttpOnly\nDate: Tue, 27 Aug 2019 11:18:34 GMT\nConnection: keep-alive\n\n/***** FILE CONTENTS ******\\", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/settings/heliSpeed", + "title": "Get model heli speed", + "name": "getHeliSpeed", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The modelId to get Heli speed for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/settings/heliSpeed HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\"heliSpeed\":1}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/idMap.json", + "title": "Get ID map", + "name": "getIdMap", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model id to Get ID Map for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (federation):", + "content": "GET /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/revision/master/head/idMap.json HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (model):", + "content": "GET /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/revision/master/head/idMap.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success (federation):", + "content": "{\n mainTree: {\n idMap: {\n 261bf9df-64d7-4642-8bb2-0a79abd370ec: \"d86573c9-beec-4f06-b194-18b6983a3d71\",\n 528c62e6-5cf8-4868-b5ff-733c128b4b4e: \"6047f788-8317-45ff-b692-29e03071ec63\",\n 7d5ce878-6ec9-4c11-a96d-12b68c9e9c7c: \"7d9eefe0-2b8a-4de3-9acb-c216c9b48c9f\",\n 95744e20-4b4d-4fc1-8ba7-1f31ebf772b6: \"d2c0e845-b392-429e-86bd-6c7453b78654\",\n 71634e9c-da2c-4ea7-bd04-44971d3fd8dc: \"6e40ecbc-bb2f-4504-8f00-80b12fb04443\",\n a70dd58c-c09e-4ed4-ac7e-914dbd145302: \"f1a14ded-6528-4937-b31d-ce4b3ca813d8\",\n d68cf5e7-4d0f-4702-8a92-c81b72928c54: \"d012d6ba-01d2-4460-921e-72539a1ac197\"\n }\n },\n subModels: [\n {\n account: \"teamSpace1\",\n model: \"b1fceab8-b0e9-4e45-850b-b9888efd6521\",\n idMap: {\n a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e: \"57b0969f-6009-4e32-9153-2b17d3a3628b\",\n 33c36fee-622d-46a5-8be1-a1bd295aa7d1: \"1e47d53e-cad8-489b-89ea-7c6c7b8d0e6c\"\n }\n },\n {\n account: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\",\n idMap: {\n 8a1f9cad-18d8-47ce-9cbd-08ba53858ced: \"60286d41-d897-4de6-a0ed-0929fa68be96\",\n ea37c2ed-39d4-4236-843c-332d52876c96: \"9c4be293-0d8f-4e37-b115-d2c752824bfe\"\n }\n },\n {\n account: \"teamSpace1\",\n model: \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n idMap: {\n 8ef1c52e-8838-46dc-9825-efe46aa10041: \"a4a14ee6-aa44-4f36-96bd-f80dbabf8ead\",\n ecc25d63-87e0-4600-ae60-f38f766bc9e4: \"ffd49cfd-57fb-4c31-84f7-02b41352b54f\",\n 3abc5450-5db8-459b-80ea-cb9fca9ccedd: \"a6947de3-25f4-4c2c-a150-22f0ed9ce4dd\"\n }\n }\n ]\n}", + "type": "json" + }, + { + "title": "Success (model):", + "content": "{\n mainTree: {\n idMap: {\n a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e: \"57b0969f-6009-4e32-9153-2b17d3a3628b\",\n 33c36fee-622d-46a5-8be1-a1bd295aa7d1: \"1e47d53e-cad8-489b-89ea-7c6c7b8d0e6c\"\n }\n },\n subModels: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/idToMeshes.json", + "title": "Get ID to meshes", + "name": "getIdToMeshes", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get ID Meshes for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/revision/master/head/idToMeshes.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n mainTree: {\n a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e: [\n \"a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e\"\n ],\n 33c36fee-622d-46a5-8be1-a1bd295aa7d1: [\n \"a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e\"\n ]\n },\n subModels: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/:uid.json.mpc", + "title": "Get JSON Mpc", + "name": "getJsonMpc", + "group": "Model", + "description": "Get the unity bundle mpc json file. The path for this api is provided in the data retrieved by either one of the endpoints /:teamspace/:model/revision/master/head/unityAssets.json or /:teamspace/:model/revision/:rev/unityAssets.json
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "id of the model to get JSON Mpc for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "uid", + "description": "id of the json.mpc file
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/92fc213b-1bab-49a4-b10e-f4368a52d500_unity.json.mpc HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n numberOfIDs: 1,\n maxGeoCount: 1,\n mapping: [\n {\n name: \"ce413e99-8469-4ed0-86e3-ff50bf4fed89\",\n sharedID: \"a876e59a-8cda-4d61-b438-c74ce7b8855d\",\n min: [\n -3515.19556,\n -5790.91504,\n 0\n ],\n max: [\n 0,\n 0,\n 3502.927\n ],\n usage: [\n \"92fc213b-1bab-49a4-b10e-f4368a52d500_0\"\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/modelProperties.json", + "title": "Get model properties", + "name": "getModelProperties", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get properties for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/revision/master/head/modelProperties.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n properties: {\n hiddenNodes: []\n },\n subModels: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model.json", + "title": "Get model settings", + "name": "getModelSetting", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "Object", + "optional": false, + "field": "model", + "description": "The modelId to get settings for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n _id: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n timestamp: \"2019-05-13T16:54:44.000Z\",\n type: \"Structural\",\n desc: \"\",\n name: \"Lego Tree\",\n subModels: [],\n surveyPoints: [],\n properties: {\n unit: \"mm\"\n },\n permissions: [\n \"change_model_settings\",\n \"upload_files\",\n \"create_issue\",\n \"comment_issue\",\n \"view_issue\",\n \"view_model\",\n \"download_model\",\n \"edit_federation\",\n \"delete_federation\",\n \"delete_model\",\n \"manage_model_permission\"\n ],\n status: \"ok\",\n id: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n model: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n account: \"teamSpace1\",\n headRevisions: {\n }\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/fulltree.json", + "title": "Get tree", + "name": "getModelTree", + "group": "Model", + "description": "Returns the full tree for the model
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/fulltree.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n mainTree: {\n nodes: {\n account: \"teamSpace1\",\n project: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n type: \"transformation\",\n name: \"RootNode\",\n path: \"73a41cea-4c6b-47ed-936b-3f5641aecb52\",\n _id: \"73a41cea-4c6b-47ed-936b-3f5641aecb52\",\n shared_id: \"4dd46b6f-099e-42cd-b045-6460200e7995\",\n children: [\n {\n account: \"teamSpace1\",\n project: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n type: \"transformation\",\n name: \"Fouliiferous Tree H64_2\",\n path: \"73a41cea-4c6b-47ed-936b-3f5641aecb52__33fe7c13-17a4-43d6-af03-ceae6880322f\",\n _id: \"33fe7c13-17a4-43d6-af03-ceae6880322f\",\n shared_id: \"b69a8384-c29d-4954-9efa-4c7bc14f1d3d\",\n children: [\n {\n account: \"teamSpace1\",\n project: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n type: \"mesh\",\n name: \"Fouliiferous Tree H64\",\n path: \"73a41cea-4c6b-47ed-936b-3f5641aecb52__33fe7c13-17a4-43d6-af03-ceae6880322f__ce413e99-8469-4ed0-86e3-ff50bf4fed89\",\n _id: \"ce413e99-8469-4ed0-86e3-ff50bf4fed89\",\n shared_id: \"a876e59a-8cda-4d61-b438-c74ce7b8855d\",\n toggleState: \"visible\"\n }\n ],\n toggleState: \"visible\"\n }\n ],\n toggleState: \"visible\"\n },\n idToName: {\n ce413e99-8469-4ed0-86e3-ff50bf4fed89: \"Fouliiferous Tree H64\",\n 33fe7c13-17a4-43d6-af03-ceae6880322f: \"Fouliiferous Tree H64_2\",\n 73a41cea-4c6b-47ed-936b-3f5641aecb52: \"RootNode\"\n }\n },\n subTrees: []\n}", + "type": "json" + } + ] + }, + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/model/permissions?models=[MODELS]", + "title": "Get multiple models permissions", + "name": "getMultipleModelsPermissions", + "group": "Model", + "description": "Gets the permissions of a list of models
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace.
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String[]", + "optional": false, + "field": "MODELS", + "description": "An array of model ids.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/models/permissions?models=5ce7dd19-1252-4548-a9c9-4a5414f2e0c5,3549ddf6-885d-4977-87f1-eeac43a0e818 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n model: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n name: \"Lego Tree\",\n permissions: [\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"commenter\"\n },\n {\n user: \"projectshared\"\n },\n {\n user: \"fed\"\n },\n {\n user: \"teamSpace1\"\n },\n {\n user: \"unassignedTeamspace1UserJobA\"\n },\n {\n user: \"viewerTeamspace1Model1JobA\"\n },\n {\n user: \"viewerTeamspace1Model1JobB\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\"\n },\n {\n user: \"adminTeamspace1JobA\"\n },\n {\n user: \"adminTeamspace1JobB\"\n },\n {\n user: \"weirdTeamspace\"\n }\n ],\n subModels: []\n },\n {\n model: \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n federate: {\n },\n name: \"Full Logo \",\n permissions: [\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"commenter\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n },\n {\n user: \"projectshared\",\n permission: \"collaborator\"\n },\n {\n user: \"fed\"\n },\n {\n user: \"teamSpace1\"\n },\n {\n user: \"unassignedTeamspace1UserJobA\"\n },\n {\n user: \"viewerTeamspace1Model1JobB\"\n },\n {\n user: \"adminTeamspace1JobA\"\n },\n {\n user: \"adminTeamspace1JobB\"\n },\n {\n user: \"weirdTeamspace\"\n }\n ],\n subModels: [\n {\n database: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\"\n },\n {\n database: \"teamSpace1\",\n model: \"b1fceab8-b0e9-4e45-850b-b9888efd6521\"\n }\n ]\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/idMap.json", + "title": "Get tree path by revision", + "name": "getRevIdMap", + "group": "Model", + "description": "Get tree path by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to ID map for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/idToMeshes.json", + "title": "Get ID Meshes by revision", + "name": "getRevIdToMeshes", + "group": "Model", + "description": "Get ID Meshes by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to use.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/modelProperties.json", + "title": "Get model properties by revision", + "name": "getRevModelProperties", + "group": "Model", + "description": "Get model properties by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to use.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/fulltree.json", + "title": "Get tree by revision", + "name": "getRevModelTree", + "group": "Model", + "description": "Get full tree by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get Tree for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/srcAssets.json", + "title": "Get revision's src assets", + "name": "getRevSrcAssets", + "group": "Model", + "description": "Get the model's assets but of a particular revision
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id to get unity assets for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "The revision of the model to get src assets for
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /Repo3DDemo/01713310-2286-11eb-93c1-296aba26cc11/revision/4d48e3de-1c87-4fdf-87bf-d92c224eb3fe/srcAssets.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"models\": [\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"011382b0-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"153cf665-2c84-4ff9-a9e2-ba495af8e6dc\",\n \"07c67b6c-4b02-435f-8639-ea88403c36f7\",\n \"2967230f-67fa-45dc-9686-161e45c7c8a2\"\n ],\n \"offset\": [\n 9.999999999999787,\n 0,\n -9.999999999999787\n ]\n },\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"01168ff0-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"89d5580a-3224-4e50-bbab-89d855c320e0\"\n ],\n \"offset\": [\n 1610,\n 740,\n -2410\n ]\n },\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"01153060-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"c14dbbee-a8fd-4ed8-8641-9e24737f8238\"\n ],\n \"offset\": [\n -688.095458984375,\n 6410.9140625,\n 683.460205078125\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/unityAssets.json", + "title": "Get revision's unity assets", + "name": "getRevUnityAssets", + "group": "Model", + "description": "Get the model's assets but of a particular revision
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id to get unity assets for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "The revision of the model to get unity assets for
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/unityAssets.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n models: [\n {\n _id: \"Mw+Qm5J5QaqofBxG9TqOkw==\",\n assets: [\n \"/teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/92fc213b-1bab-49a4-b10e-f4368a52d500.unity3d\"\n ],\n database: \"teamSpace1\",\n model: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n offset: [\n -688.095458984375,\n 6410.9140625,\n 683.460205078125\n ],\n jsonFiles: [\n \"/teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/92fc213b-1bab-49a4-b10e-f4368a52d500_unity.json.mpc\"\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/assetsMeta", + "title": "Get revision's metadata about the assets generated", + "name": "getRevUnityAssets", + "group": "Model", + "description": "Get the model's assets metadata of a particular revision
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "The revision of the model
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/assetsMeta HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n superMeshes: [\n {\n _id: \"Get a mesh presented in SRC format.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "id of the model
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "uid", + "description": "id of the SRC file.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/permissions", + "title": "Get model permissions", + "name": "getSingleModelPermissions", + "group": "Model", + "description": "Gets the permissions of a model
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get Permission for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/permissions HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"commenter\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n },\n {\n user: \"projectshared\",\n permission: \"collaborator\"\n },\n {\n user: \"fed\"\n },\n {\n user: \"teamSpace1\"\n },\n {\n user: \"unassignedTeamspace1UserJobA\"\n },\n {\n user: \"viewerTeamspace1Model1JobB\"\n },\n {\n user: \"adminTeamspace1JobA\"\n },\n {\n user: \"adminTeamspace1JobB\"\n },\n {\n user: \"weirdTeamspace\"\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/srcAssets.json", + "title": "Get Src assets for the master branch", + "name": "getSrcAssets", + "group": "Model", + "description": "Get the lastest model's version src assets
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id to get unity assets for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /Repo3DDemo/01713310-2286-11eb-93c1-296aba26cc11/revision/master/head/srcAssets.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"models\": [\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"011382b0-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"153cf665-2c84-4ff9-a9e2-ba495af8e6dc\",\n \"07c67b6c-4b02-435f-8639-ea88403c36f7\",\n \"2967230f-67fa-45dc-9686-161e45c7c8a2\"\n ],\n \"offset\": [\n 9.999999999999787,\n 0,\n -9.999999999999787\n ]\n },\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"01168ff0-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"89d5580a-3224-4e50-bbab-89d855c320e0\"\n ],\n \"offset\": [\n 1610,\n 740,\n -2410\n ]\n },\n {\n \"database\": \"Repo3DDemo\",\n \"model\": \"01153060-2286-11eb-93c1-296aba26cc11\",\n \"assets\": [\n \"c14dbbee-a8fd-4ed8-8641-9e24737f8238\"\n ],\n \"offset\": [\n -688.095458984375,\n 6410.9140625,\n 683.460205078125\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:revId/subModelRevisions", + "title": "Get submodel revisions by rev", + "name": "getSubModelRevisionsByRev", + "group": "Model", + "description": "In a federation it returns the submodels revisions of a particular federation revision. See more details here
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get properties for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/subModelRevisions", + "title": "Get submodels revisions", + "name": "getSubRevisionModels", + "group": "Model", + "description": "In a federation it returns the submodels revisions of the latest federation revision.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get properties for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/revision/master/head/subModelRevisions HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n \"b1fceab8-b0e9-4e45-850b-b9888efd6521\": {\n \"name\": \"block\",\n \"revisions\": [\n {\n \"_id\": \"ddcc3213-af61-4d30-921f-e502d1c2199c\",\n \"author\": \"teamSpace1\",\n \"tag\": \"block\",\n \"timestamp\": \"2019-05-02T16:16:49.000Z\",\n \"name\": \"ddcc3213-af61-4d30-921f-e502d1c2199c\",\n \"branch\": \"master\"\n }\n ]\n },\n \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\": {\n \"name\": \"letters\",\n \"revisions\": [\n {\n \"_id\": \"a1bcfa72-ff37-41ac-95ab-66e450a37896\",\n \"author\": \"teamSpace1\",\n \"tag\": \"letters\",\n \"timestamp\": \"2019-05-02T16:16:32.000Z\",\n \"name\": \"a1bcfa72-ff37-41ac-95ab-66e450a37896\",\n \"branch\": \"master\"\n }\n ]\n },\n \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\": {\n \"name\": \"pipes\",\n \"revisions\": [\n {\n \"_id\": \"9ee1190b-cd25-4467-8d38-5af7c77cab5a\",\n \"author\": \"teamSpace1\",\n \"tag\": \"pipes\",\n \"timestamp\": \"2019-05-02T16:17:04.000Z\",\n \"name\": \"9ee1190b-cd25-4467-8d38-5af7c77cab5a\",\n \"branch\": \"master\"\n }\n ]\n }\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/tree_path.json", + "title": "Get tree paths", + "name": "getTreePath", + "group": "Model", + "description": "Returns the full tree path for the model and if the model is a federation of it submodels. These tree paths have the path to get to every object in the model.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get tree path for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/revision/master/head/tree_path.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n mainTree: {\n idToPath: {\n d68cf5e7-4d0f-4702-8a92-c81b72928c54: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54\",\n 261bf9df-64d7-4642-8bb2-0a79abd370ec: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__528c62e6-5cf8-4868-b5ff-733c128b4b4e__261bf9df-64d7-4642-8bb2-0a79abd370ec\",\n 528c62e6-5cf8-4868-b5ff-733c128b4b4e: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__528c62e6-5cf8-4868-b5ff-733c128b4b4e\",\n 7d5ce878-6ec9-4c11-a96d-12b68c9e9c7c: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__95744e20-4b4d-4fc1-8ba7-1f31ebf772b6__7d5ce878-6ec9-4c11-a96d-12b68c9e9c7c\",\n 71634e9c-da2c-4ea7-bd04-44971d3fd8dc: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__a70dd58c-c09e-4ed4-ac7e-914dbd145302__71634e9c-da2c-4ea7-bd04-44971d3fd8dc\",\n 95744e20-4b4d-4fc1-8ba7-1f31ebf772b6: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__95744e20-4b4d-4fc1-8ba7-1f31ebf772b6\",\n a70dd58c-c09e-4ed4-ac7e-914dbd145302: \"d68cf5e7-4d0f-4702-8a92-c81b72928c54__a70dd58c-c09e-4ed4-ac7e-914dbd145302\"\n }\n },\n subModels: [\n {\n account: \"teamSpace1\",\n model: \"b1fceab8-b0e9-4e45-850b-b9888efd6521\",\n idToPath: {\n a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e: \"33c36fee-622d-46a5-8be1-a1bd295aa7d1__a82a3b7f-bcd9-4487-8f94-370fa1f2ea4e\",\n 33c36fee-622d-46a5-8be1-a1bd295aa7d1: \"33c36fee-622d-46a5-8be1-a1bd295aa7d1\"\n }\n },\n {\n account: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\",\n idToPath: {\n 8a1f9cad-18d8-47ce-9cbd-08ba53858ced: \"ea37c2ed-39d4-4236-843c-332d52876c96__8a1f9cad-18d8-47ce-9cbd-08ba53858ced\",\n ea37c2ed-39d4-4236-843c-332d52876c96: \"ea37c2ed-39d4-4236-843c-332d52876c96\"\n }\n },\n {\n account: \"teamSpace1\",\n model: \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n idToPath: {\n 8ef1c52e-8838-46dc-9825-efe46aa10041: \"3abc5450-5db8-459b-80ea-cb9fca9ccedd__8ef1c52e-8838-46dc-9825-efe46aa10041\",\n ecc25d63-87e0-4600-ae60-f38f766bc9e4: \"3abc5450-5db8-459b-80ea-cb9fca9ccedd__ecc25d63-87e0-4600-ae60-f38f766bc9e4\",\n 3abc5450-5db8-459b-80ea-cb9fca9ccedd: \"3abc5450-5db8-459b-80ea-cb9fca9ccedd\"\n }\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/tree_path.json", + "title": "Get tree path by revision", + "name": "getTreePathByRevision", + "group": "Model", + "description": "Get tree path by revision. See more details here.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to get tree path for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/unityAssets.json", + "title": "Get unity assets", + "name": "getUnityAssets", + "group": "Model", + "description": "Get the lastest model's version unity assets
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id to get unity assets for.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/unityAssets.json HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n models: [\n {\n _id: \"Mw+Qm5J5QaqofBxG9TqOkw==\",\n assets: [\n \"/teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/92fc213b-1bab-49a4-b10e-f4368a52d500.unity3d\"\n ],\n database: \"teamSpace1\",\n model: \"3549ddf6-885d-4977-87f1-eeac43a0e818\",\n offset: [\n -688.095458984375,\n 6410.9140625,\n 683.460205078125\n ],\n jsonFiles: [\n \"/teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/92fc213b-1bab-49a4-b10e-f4368a52d500_unity.json.mpc\"\n ]\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/unityAssets.json", + "title": "Get unity assets", + "name": "getUnityAssets", + "group": "Model", + "description": "Get the lastest model's version unity assets
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model Id to get unity assets for.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "The revision of the model
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/unityAssets.json HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/assetsMeta HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n superMeshes: [\n {\n _id: \"Gets an actual unity bundle file. The path for this api is provided in the data retrieved by either one of the endpoints /:teamspace/:model/revision/master/head/unityAssets.json or /:teamspace/:model/revision/:rev/unityAssets.json
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "id of the model
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "uid", + "description": "id of the unity bundle
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "post", + "url": "/:teamspace/:model/upload/ms-chunking", + "title": "Initialise MS chunking request", + "name": "initChunking", + "group": "Model", + "description": "Initiate model revision data for MS Logic Apps chunked upload.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model id to upload.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "filename", + "description": "Filename of content to upload
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "tag", + "description": "Tag name for new revision
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "desc", + "description": "Description for new revision
" + }, + { + "group": "Request body", + "type": "Boolean", + "optional": true, + "field": "importAnimations", + "description": "Whether to import animations within a sequence
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/upload/ms-chunking HTTP/1.1\n{\n\t\"filename\": \"structure.ifc\",\n\t\"tag\": \"rev001\",\n\t\"desc\": \"Revision 2\"\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n{\n\t\"corID\": \"00000000-0000-1111-2222-333333333333\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/master/head/searchtree.json?searchString=[searchString]", + "title": "Search model tree", + "name": "searchModelTree", + "group": "Model", + "description": "Searches the model (or models if it is a federation) tree and returns the objects matching their names with the searchString param.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to use.
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": false, + "field": "searchString", + "description": "The string to use for search tree objects
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/revision/master/head/searchtree.json?searchString=fou HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n \"_id\": \"33fe7c13-17a4-43d6-af03-ceae6880322f\",\n \"name\": \"Fouliiferous Tree H64_2\",\n \"account\": \"teamSpace1\",\n \"model\": \"3549ddf6-885d-4977-87f1-eeac43a0e818\"\n },\n {\n \"_id\": \"ce413e99-8469-4ed0-86e3-ff50bf4fed89\",\n \"name\": \"Fouliiferous Tree H64\",\n \"account\": \"teamSpace1\",\n \"model\": \"3549ddf6-885d-4977-87f1-eeac43a0e818\"\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "get", + "url": "/:teamspace/:model/revision/:rev/searchtree.json?searchString=[searchString]", + "title": "Search model tree by revision", + "name": "searchModelTreeRev", + "group": "Model", + "description": "Searches the model (or models if it is a federation) tree and returns the objects matching their names with the searchString param. See more details here
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to use.
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "rev", + "description": "Revision to use.
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": false, + "field": "searchString", + "description": "The string to use for search tree objects
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "put", + "url": "/:teamspace/:model/settings/heliSpeed", + "title": "Update model heli speed", + "name": "updateHeliSpeed", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to Update Heli speed.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "heliSpeed", + "description": "The value of the speed that will replace the heli speed.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/settings/heliSpeed HTTP/1.1\n{\"heliSpeed\":3}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "put", + "url": "/:teamspace/:model", + "title": "Update Federated Model", + "name": "updateModel", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Federated Model ID to update
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "[]Submodel", + "optional": false, + "field": "subModels", + "description": "Information on the models that are going to get federated
" + } + ], + "Request body: SubModel": [ + { + "group": "Request body: SubModel", + "type": "String", + "optional": false, + "field": "database", + "description": "The teamspace name which the model belongs to
" + }, + { + "group": "Request body: SubModel", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id to be federated
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5 HTTP/1.1\n{\n subModels: [\n {\n database: \"teamSpace1\",\n model: \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n },\n {\n database: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\",\n }\n ]\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n account: \"teamSpace1\",\n model: \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n setting: {\n _id: \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n federate: {\n },\n desc: \"\",\n name: \"Full Logo test\",\n timestamp: \"2019-08-22T10:42:05.242Z\",\n type: \"Federation\",\n subModels: [\n {\n database: \"teamSpace1\",\n model: \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\"\n },\n {\n database: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\"\n }\n ],\n surveyPoints: [\n {\n position: [\n 0,\n 0,\n 0\n ],\n latLong: [\n 0,\n 0\n ]\n }\n ],\n properties: {\n unit: \"mm\"\n },\n permissions: [\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n }\n ],\n status: \"ok\"\n }\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "patch", + "url": "/:teamspace/:model/permissions", + "title": "Update model permissions", + "name": "updateModelPermissions", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "Permission[]", + "optional": false, + "field": "BODY", + "description": "List of user permissions
" + } + ], + "Request body: Permission": [ + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "user", + "description": "User ID
" + }, + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "permission", + "description": "Permission type ('viewer'|'commenter'|'collaborator'|'').
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (add user permission):", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/permissions HTTP/1.1\n[\n {\n user: \"alice\",\n permission: \"collaborator\"\n }\n]", + "type": "patch" + }, + { + "title": "Example usage (add multiple user permissions):", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/permissions HTTP/1.1\n[\n {\n user: \"bob\",\n permission: \"commenter\"\n },\n {\n user: \"mike\",\n permission: \"viewer\"\n }\n]", + "type": "patch" + }, + { + "title": "Example usage (remove user permission):", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/permissions HTTP/1.1\n[\n {\n user: \"mike\",\n permission: \"\"\n }\n]", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n status: \"ok\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "post", + "url": "/:teamspace/models/permissions", + "title": "Update multiple models permissions", + "name": "updateMultiplePermissions", + "group": "Model", + "deprecated": { + "content": "use now (#Model:batchUpdateModelPermissions)" + }, + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "[]ModelPermissions", + "optional": false, + "field": "BODY", + "description": "Its an array with a list of model ids and their permissions.
" + } + ], + "Request body: ModelPermissions": [ + { + "group": "Request body: ModelPermissions", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id of the model that will have their permission changed. If it's a federation the entry in the response corresponding with the model will have the 'federated' field set to true.
" + }, + { + "group": "Request body: ModelPermissions", + "type": "[]Permission", + "optional": false, + "field": "permissions", + "description": "An array indicating the new permissions.
" + } + ], + "Request body: Permission": [ + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "user", + "description": "User ID
" + }, + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "permission", + "description": "Permission type ('viewer'|'commenter'|'collaborator'|'').
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/models/permissions HTTP/1.1\n[\n {\n model: \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n permissions: [\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n }\n ]\n }\n]", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n name: \"Full Logo \",\n federate: true,\n model: \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n permissions: [\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n },\n {\n user: \"projectshared\"\n },\n {\n user: \"fed\"\n },\n {\n user: \"teamSpace1\"\n },\n {\n user: \"unassignedTeamspace1UserJobA\"\n },\n {\n user: \"viewerTeamspace1Model1JobB\"\n },\n {\n user: \"adminTeamspace1JobA\"\n },\n {\n user: \"adminTeamspace1JobB\"\n },\n {\n user: \"weirdTeamspace\"\n }\n ],\n subModels: [\n {\n database: \"teamSpace1\",\n model: \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\"\n },\n {\n database: \"teamSpace1\",\n model: \"b1fceab8-b0e9-4e45-850b-b9888efd6521\"\n }\n ]\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "post", + "url": "/:teamspace/:model/permissions", + "title": "Update model permissions", + "name": "updatePermissions", + "group": "Model", + "deprecated": { + "content": "use now (#Model:updateModelPermissions)" + }, + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id of the model to be updated
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "[]Permissions", + "optional": false, + "field": "BODY", + "description": "Its an array with a list of users and their permission type.
" + } + ], + "Request body: Permission": [ + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "user", + "description": "User ID
" + }, + { + "group": "Request body: Permission", + "type": "string", + "optional": false, + "field": "permission", + "description": "Permission type ('viewer'|'commenter'|'collaborator'|'').
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/permissions HTTP/1.1\n[\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n }\n]", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n _id: \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n timestamp: \"2019-05-02T16:17:14.000Z\",\n type: \"Architectural\",\n desc: \"\",\n name: \"pipes\",\n subModels: [],\n surveyPoints: [\n {\n position: [\n 0,\n 0,\n 0\n ],\n latLong: [\n 0,\n 0\n ]\n }\n ],\n properties: {\n unit: \"mm\"\n },\n permissions: [\n {\n user: \"viewerTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permission: \"viewer\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permission: \"collaborator\"\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permission: \"commenter\"\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permission: \"collaborator\"\n }\n ],\n status: \"ok\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "put", + "url": "/:teamspace/:model/settings/", + "title": "Update Model Settings", + "name": "updateSettings", + "group": "Model", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model to update Settings.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of the model to be created
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "unit", + "description": "The unit in which the model is specified
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "code", + "description": "A code to be associated with the model; it can be of maximum 5 letters (a-z) and numbers
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "type", + "description": "The type of the model
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "angleFromNorth", + "description": "GIS bearing angle
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "elevation", + "description": "GIS elevation
" + }, + { + "group": "Request body", + "type": "[]SurveyPoint", + "optional": false, + "field": "surveyPoints", + "description": "an array containing GIS surveypoints
" + } + ], + "Request body: SurveyPoint": [ + { + "group": "Request body: SurveyPoint", + "type": "Number[]", + "optional": false, + "field": "position", + "description": "an array representing a three dimensional coordinate
" + }, + { + "group": "Request body: SurveyPoint", + "type": "Number[]", + "optional": false, + "field": "latLong", + "description": "an array representing a two dimensional coordinate for latitude and logitude
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /teamSpace1/3549ddf6-885d-4977-87f1-eeac43a0e818/settings HTTP/1.1\n{\n name: \"Medieval\",\n unit: \"cm\",\n code: \"1233\",\n type: \"Architectural\",\n angleFromNorth: 3,\n elevation: 0,\n surveyPoints: [\n {\n position: [\n 4,\n -7,\n -1\n ],\n latLong: [\n 1,\n 2,\n ]\n }\n ]\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n code: \"stage\",\n unit: \"cm\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "patch", + "url": "/:teamspace/:model/upload/ms-chunking/:corID", + "title": "Upload model chunk", + "name": "uploadChunk", + "group": "Model", + "description": "Upload model chunk for Microsoft Logic Apps.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID to upload
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "corID", + "description": "Upload correlation ID
" + } + ], + "Request header": [ + { + "group": "Request header", + "type": "String", + "optional": false, + "field": "Content-Range", + "description": "Byte range for the current content chunk, including the starting value, ending value, and the total content size, for example: "bytes 0-1023/10100"
" + }, + { + "group": "Request header", + "type": "String", + "optional": false, + "field": "Content-Type", + "description": "Type of chunked content
" + }, + { + "group": "Request header", + "type": "String", + "optional": false, + "field": "Content-Length", + "description": "Length of size in bytes of the current chunk
" + } + ], + "Request body: Attachment": [ + { + "group": "Request body: Attachment", + "type": "binary", + "optional": false, + "field": "FILE", + "description": "the file to be uploaded
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "String", + "optional": false, + "field": "Range", + "description": "Byte range for content that has been received by the endpoint, for example: "bytes=0-1023"
" + }, + { + "group": "200", + "type": "Number", + "optional": true, + "field": "x-ms-chunk-size", + "description": "Suggested chunk size in bytes
" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n{\n\t\"Range\": \"bytes=0-1023\",\n\t\"x-ms-chunk-size\": 1024\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "PATCH /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/upload/ms-chunking/00000000-0000-1111-2222-333333333333 HTTP/1.1\n\nheader: {\n\t\"Content-Range\": \"bytes 0-1023/10100\",\n\t\"Content-Type\": \"application/octet-stream\",\n\t\"Content-Length\": \"bytes=1024\"\n}\n\nbody: {\n\t\"file\":Start chunked model upload for Microsoft Logic Apps. Max chunk size defined as 52,428,800 bytes (52 MB) based on https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-limits-and-config?tabs=azure-portal
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID to upload
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "corID", + "description": "Upload correlation ID
" + } + ], + "Request header": [ + { + "group": "Request header", + "type": "String", + "optional": false, + "field": "x-ms-transfer-mode", + "description": "Indicates that the content is uploaded in chunks; value="chunked"
" + }, + { + "group": "Request header", + "type": "Number", + "optional": false, + "field": "x-ms-content-length", + "description": "The entire content size in bytes before chunking
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Number", + "optional": true, + "field": "x-ms-chunk-size", + "description": "Suggested chunk size in bytes
" + }, + { + "group": "200", + "type": "String", + "optional": false, + "field": "Location", + "description": "The URL location where to send the HTTP PATCH messages
" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n{\n\t\"x-ms-chunk-size\": 1024,\n\t\"Location\": \"/teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/upload/ms-chunking/00000000-0000-1111-2222-333333333333\"\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/upload/ms-chunking/00000000-0000-1111-2222-333333333333 HTTP/1.1\n\nheader: {\n\t\"x-ms-transfer-mode\": \"chunked\",\n\t\"x-ms-content-length\": 10100\n}", + "type": "post" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/model.js", + "groupTitle": "Model" + }, + { + "type": "post", + "url": "/:teamspace/:model/upload", + "title": "Upload Model.", + "name": "uploadModel", + "group": "Model", + "description": "It uploads a model file and creates a new revision for that model.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model id to upload.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "tag", + "description": "the tag name for the new revision
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "desc", + "description": "the description for the new revision
" + }, + { + "group": "Request body", + "type": "Boolean", + "optional": true, + "field": "importAnimations", + "description": "whether to import animations within a sequence
" + } + ], + "Request body: Attachment": [ + { + "group": "Request body: Attachment", + "type": "binary", + "optional": false, + "field": "FILE", + "description": "the file to be uploaded
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/b1fceab8-b0e9-4e45-850b-b9888efd6521/upload HTTP/1.1\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundarySos0xligf1T8Sy8I\n\n------WebKitFormBoundarySos0xligf1T8Sy8I\nContent-Disposition: form-data; name=\"file\"; filename=\"3DrepoBIM.obj\"\nContent-Type: application/octet-stream\n\nUnique Notification ID
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/notification.js", + "groupTitle": "Notification" + }, + { + "type": "get", + "url": "/notifications/:id", + "title": "Get a notification", + "name": "getNotification", + "group": "Notification", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "id", + "description": "Unique Notification ID
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/notification.js", + "groupTitle": "Notification" + }, + { + "type": "get", + "url": "/notifications", + "title": "Get all notifications", + "name": "getNotifications", + "group": "Notification", + "version": "0.0.0", + "filename": "src/v4/routes/notification.js", + "groupTitle": "Notification" + }, + { + "type": "patch", + "url": "/notifications/:id", + "title": "Patch a notification", + "name": "patchNotification", + "group": "Notification", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "id", + "description": "Unique Notification ID
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/notification.js", + "groupTitle": "Notification" + }, + { + "type": "patch", + "url": "/notifications", + "title": "Patch all the user notifications", + "name": "patchNotification", + "group": "Notification", + "version": "0.0.0", + "filename": "src/v4/routes/notification.js", + "groupTitle": "Notification" + }, + { + "type": "get", + "url": "/:teamspace/:model/permission-templates", + "title": "List all model templates", + "name": "listModelTemplates", + "group": "PermissionTemplate", + "description": "Get a list of model permission templates. Intended for users that have manage_model_permission
privileges.
Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/permission-templates HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/permissionTemplate.js", + "groupTitle": "Permission Template", + "groupDescription": "Permission template is a grouping of model level permissions. An ID is assigned to it as well. They are viewer, commenter, and collaborator.
Three default permission templates are created by default. They are viewer, commenter, and collaborator.
", + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"Template1\",\n\t\t\"permissions\":[\n\t\t\t\"view_model\"\n\t\t]\n\t},\n\t{\n\t\t\"_id\":\"Template2\",\n\t\t\"permissions\":[\n\t\t\t\"view_model\",\n\t\t\t\"view_issue\"\n\t\t]\n\t}\n]", + "type": "json" + } + ] + } + }, + { + "type": "get", + "url": "/:teamspace/permission-templates", + "title": "Get all templates", + "name": "listTemplates", + "group": "PermissionTemplate", + "description": "Get a list of teamspace permission templates.
", + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/permission-templates HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/permissionTemplate.js", + "groupTitle": "Permission Template", + "groupDescription": "Permission template is a grouping of model level permissions. An ID is assigned to it as well. They are viewer, commenter, and collaborator.
Three default permission templates are created by default. They are viewer, commenter, and collaborator.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"Template1\",\n\t\t\"permissions\":[\n\t\t\t\"view_model\"\n\t\t]\n\t},\n\t{\n\t\t\"_id\":\"Template2\",\n\t\t\"permissions\":[\n\t\t\t\"view_model\",\n\t\t\t\"view_issue\"\n\t\t]\n\t}\n]", + "type": "json" + } + ] + } + }, + { + "type": "get", + "url": "/plans", + "title": "List all Plans", + "name": "listPlans", + "group": "Plan", + "version": "0.0.0", + "filename": "src/v4/routes/plan.js", + "groupTitle": "Plan" + }, + { + "type": "put", + "url": "/:teamspace/:model/presentation/:code/start", + "title": "Starts a presentation session and returns the presentation code", + "name": "startPresentation", + "group": "Presentation", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "The teamspace where the presentation is taking place
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model where the presentation is taking place
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/presentation/start HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{ code: \"aASnk\" }", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/presentation.js", + "groupTitle": "Presentation" + }, + { + "type": "put", + "url": "/:teamspace/:model/presentation/:code/start", + "title": "Starts a presentation session and returns the presentation code", + "name": "startPresentation", + "group": "Presentation", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "The teamspace where the presentation is taking place
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model where the presentation is taking place
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "code", + "description": "The code that users need to join in order to get the viewpoint.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/5ce7dd19-1252-4548-a9c9-4a5414f2e0c5/presentation/start HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{ code: \"aASnk\" }", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/presentation.js", + "groupTitle": "Presentation" + }, + { + "type": "put", + "url": "/:teamspace/:model/presentation/:code/stream", + "title": "Streams a viewpoint", + "name": "streamPresentation", + "group": "Presentation", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "The teamspace where the presentation is taking place
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "The model where the presentation is taking place
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "code", + "description": "The code that users need to join in order to get the viewpoint.
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "StreamingViewpoint", + "optional": false, + "field": "The", + "description": "viewpoint
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/presentation.js", + "groupTitle": "Presentation" + }, + { + "type": "post", + "url": "/:teamspace/projects", + "title": "Create project", + "name": "createProject", + "group": "Project", + "description": "It creates a project. The name of the project is required.
", + "permission": [ + { + "name": "canCreateProject" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "The name of the project to be created
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/projects HTTP/1.1\n{name: \"Classic project\"}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "{\n name: \"Classic project\",\n _id: \"5d5bec491c15383184eb7521\",\n permissions: [\n \"create_model\",\n \"create_federation\",\n \"admin_project\",\n \"edit_project\",\n \"delete_project\",\n \"upload_files_all_models\",\n \"edit_federation_all_models\",\n \"create_issue_all_models\",\n \"comment_issue_all_models\",\n \"view_issue_all_models\",\n \"view_model_all_models\",\n \"download_model_all_models\",\n \"change_model_settings_all_models\"\n ],\n models: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "delete", + "url": "/:teamspace/projects/:project", + "title": "Delete project", + "name": "deleteProject", + "group": "Project", + "description": "Deletes a project, including all the models and federations inside of it.
", + "permission": [ + { + "name": "canDeleteProject" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "project", + "description": "Project to delete
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /teamSpace1/projects/Classic%20project%20renamed HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n _id: \"5d5bec491c15383184eb7521\",\n name: \"Classic project renamed\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n }\n ],\n models: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "get", + "url": "/:teamspace/projects/:project/models", + "title": "List models of the project", + "name": "listModels", + "group": "Project", + "description": "It returns a list of models .
", + "permission": [ + { + "name": "canListProjects" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "project", + "description": "The name of the project to list models
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": true, + "field": "name", + "description": "Filters models by name
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/projects/Bim%20Logo/models?name=log HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n \"_id\": \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n \"federate\": true,\n \"desc\": \"\",\n \"name\": \"Full Logo\",\n \"__v\": 17,\n \"timestamp\": \"2019-05-02T16:17:37.902Z\",\n \"type\": \"Federation\",\n \"subModels\": [\n {\n \"database\": \"teamSpace1\",\n \"model\": \"b1fceab8-b0e9-4e45-850b-b9888efd6521\",\n \"name\": \"block\"\n },\n {\n \"database\": \"teamSpace1\",\n \"model\": \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\",\n \"name\": \"letters\"\n },\n {\n \"database\": \"teamSpace1\",\n \"model\": \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n \"name\": \"pipes\"\n }\n ],\n \"surveyPoints\": [\n {\n \"position\": [\n 0,\n 0,\n 0\n ],\n \"latLong\": [\n -34.459127,\n 0\n ]\n }\n ],\n \"properties\": {\n \"unit\": \"mm\",\n \"topicTypes\": [\n {\n \"label\": \"Clash\",\n \"value\": \"clash\"\n },\n {\n \"label\": \"Diff\",\n \"value\": \"diff\"\n },\n {\n \"label\": \"RFI\",\n \"value\": \"rfi\"\n },\n {\n \"label\": \"Risk\",\n \"value\": \"risk\"\n },\n {\n \"label\": \"H&S\",\n \"value\": \"hs\"\n },\n {\n \"label\": \"Design\",\n \"value\": \"design\"\n },\n {\n \"label\": \"Constructibility\",\n \"value\": \"constructibility\"\n },\n {\n \"label\": \"GIS\",\n \"value\": \"gis\"\n },\n {\n \"label\": \"For information\",\n \"value\": \"for_information\"\n },\n {\n \"label\": \"VR\",\n \"value\": \"vr\"\n }\n ]\n },\n \"permissions\": [\n \"change_model_settings\",\n \"upload_files\",\n \"create_issue\",\n \"comment_issue\",\n \"view_issue\",\n \"view_model\",\n \"download_model\",\n \"edit_federation\",\n \"delete_federation\",\n \"delete_model\",\n \"manage_model_permission\"\n ],\n \"status\": \"ok\",\n \"id\": \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n \"model\": \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\",\n \"account\": \"teamSpace1\",\n \"headRevisions\": {\n }\n }\n]\t *", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "get", + "url": "/:teamspace/projects/:project", + "title": "Get project", + "name": "listProject", + "group": "Project", + "description": "Get the details of a project; name, user permissions, modelids.
", + "permission": [ + { + "name": "canViewProject" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "project", + "description": "Project name to be queried
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/projects/Classic%20project%20renamed HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "{\n _id: \"5d5bec491c15383184eb7521\",\n name: \"Classic project renamed\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n },\n {\n user: \"viewerTeamspace1Model1JobA\",\n permissions: []\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permissions: []\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permissions: []\n }\n ],\n models: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "get", + "url": "/:teamspace/projects", + "title": "List projects", + "name": "listProjects", + "group": "Project", + "description": "It returns a list of projects with their permissions and model ids.
", + "permission": [ + { + "name": "canListProjects" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/projects HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success:", + "content": "[\n {\n _id: \"5ccb1490b4626d30c05c9401\",\n name: \"Medieval\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: []\n },\n {\n user: \"fed\",\n permissions: []\n },\n {\n user: \"teamSpace1\",\n permissions: []\n },\n {\n user: \"weirdTeamspace\",\n permissions: []\n }\n ],\n models: [\n \"50926a1f-1525-44ac-b6a1-d016949a13bb\"\n ]\n },\n {\n _id: \"5ccb1702b4626d30c05c9830\",\n name: \"Bim Logo\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: []\n },\n {\n user: \"commenterTeamspace1Model1JobA\",\n permissions: []\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permissions: []\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permissions: []\n },\n {\n user: \"collaboratorTeamspace1Model1JobB\",\n permissions: []\n },\n {\n user: \"adminTeamspace1JobA\",\n permissions: []\n },\n {\n user: \"adminTeamspace1JobB\",\n permissions: []\n },\n {\n user: \"weirdTeamspace\",\n permissions: []\n }\n ],\n models: [\n \"2710bd65-37d3-4e7f-b2e0-ffe743ce943f\",\n \"b1fceab8-b0e9-4e45-850b-b9888efd6521\",\n \"7cf61b4f-acdf-4295-b2d0-9b45f9f27418\",\n \"5ce7dd19-1252-4548-a9c9-4a5414f2e0c5\"\n ]\n },\n {\n _id: \"5d5bec491c15383184eb7521\",\n name: \"Classic project renamed\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n },\n {\n user: \"viewerTeamspace1Model1JobA\",\n permissions: []\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permissions: []\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permissions: []\n }\n ],\n models: []\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "patch", + "url": "/:teamspace/projects/:project", + "title": "Update project", + "name": "updateProject", + "group": "Project", + "description": "Update project properties (name, permissions)
", + "permission": [ + { + "name": "canUpdateProject" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "project", + "description": "Name of project
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "name", + "description": "Project name
" + }, + { + "group": "Request body", + "type": "ProjectPermission[]", + "optional": true, + "field": "permissions", + "description": "List of user permissions
" + } + ], + "Type: ProjectPermission": [ + { + "group": "Type: ProjectPermission", + "type": "String", + "optional": false, + "field": "user", + "description": "Username of user
" + }, + { + "group": "Type: ProjectPermission", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "List of user privileges
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage (update permissions):", + "content": "PATCH /acme/ProjectAnvil HTTP/1.1\n{\n permissions: [\n {\n user: \"alice\",\n permissions: [\n \"admin_project\"\n ]\n },\n {\n user: \"mike\",\n permissions: []\n }\n ]\n}", + "type": "patch" + }, + { + "title": "Example usage (rename project):", + "content": "PATCH /acme/ProjectAnvil HTTP/1.1\n{\n name: \"ProjectInstantTunnel\"\n}", + "type": "patch" + }, + { + "title": "Example usage:", + "content": "PATCH /acme/ProjectInstantTunnel HTTP/1.1\n{\n name: \"Project Trebuchet\",\n permissions: [\n {\n user: \"bob\",\n permissions: [\n \"admin_project\"\n ]\n }\n ]\n}", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response:", + "content": "{\n status: \"ok\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "put", + "url": "/:teamspace/projects/:project", + "title": "Update project", + "name": "updateProjectPut", + "group": "Project", + "description": "It updates a project. The name can be changed and the permissions as well as the permissions of users
", + "deprecated": { + "content": "use now (#Project:updateProject)" + }, + "permission": [ + { + "name": "canUpdateProject" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of the teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "project", + "description": "The name of the project to update
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "The name of the project to be created
" + }, + { + "group": "Request body", + "type": "[]Permission", + "optional": false, + "field": "permissions", + "description": "The permissions for each user from the project
" + } + ], + "Request body: Permissions": [ + { + "group": "Request body: Permissions", + "type": "String", + "optional": false, + "field": "user", + "description": "The username of the user to have it permission changed
" + }, + { + "group": "Request body: Permissions", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "An array of permissions for the user to be assigned
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage update permissions:", + "content": "PUT /teamSpace1/Classic%20project HTTP/1.1\n{\n name: \"Classic project\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n },\n {\n user: \"viewerTeamspace1Model1JobA\",\n permissions: []\n },\n {\n user: \"commenterTeamspace1Model1JobB\",\n permissions: []\n },\n {\n user: \"collaboratorTeamspace1Model1JobA\",\n permissions: []\n }\n ]\n}", + "type": "put" + }, + { + "title": "Example usage rename project:", + "content": "PUT /teamSpace1/Classic%20project HTTP/1.1\n{name: \"Classic project renamed\"}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success update permissions:", + "content": "{\n _id: \"5d5bec491c15383184eb7521\",\n name: \"Classic project\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n }\n ],\n models: []\n}", + "type": "json" + }, + { + "title": "Success rename project:", + "content": "{\n _id: \"5d5bec491c15383184eb7521\",\n name: \"Classic project renamed\",\n permissions: [\n {\n user: \"projectshared\",\n permissions: [\n \"admin_project\"\n ]\n }\n ],\n models: []\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/project.js", + "groupTitle": "Project" + }, + { + "type": "get", + "url": "/:teamspace/:model/resources/:resourceId", + "title": "Get resource file", + "name": "getResource", + "group": "Resources", + "description": "Is the URL for downloading the resource file identified by the resourceId.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "resourceId", + "description": "The Id of the resource
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/resources.js", + "groupTitle": "Resources" + }, + { + "type": "post", + "url": "/:teamspace/:model/risks/:riskId/resources", + "title": "Attach resources to a risk", + "name": "attachResourceRisk", + "group": "Risks", + "description": "Attaches file or URL resources to a risk. If the type of the resource is file it should be sent as multipart/form-data. Both types at the same time cannot be sent. So in order to attach files and URLs it should be done with two different requests.
This method triggers a chat event
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ], + "Request body file resource (multipart/form-data)": [ + { + "group": "Request body file resource (multipart/form-data)", + "type": "File[]", + "optional": false, + "field": "files", + "description": "The array of files to be attached
" + }, + { + "group": "Request body file resource (multipart/form-data)", + "type": "String[]", + "optional": false, + "field": "names", + "description": "The names of the files; it should have the same length as the files field and should include the file extension
" + } + ], + "Request body URL resource": [ + { + "group": "Request body URL resource", + "type": "String[]", + "optional": false, + "field": "urls", + "description": "The array of URLs to be attached
" + }, + { + "group": "Request body URL resource", + "type": "String[]", + "optional": false, + "field": "names", + "description": "The names of the URLs; it should have the same length as the URL field
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success example result after two files has been uploaded", + "content": "\n[\n {\n \"_id\":\"7617f775-9eb7-4877-8ec3-98ea3457e519\",\n \"size\":1422,\n \"riskIds\":[\n \"3e8a11e0-9812-11e9-9c4d-ebde5888e062\"\n ],\n \"name\":\"todo.txt\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996461\n },\n {\n \"_id\":\"e25e42d5-c4f0-4fbc-a8f4-bc9899e6662a\",\n \"size\":2509356,\n \"riskIds\":[\n \"3e8a11e0-9812-11e9-9c4d-ebde5888e062\"\n ],\n \"name\":\"football.gif\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996462\n }\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "post", + "url": "/:teamspace/:model/risks/:riskId/comments", + "title": "Add a comment", + "name": "commentRisk", + "group": "Risks", + "description": "Create a comment in a risk.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "_id", + "description": "Risk ID
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "rev_id", + "description": "Revision ID
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "comment", + "description": "Comment text
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint object
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + }, + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "String", + "optional": false, + "field": "guid", + "description": "Comment ID
" + }, + { + "group": "Success 200", + "type": "Number", + "optional": false, + "field": "created", + "description": "Comment creation timestamp
" + }, + { + "group": "Success 200", + "type": "String", + "optional": false, + "field": "owner", + "description": "Comment owner
" + }, + { + "group": "Success 200", + "type": "String", + "optional": false, + "field": "comment", + "description": "Comment text
" + }, + { + "group": "Success 200", + "type": "Object", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint object
" + } + ] + }, + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n{\n\t\"guid\":\"00000000-0000-0000-0000-000000000007\",\n\t\"created\":1567172228143,\n\t\"owner\":\"alice\",\n\t\"comment\":\"Comment 1\",\n\t\"viewpoint\":{\n\t\t\"right\":[0.5,-0.1,0.5],\n\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\"position\":[-50000.0,100000.0,150000.0],\n\t\t\"look_at\":[35000.0,50000.0,9000.0],\n\t\t\"view_dir\":[0.5,-0.5,-1.0],\n\t\t\"near\":500.0,\n\t\t\"far\":300000,\n\t\t\"fov\":1.05,\n\t\t\"aspect_ratio\":1.5,\n\t\t\"clippingPlanes\":[],\n\t\t\"screenshot\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000005/screenshot.png\",\n\t\t\"guid\":\"00000000-0000-0000-0000-000000000006\",\n\t\t\"screenshotSmall\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000005/screenshotSmall.png\"\n\t}\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/comments HTTP/1.1\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\"comment\":\"Comment 1\",\n\t\"viewpoint\":{\n\t\t\"right\":[0.5,-0.1,0.5],\n\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\"position\":[-50000.0,100000.0,150000.0],\n\t\t\"look_at\":[35000.0,50000.0,9000.0],\n\t\t\"view_dir\":[0.5,-0.5,-1.0],\n\t\t\"near\":500.0,\n\t\t\"far\":300000,\n\t\t\"fov\":1.05,\n\t\t\"aspect_ratio\":1.5,\n\t\t\"clippingPlanes\":[],\n\t\t\"highlighted_group_id\":\"\",\n\t\t\"screenshot\":Delete a risk comment.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "guid", + "description": "Comment ID
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/comments HTTP/1.1\n{\n\t\"guid\":\"00000000-0000-0000-0000-000000000007\",\n}", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n{\n\t\"guid\":\"00000000-0000-0000-0000-000000000007\",\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "delete", + "url": "/:teamspace/:model/risks/:riskId/resources", + "title": "Detach a resource from a risk", + "name": "detachResourceRisk", + "group": "Risks", + "description": "Detachs a resource from a risk. If the risk is the last entity the resources has been attached to it also deletes the resource from the system. This method triggers a chat event .
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "_id", + "description": "The resource id to be detached
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "{", + "content": "\n{\n \"_id\":\"e25e42d5-c4f0-4fbc-a8f4-bc9899e6662a\",\n \"size\":2509356,\n \"riskIds\":[\n ],\n \"name\":\"football.gif\",\n \"user\":\"teamSpace1\",\n \"createdAt\":1561973996462\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "get", + "url": "/:teamspace/mitigations/criteria", + "title": "Get mitigation criteria", + "name": "findMitigationCriteria", + "group": "Risks", + "description": "Returns all mitigations criteria from mitigation suggestions.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/mitigations/criteria HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n{\n\t\"associated_activity\":[\n\t\t\"All construction\",\n\t\t\"Site tests\",\n\t\t\"Logistics\"\n\t],\n\t\"category\":[\n\t\t\"safety_electricity\"\n\t],\n\t\"element\":[\n\t\t\"Doors\",\n\t\t\"Floors\",\n\t\t\"Pipes\",\n\t\t\"Vents\",\n\t\t\"Walls\"\n\t],\n\t\"location_desc\":[\n\t\t\"Tower 1 - Level 0\",\n\t\t\"Tower 1 - Level 1\",\n\t\t\"Tower 1 - Level 2\",\n\t\t\"Tower 2 - Level 0\",\n\t\t\"Tower 2 - Level 1\",\n\t\t\"Tower 3 - Level 0\",\n\t\t\"Tower 3 - Level 1\",\n\t\t\"Tower 3 - Level 2\"\n\t],\n\t\"mitigation_stage\":[\n\t\t\"Preliminary Design\",\n\t\t\"Detail Design\",\n\t\t\"Preconstruction\",\n\t\t\"Site work and Change Control\"\n\t],\n\t\"mitigation_type\":[\n\t\t\"Eliminate\",\n\t\t\"Reduce\",\n\t\t\"Control\",\n\t\t\"Inform\"\n\t],\n\t\"risk_factor\":[\n\t\t\"Factor 2\",\n\t\t\"Factor 5\",\n\t\t\"Factor 8\"\n\t],\n\t\"scope\":[\n\t\t\"General concrete\",\n\t\t\"In situ concrete\"\n\t]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/mitigation.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "post", + "url": "/:teamspace/mitigations", + "title": "Find mitigation suggestions", + "name": "findMitigationSuggestions", + "group": "Risks", + "description": "Returns a list of suggestions for risk mitigation based on given criteria.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "associated_activity", + "description": "Risk associated activity
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "category", + "description": "Risk category
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "element", + "description": "Risk element type
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "location_desc", + "description": "Risk location description
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "risk_factor", + "description": "Risk factor
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "scope", + "description": "Risk construction scope
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/mitigations HTTP/1.1\n{\n\t\"associated_activity\":\"\",\n\t\"category\":\"safety_fall\",\n\t\"element\":\"Doors\",\n\t\"location_desc\":\"Tower 3 - Level 2\",\n\t\"risk_factor\":\"Factor 9\",\n\t\"scope\":\"Tower 3\"\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"mitigation_desc\":\"Replace all openings required in floor slabs with precast service openings.\",\n\t\t\"mitigation_detail\":\"Replace openings larger than a standard anvil required in floor slabs with precast service openings from A/W 2020 catalogue.\",\n\t\t\"mitigation_stage\":\"Preliminary Design\",\n\t\t\"mitigation_type\":\"Eliminate\"\n\t},\n\t{\n\t\t\"mitigation_desc\":\"Provide safe walking surface joint covers. Any covering should be: strong enough to support any loads likely to be placed on it ; and fixed in position to prevent accidental dislodgement.\",\n\t\t\"mitigation_detail\":\"Safe walking surface joint covers for all joins and gaps. Covers should be strong enough to support any loads likely to be placed on it and fixed in position with bolts to prevent accidental dislodgement.\",\n\t\t\"mitigation_stage\":\"Detail Design\",\n\t\t\"mitigation_type\":\"Reduce\"\n\t},\n\t{\n\t\t\"mitigation_desc\":\"Provide warning markings and/or colour change.\",\n\t\t\"mitigation_detail\":\"Provide warning markings from approved list of markings and/or colour change using chart from Document XYZ.\",\n\t\t\"mitigation_stage\":\"Preconstruction\",\n\t\t\"mitigation_type\":\"Control\"\n\t}\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/mitigation.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "get", + "url": "/:teamspace/:model/risks/:riskId", + "title": "Get a risk", + "name": "findRiskById", + "group": "Risks", + "description": "Retrieve a risk. The response includes all comments and screenshot URLs.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "Object", + "optional": false, + "field": "risk", + "description": "The Issue matching the Issue ID
" + } + ] + }, + "examples": [ + { + "title": "Success-Response.", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\"account\":\"acme\",\n\t\"assigned_roles\":[\n\t\t\"Job1\"\n\t],\n\t\"associated_activity\":\"Column casting\",\n\t\"category\":\"safety_fall\",\n\t\"comments\":[],\n\t\"consequence\":0,\n\t\"created\":1567156228976,\n\t\"creator_role\":\"Job4\",\n\t\"desc\":\"Risk description that describes the risk\",\n\t\"element\":\"Doors\",\n\t\"level_of_risk\":0,\n\t\"likelihood\":0,\n\t\"location_desc\":\"Tower 3 - Level 2\",\n\t\"mitigation_desc\":\"Erect temporary barrier\",\n\t\"mitigation_detail\":\"Erect a temporary 1.5m metal barrier along edge\",\n\t\"mitigation_stage\":\"Construction stage 5\",\n\t\"mitigation_status\":\"proposed\",\n\t\"mitigation_type\":\"Eliminate\",\n\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\"name\":\"Risk 1\",\n\t\"overall_level_of_risk\":0,\n\t\"owner\":\"alice\",\n\t\"position\":[55000.0,80000.0,-10000.0],\n\t\"residual_consequence\":-1,\n\t\"residual_level_of_risk\":-1,\n\t\"residual_likelihood\":-1,\n\t\"residual_risk\":\"\",\n\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\"risk_factor\":\"Factor 9\",\n\t\"safetibase_id\":\"\",\n\t\"scope\":\"Tower 3\",\n\t\"thumbnail\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/thumbnail.png\",\n\t\"viewpoint\":{\n\t\t\"aspect_ratio\":1.4,\n\t\t\"clippingPlanes\":[],\n\t\t\"far\":300000,\n\t\t\"fov\":1.05,\n\t\t\"guid\":\"00000000-0000-0000-0000-000000000004\",\n\t\t\"hideIfc\":true,\n\t\t\"look_at\":[35000.0,40000.0,8000.0],\n\t\t\"near\":600.0,\n\t\t\"position\":[-70000.0,120000.0,150000.0],\n\t\t\"right\":[0.8,-0.3,0.6],\n\t\t\"screenshot\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshot.png\",\n\t\t\"screenshotSmall\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshotSmall.png\",\n\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\"view_dir\":[0.5,-0.4,-0.7]\n\t}\n}", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/risks/:riskId/screenshot.png", + "title": "Get risk screenshot", + "name": "getScreenshot", + "group": "Risks", + "description": "Retrieve a risk screenshot image.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Screenshot image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nName of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/risks/:riskId/screenshotSmall.png", + "title": "Get low-res screenshot", + "name": "getScreenshotSmall", + "group": "Risks", + "description": "Retrieve a low-resolution risk screenshot image.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Small screenshot image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nName of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/risks/:riskId/thumbnail.png", + "title": "Get risk thumbnail", + "name": "getThumbnail", + "group": "Risks", + "description": "Retrieve a risk thumbnail image.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "png", + "optional": false, + "field": "image", + "description": "Thumbnail image
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nName of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model[/revision/:revId]/risks", + "title": "List all risks", + "name": "listRisks", + "group": "Risks", + "description": "Retrieve all model risks.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "Number", + "optional": true, + "field": "updatedSince", + "description": "Only return issues that has been updated since this value (in epoch value)
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "numbers", + "description": "Array of issue numbers to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "ids", + "description": "Array of issue ids to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "categories", + "description": "Array of categories to filter for
" + }, + { + "group": "Query", + "type": "String[]", + "optional": true, + "field": "mitigationStatus", + "description": "Array of mitigation status to filter for
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "likelihoods", + "description": "Array of likelihoods to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "consequences", + "description": "Array of consequences to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "residualLikelihoods", + "description": "Array of residual likelihoods to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "levelOfRisks", + "description": "Array of levels of risks to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "residualConsequences", + "description": "Array of residual consequences to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + }, + { + "group": "Query", + "type": "Number[]", + "optional": true, + "field": "residualLevelOfRisks", + "description": "Array of levels of risks to filter for. The possible number values for this fields are UNSET: -1, VERY_LOW: 0, LOW: 1, MODERATE: 2, HIGH: 3, VERY_HIGH: 4 .
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "risks", + "description": "Risk objects
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\t\"account\":\"acme\",\n\t\t\"assigned_roles\":[\n\t\t\t\"Job1\"\n\t\t],\n\t\t\"associated_activity\":\"Column casting\",\n\t\t\"category\":\"safety_fall\",\n\t\t\"comments\":[],\n\t\t\"consequence\":0,\n\t\t\"created\":1567156228976,\n\t\t\"creator_role\":\"Job4\",\n\t\t\"desc\":\"Risk description that describes the risk\",\n\t\t\"element\":\"Doors\",\n\t\t\"level_of_risk\":0,\n\t\t\"likelihood\":0,\n\t\t\"location_desc\":\"Tower 3 - Level 2\",\n\t\t\"mitigation_desc\":\"Erect temporary barrier\",\n\t\t\"mitigation_detail\":\"Erect a temporary 1.5m metal barrier along edge\",\n\t\t\"mitigation_stage\":\"Construction stage 5\",\n\t\t\"mitigation_status\":\"proposed\",\n\t\t\"mitigation_type\":\"Eliminate\",\n\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\"name\":\"Risk 1\",\n\t\t\"overall_level_of_risk\":0,\n\t\t\"owner\":\"alice\",\n\t\t\"position\":[55000.0,80000.0,-10000.0],\n\t\t\"residual_consequence\":-1,\n\t\t\"residual_level_of_risk\":-1,\n\t\t\"residual_likelihood\":-1,\n\t\t\"residual_risk\":\"\",\n\t\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\t\"risk_factor\":\"Factor 9\",\n\t\t\"safetibase_id\":\"\",\n\t\t\"scope\":\"Tower 3\",\n\t\t\"thumbnail\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/thumbnail.png\",\n\t\t\"viewpoint\":{\n\t\t\t\"aspect_ratio\":1.4,\n\t\t\t\"clippingPlanes\":[],\n\t\t\t\"far\":300000,\n\t\t\t\"fov\":1.05,\n\t\t\t\"guid\":\"00000000-0000-0000-0000-000000000004\",\n\t\t\t\"hideIfc\":true,\n\t\t\t\"look_at\":[35000.0,40000.0,8000.0],\n\t\t\t\"near\":600.0,\n\t\t\t\"position\":[-70000.0,120000.0,150000.0],\n\t\t\t\"right\":[0.8,-0.3,0.6],\n\t\t\t\"screenshot\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshot.png\",\n\t\t\t\"screenshotSmall\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshotSmall.png\",\n\t\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\t\"view_dir\":[0.5,-0.4,-0.7]\n\t\t}\n\t}\n]", + "type": "json" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/risks HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/risks HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "get", + "url": "/:teamspace/:model[/revision/:revId]/risks.html", + "title": "Render risks as HTML", + "name": "renderRisksHTML", + "group": "Risks", + "description": "Retrieve HTML page of all risks.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Query": [ + { + "group": "Query", + "type": "String", + "optional": false, + "field": "ids", + "description": "Risk IDs to show
" + } + ] + } + }, + "success": { + "fields": { + "200": [ + { + "group": "200", + "type": "Object[]", + "optional": false, + "field": "risks", + "description": "Risk objects
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n", + "type": "html" + } + ] + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/risks.html?[query] HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/risks.html?[query] HTTP/1.1", + "type": "get" + } + ], + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "post", + "url": "/:teamspace/:model[/revision/:revId]/risks", + "title": "Create a risk", + "name": "storeRisk", + "group": "Risks", + "description": "Create a model risk.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Risk name
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "assigned_roles", + "description": "Risk owner
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "associated_activity", + "description": "Associated activity
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "category", + "description": "Category
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "consequence", + "description": "Risk consequence (0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "desc", + "description": "Risk description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "element", + "description": "Element type
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "likelihood", + "description": "Risk likelihood (0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "location_desc", + "description": "Location description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_status", + "description": "Treatment status
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_desc", + "description": "Treatment summary
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_detail", + "description": "Treatment detailed description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_stage", + "description": "Treatment stage
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_type", + "description": "Treatment type
" + }, + { + "group": "Request body", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Risk pin coordinates
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "residual_consequence", + "description": "Treated risk consequence (-1: unset, 0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "residual_likelihood", + "description": "Treated risk likelihood (-1: unset, 0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "residual_risk", + "description": "Residual risk
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "risk_factor", + "description": "Risk factor
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "scope", + "description": "Construction scope
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint
" + } + ], + "Type: Viewpoint": [ + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "Right vector of viewpoint indicating the direction of right in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "Up vector of viewpoint indicating the direction of up in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Position vector indicates where in the world the viewpoint is positioned
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "Vector indicating where in the world the viewpoint is looking at
" + }, + { + "group": "Type: Viewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "Vector indicating the direction the viewpoint is looking at in relative coordinates
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "Vector indicating the near plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "Vector indicating the far plane
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "Angle of the field of view
" + }, + { + "group": "Type: Viewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "Aspect ratio of the fustrum
" + }, + { + "group": "Type: Viewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "Clipping planes associated with the viewpoint
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group ID generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "highlighted_group", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group definition for those objects (this shouldnt be use simultaneously with highlighted_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "hidden_group", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects (this shouldnt be use simultaneously with hidden_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group", + "optional": true, + "field": "shown_group", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the definition of the group to hold those objects (this shouldnt be use simultaneously with shown_group_id)
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "override_groups", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups with one group for each colour
" + }, + { + "group": "Type: Viewpoint", + "type": "Group[]", + "optional": true, + "field": "transformation_groups", + "description": "List of groups with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: Viewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: Viewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "Base64 string representing the screenshot associated with the viewpoint
" + } + ], + "Type: Group": [ + { + "group": "Type: Group", + "type": "Number[3]", + "optional": false, + "field": "color", + "description": "RGB colour values
" + }, + { + "group": "Type: Group", + "type": "ModelObjects", + "optional": false, + "field": "objects", + "description": "List of objects in group
" + } + ], + "Type: ModelObjects": [ + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "account", + "description": "The account that has the model which contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String", + "optional": false, + "field": "model", + "description": "The model id that contains the objects
" + }, + { + "group": "Type: ModelObjects", + "type": "String[]", + "optional": false, + "field": "shared_ids", + "description": "The shared ids of objects to be selected
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/risks HTTP/1.1\n{\n\t\"assigned_roles\":[\n\t\t\"Job1\"\n\t],\n\t\"associated_activity\":\"\",\n\t\"category\":\"safety_fall\",\n\t\"comments\":[],\n\t\"consequence\":0,\n\t\"creator_role\":\"Job4\",\n\t\"desc\":\"Risk description that describes the risk\",\n\t\"element\":\"Doors\",\n\t\"level_of_risk\":0,\n\t\"likelihood\":0,\n\t\"location_desc\":\"Tower 3 - Level 2\",\n\t\"mitigation_desc\":\"Erect temporary barrier\",\n\t\"mitigation_detail\":\"Erect a temporary 1.5m metal barrier along edge\",\n\t\"mitigation_stage\":\"Construction stage 5\",\n\t\"mitigation_status\":\"proposed\",\n\t\"mitigation_type\":\"Eliminate\",\n\t\"name\":\"Risk 1\",\n\t\"overall_level_of_risk\":0,\n\t\"position\":[55000.0,80000.0,-10000.0],\n\t\"residual_consequence\":-1,\n\t\"residual_level_of_risk\":-1,\n\t\"residual_likelihood\":-1,\n\t\"residual_risk\":\"\",\n\t\"risk_factor\":\"Factor 9\",\n\t\"safetibase_id\":\"\",\n\t\"scope\":\"Tower 3\",\n\t\"viewpoint\":{\n\t\t\"aspect_ratio\":1.4,\n\t\t\"clippingPlanes\":[],\n\t\t\"far\":300000,\n\t\t\"fov\":1.05,\n\t\t\"hideIfc\":true,\n\t\t\"highlighted_group_id\":\"\",\n\t\t\"look_at\":[35000.0,40000.0,8000.0],\n\t\t\"near\":600.0,\n\t\t\"position\":[-70000.0,120000.0,150000.0],\n\t\t\"right\":[0.8,-0.3,0.6],\n\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\"view_dir\":[0.5,-0.4,-0.7],\n\t\t\"screenshot\":Update model risk.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": true, + "field": "revId", + "description": "Revision ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "riskId", + "description": "Risk ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Risk name
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "assigned_roles", + "description": "Risk owner
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "associated_activity", + "description": "Associated activity
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "category", + "description": "Category
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "consequence", + "description": "Risk consequence (0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "desc", + "description": "Risk description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "element", + "description": "Element type
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "likelihood", + "description": "Risk likelihood (0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "location_desc", + "description": "Location description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_status", + "description": "Treatment status
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_desc", + "description": "Treatment summary
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_detail", + "description": "Treatment detailed description
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_stage", + "description": "Treatment stage
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "mitigation_type", + "description": "Treatment type
" + }, + { + "group": "Request body", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "Risk pin coordinates
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "residual_consequence", + "description": "Treated risk consequence (-1: unset, 0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "Number", + "optional": false, + "field": "residual_likelihood", + "description": "Treated risk likelihood (-1: unset, 0: very low, 1: low, 2: moderate, 3: high, 4: very high)
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "residual_risk", + "description": "Residual risk
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "risk_factor", + "description": "Risk factor
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "scope", + "description": "Construction scope
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002 HTTP/1.1\n{\n\t\"residual_likelihood\":1\n}", + "type": "patch" + }, + { + "title": "Example usage:", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/revision/00000000-0000-0000-0000-000000000001/risks/00000000-0000-0000-0000-000000000002 HTTP/1.1\n{\n\t\"residual_likelihood\":1\n}", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\",\n\t\"account\":\"acme\",\n\t\"assigned_roles\":[\n\t\t\"Job1\"\n\t],\n\t\"associated_activity\":\"\",\n\t\"category\":\"safety_fall\",\n\t\"comments\":[],\n\t\"consequence\":0,\n\t\"created\":1567156228976,\n\t\"creator_role\":\"Job4\",\n\t\"desc\":\"Risk description that describes the risk\",\n\t\"element\":\"Doors\",\n\t\"level_of_risk\":0,\n\t\"likelihood\":0,\n\t\"location_desc\":\"Tower 3 - Level 2\",\n\t\"mitigation_desc\":\"Erect temporary barrier\",\n\t\"mitigation_detail\":\"Erect a temporary 1.5m metal barrier along edge\",\n\t\"mitigation_stage\":\"Construction stage 5\",\n\t\"mitigation_status\":\"proposed\",\n\t\"mitigation_type\":\"Eliminate\",\n\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\"name\":\"Risk 1\",\n\t\"owner\":\"alice\",\n\t\"overall_level_of_risk\":0,\n\t\"position\":[55000.0,80000.0,-10000.0],\n\t\"residual_consequence\":-1,\n\t\"residual_level_of_risk\":-1,\n\t\"residual_likelihood\":1,\n\t\"residual_risk\":\"\",\n\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\"risk_factor\":\"Factor 9\",\n\t\"safetibase_id\":\"\",\n\t\"scope\":\"Tower 3\",\n\t\"thumbnail\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/thumbnail.png\",\n\t\"viewpoint\":{\n\t\t\"aspect_ratio\":1.4,\n\t\t\"clippingPlanes\":[],\n\t\t\"far\":300000,\n\t\t\"fov\":1.05,\n\t\t\"guid\":\"00000000-0000-0000-0000-000000000004\",\n\t\t\"hideIfc\":true,\n\t\t\"look_at\":[35000.0,40000.0,8000.0],\n\t\t\"near\":600.0,\n\t\t\"position\":[-70000.0,120000.0,150000.0],\n\t\t\"right\":[0.8,-0.3,0.6],\n\t\t\"screenshot\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshot.png\",\n\t\t\"screenshotSmall\":\"acme/00000000-0000-0000-0000-000000000000/risks/00000000-0000-0000-0000-000000000002/viewpoints/00000000-0000-0000-0000-000000000003/screenshotSmall.png\",\n\t\t\"up\":[0.3,0.9,-0.3],\n\t\t\"view_dir\":[0.5,-0.4,-0.7]\n\t}\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/risk.js", + "groupTitle": "SafetiBase Risks" + }, + { + "type": "post", + "url": "/:teamspace/:model/sequences", + "title": "Create custom sequence", + "name": "createSequence", + "group": "Sequences", + "description": "Create custom sequence for model.
", + "examples": [ + { + "title": "Example usage", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/sequences HTTP/1.1\n{\n\t\"name\":\"Custom Sequence 1\",\n\t\"frames\":[\n\t\t{\n\t\t\t\"dateTime\":1244246400000,\n\t\t\t\"viewpoint\":{\n\t\t\t\t\"override_groups\":[\n\t\t\t\t\t{\n\t\t\t\t\t\t\"color\":[\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t255,\n\t\t\t\t\t\t\t0\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"rules\":[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"field\":\"IFC GUID\",\n\t\t\t\t\t\t\t\t\"operator\":\"IS\",\n\t\t\t\t\t\t\t\t\"values\":[\n\t\t\t\t\t\t\t\t\t\"0h79Q0rcfC1gOPK50yoFCv\",\n\t\t\t\t\t\t\t\t\t\"0K5o7g755EZw2RjNI7HcYK\",\n\t\t\t\t\t\t\t\t\t\"0yuGDtpaPCSBT7QB7wvN5I\",\n\t\t\t\t\t\t\t\t\t\"2HBVtaIWv07ud53r01WB6q\"\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"account\":\"acme\",\n\t\t\t\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t\"hidden_group\":{\n\t\t\t\t\t\"rules\":[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"field\":\"IFC GUID\",\n\t\t\t\t\t\t\t\"operator\":\"IS\",\n\t\t\t\t\t\t\t\"values\":[\n\t\t\t\t\t\t\t\t\"2S2omCydz5b9jSgrcLLblk\",\n\t\t\t\t\t\t\t\t\"0_U7q0Dzj6DfPp4VzMmTUt\",\n\t\t\t\t\t\t\t\t\"0iMv$JxRL67v6DoyA3RRwz\",\n\t\t\t\t\t\t\t\t\"1W4yiIKW92qAUdezi70DTY\",\n\t\t\t\t\t\t\t\t\"00ojKm$5f7luRCAjta0hsu\",\n\t\t\t\t\t\t\t\t\"0d2LnELub06glJ9mZh2up$\",\n\t\t\t\t\t\t\t\t\"37gui3POjDQgmIadjhr$ek\",\n\t\t\t\t\t\t\t\t\"3XAjSwznb6PfZG9t_wAFXi\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"account\":\"acme\",\n\t\t\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244246500000,\n\t\t\t\"viewpoint\":{\n\t\t\t\t\"up\":[0,1,0],\n\t\t\t\t\"position\":[38,38 ,125.080119148101],\n\t\t\t\t\"look_at\":[0,0,-163.080119148101],\n\t\t\t\t\"view_dir\":[0,0,-1],\n\t\t\t\t\"right\":[1,0,0],\n\t\t\t\t\"fov\":2.11248306530104,\n\t\t\t\t\"aspect_ratio\":0.875018933732738,\n\t\t\t\t\"far\":276.756120771945,\n\t\t\t\t\"near\":76.4241101223321\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244246700000,\n\t\t\t\"viewpoint\":{\n\t\t\t\t\"override_groups\":[\n\t\t\t\t\t{\n\t\t\t\t\t\t\"color\":[\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t255,\n\t\t\t\t\t\t\t0\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"rules\":[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"field\":\"IFC GUID\",\n\t\t\t\t\t\t\t\t\"operator\":\"IS\",\n\t\t\t\t\t\t\t\t\"values\":[\n\t\t\t\t\t\t\t\t\t\"00ojKm$5f7luRCAjta0hsu\"\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"account\":\"acme\",\n\t\t\t\t\t\t\"model\":\"00000000-0000-0000-0000-000000000000\"\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244419200000,\n\t\t\t\"viewId\":\"00000000-0000-0001-0001-000000000001\"\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244458200000,\n\t\t\t\"viewId\":\"00000000-0000-0001-0001-000000000002\"\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244484300000,\n\t\t\t\"viewpoint\": {}\n\t\t}\n\t]\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "post", + "url": "/:teamspace/:model/sequences/:sequenceId/activities", + "title": "Create one or more activities", + "name": "createSequenceActivities", + "group": "Sequences", + "description": "Creates a sequence activity tree.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "Activity[]", + "optional": false, + "field": "activity", + "description": "An array of the activity tree that will be created
" + }, + { + "group": "Request body", + "type": "Boolean", + "optional": true, + "field": "overwrite", + "description": "This flag indicates whether the request will replace the currently stored activities or just added at the end of the currently stored activities array. If not present it will be considered as false.
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Type: Activity": [ + { + "group": "Type: Activity", + "type": "String", + "optional": false, + "field": "name", + "description": "The name of the activity
" + }, + { + "group": "Type: Activity", + "type": "Number", + "optional": false, + "field": "startDate", + "description": "The starting timestamp date of the activity
" + }, + { + "group": "Type: Activity", + "type": "Number", + "optional": false, + "field": "endDate", + "description": "The ending timestamp date of the activity
" + }, + { + "group": "Type: Activity", + "type": "Object", + "optional": true, + "field": "resources", + "description": "The resources asoociated with the activity
" + }, + { + "group": "Type: Activity", + "type": "KeyValue[]", + "optional": true, + "field": "data", + "description": "An array of key value pairs with metadata for the activity
" + }, + { + "group": "Type: Activity", + "type": "Activity[]", + "optional": true, + "field": "subActivities", + "description": "An array of activities that will be children of the activity
" + } + ], + "Type: KeyValue": [ + { + "group": "Type: KeyValue", + "type": "String", + "optional": false, + "field": "key", + "description": "The key of the pair
" + }, + { + "group": "Type: KeyValue", + "type": "Any", + "optional": false, + "field": "value", + "description": "The value of the pair
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/activities HTTP/1.1\n{\n \"overwrite\": true,\n \"activities\": [\n {\n \"name\": \"Clinic Construction\",\n \"startDate\": 1603184400000,\n \"endDate\": 1613062800000,\n \"data\": [\n {\n \"key\": \"Color\",\n \"value\": \"green\"\n }\n ],\n \"subActivities\": [\n {\n \"name\": \"Site Work & Logistics\",\n \"startDate\": 1603184400000,\n \"endDate\": 1613062800000,\n \"data\": [\n {\n \"key\": \"Height\",\n \"value\": 12\n }\n ],\n \"subActivities\": [\n {\n \"name\": \"Site Office Installation\",\n \"startDate\": 1603184400000,\n \"endDate\": 1603213200000,\n \"data\": [\n {\n \"key\": \"Size\",\n \"value\": \"Big\"\n }\n ]\n },\n {\n \"name\": \"Excavation\",\n \"startDate\": 1603270800000,\n \"endDate\": 1603299600000\n }\n ]\n }\n ]\n }\n ]\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "delete", + "url": "/:teamspace/:model/sequences/:sequenceID/legend", + "title": "Delete legend", + "name": "deleteLegend", + "group": "Sequences", + "description": "Delete the legend associated to this sequence
", + "examples": [ + { + "title": "Example usage", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002/legend HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "delete", + "url": "/:teamspace/:model/sequences/:sequenceID", + "title": "Delete sequence", + "name": "deleteSequence", + "group": "Sequences", + "description": "Delete the custom sequence by ID
", + "examples": [ + { + "title": "Example usage", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "delete", + "url": "/:teamspace/:model/sequences/:sequenceId/activities/:activityId", + "title": "Edit an activity", + "name": "deleteSequenceActivity", + "group": "Sequences", + "description": "Delete a sequence activity.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "activityId", + "description": "The activity unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/activities/fe94be44-5cd8-4aaf-b020-afc1456680d3 HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "put", + "url": "/:teamspace/:model/sequences/:sequenceId/activities/:activityId", + "title": "Edit an activity", + "name": "editSequenceActivity", + "group": "Sequences", + "description": "Edits a sequence activity.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "activityId", + "description": "The activity unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "name", + "description": "The name of the activity
" + }, + { + "group": "Request body", + "type": "Number", + "optional": true, + "field": "startDate", + "description": "The starting timestamp date of the activity
" + }, + { + "group": "Request body", + "type": "Number", + "optional": true, + "field": "endDate", + "description": "The ending timestamp date of the activity
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "parent", + "description": "The parent id if it has one. This parent must exist previously
" + }, + { + "group": "Request body", + "type": "Object", + "optional": true, + "field": "resources", + "description": "The resources asoociated with the activity
" + }, + { + "group": "Request body", + "type": "KeyValue[]", + "optional": true, + "field": "data", + "description": "An array of key value pairs with metadata for the activity
" + } + ], + "Type: KeyValue": [ + { + "group": "Type: KeyValue", + "type": "String", + "optional": false, + "field": "key", + "description": "The key of the pair
" + }, + { + "group": "Type: KeyValue", + "type": "Any", + "optional": false, + "field": "value", + "description": "The value of the pair
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/activities/fe94be44-5cd8-4aaf-b020-afc1456680d3 HTTP/1.1\n{\n \"name\":\"Renamed activity\"\n}", + "type": "patch" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences/:sequenceID/legend", + "title": "get the legend", + "name": "getLegend", + "group": "Sequences", + "description": "Get the legend for this sequence
", + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002/legend HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t \"Building works\": \"#aabbcc\"\n\t \"Temporary works\": \"#ffffff66\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences/:sequenceID", + "title": "Get sequence", + "name": "getSequence", + "group": "Sequences", + "description": "Get sequence by ID
", + "examples": [ + { + "title": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"teamspace\":\"alice\",\n\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\"name\":\"Sequence 1\",\n\t\"frames\":[\n\t\t{\n\t\t\t\"dateTime\":1244246400000,\n\t\t\t\"state\":\"00000000-0000-0000-0001-000000000002\"\n\t\t},\n\t\t{\n\t\t\t\"dateTime\":1244419200000,\n\t\t\t\"state\":\"00000000-0000-0000-0002-000000000002\"\n\t\t}\n\t],\n\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences/:sequenceId/activities", + "title": "Get all activities", + "name": "getSequenceActivities", + "group": "Sequences", + "description": "Get all sequence activities.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/activities HTTP/1.1\n*", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"activities\":[\n\t\t{\n\t\t\t\"id\":\"00000000-0000-0001-0001-000000000001\",\n\t\t\t\"name\":\"Construction\",\n\t\t\t\"startDate\":1244246400000,\n\t\t\t\"endDate\":1244246450000,\n\t\t\t\"subActivities\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"00000000-0001-0001-0001-000000000001\",\n\t\t\t\t\t\"name\":\"Prepare site\",\n\t\t\t\t\t\"startDate\":1244246400000,\n\t\t\t\t\t\"endDate\":1244246430000,\n\t\t\t\t\t\"subActivities\":[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\":\"00000001-0001-0001-0001-000000000001\",\n\t\t\t\t\t\t\t\"name\":\"Erect site hoarding\",\n\t\t\t\t\t\t\t\"startDate\":1244246400000,\n\t\t\t\t\t\t\t\"endDate\":1244246410000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\":\"00000002-0001-0001-0001-000000000001\",\n\t\t\t\t\t\t\t\"name\":\"Clear existing structures\",\n\t\t\t\t\t\t\t\"startDate\":1244246410000,\n\t\t\t\t\t\t\t\"endDate\":1244246420000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\":\"00000003-0001-0001-0001-000000000001\",\n\t\t\t\t\t\t\t\"name\":\"Smooth work surfaces\",\n\t\t\t\t\t\t\t\"startDate\":1244246420000,\n\t\t\t\t\t\t\t\"endDate\":1244246430000\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"00000001-0002-0001-0001-000000000001\",\n\t\t\t\t\t\"name\":\"Construct tunnel\",\n\t\t\t\t\t\"startDate\":1244246430000,\n\t\t\t\t\t\"endDate\":1244246450000,\n\t\t\t\t\t\"subActivities\":[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\":\"00000001-0002-0001-0001-000000000001\",\n\t\t\t\t\t\t\t\"name\":\"Deploy instant tunnel\",\n\t\t\t\t\t\t\t\"startDate\":1244246430000,\n\t\t\t\t\t\t\t\"endDate\":1244246440000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\":\"00000002-0002-0001-0001-000000000001\",\n\t\t\t\t\t\t\t\"name\":\"Add road markings\",\n\t\t\t\t\t\t\t\"startDate\":1244246440000,\n\t\t\t\t\t\t\t\"endDate\":1244246450000\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences/:sequenceId/activities/:activityId", + "title": "Get activity", + "name": "getSequenceActivityDetail", + "group": "Sequences", + "description": "Get sequence activity details.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "activityId", + "description": "Activity ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/activities/00000000-0000-0002-0001-000000000001 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n \"id\":\"00000000-0000-0002-0001-000000000001\",\n \"name\":\"Construct tunnel\",\n \"sequenceId\": \"00000000-0000-0000-0001-000000000001\",\n \"parent\": \"00000130-2300-0002-0001-000567000001\"\n \"startDate\": 1610000000000,\n \"endDate\": 1615483938124,\n \"data\":[\n {\"key\":\"Name\",\"value\":\"Construction\"},\n {\"key\":\"Status\",\"value\":\"Planned\"},\n {\"key\":\"Is Compound Task\",\"value\":\"Yes\"},\n {\"key\":\"Code\",\"value\":\"ST00020\"},\n {\"key\":\"Planned Start\",\"value\":\"15 Apr 2020 10:00:00\"},\n {\"key\":\"Type\",\"value\":\"Work\"},\n {\"key\":\"Constraint\",\"value\":\"No Constraint\"},\n {\"key\":\"Planned Finish\",\"value\":\"11 Sep 2020 18:00:00\"},\n {\"key\":\"Percentage Complete\",\"value\":0},\n {\"key\":\"Physical Volume Unity\",\"value\":\"Unknown\"},\n {\"key\":\"Estimated Rate\",\"value\":0},\n {\"key\":\"Planned Physical Volume\",\"value\":6.6},\n {\"key\":\"Actual Physical Volume\",\"value\":0.9},\n {\"key\":\"Remaining Physical Volume\",\"value\":5.7},\n {\"key\":\"Budgeted Cost\",\"value\":30},\n {\"key\":\"Actual Cost\",\"value\":9999.99}\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences/:sequenceId/state/:stateId", + "title": "Get state", + "name": "getSequenceState", + "group": "Sequences", + "description": "Get state of model in sequence.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "sequenceId", + "description": "Sequence unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "stateId", + "description": "State unique ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0001-000000000001/state/00000000-0000-0000-0001-000000000002 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"transparency\":[\n\t\t{\n\t\t\t\"value\":1,\n\t\t\t\"shared_ids\":[\n\t\t\t\t11111111-1111-1111-1111-111111111111,\n\t\t\t\t22222222-2222-2222-2222-222222222222,\n\t\t\t\t33333333-3333-3333-3333-333333333333\n\t\t\t]\n\t\t}\n\t],\n\t\"color\":[\n\t\t{\n\t\t\t\"value\":[\n\t\t\t\t0,\n\t\t\t\t1,\n\t\t\t\t0\n\t\t\t],\n\t\t\t\"shared_ids\":[\n\t\t\t\t44444444-4444-4444-4444-444444444444,\n\t\t\t\t55555555-5555-5555-5555-555555555555,\n\t\t\t\t66666666-6666-6666-6666-666666666666\n\t\t\t]\n\t\t}\n\t],\n\t\"transform\":[\n\t\t{\n\t\t\t\"value\":[\n\t\t\t\t1, 0, 0, -0.0036411285400390625,\n\t\t\t\t0, 1, 0, 0.0012891292572021484,\n\t\t\t\t0, 0, 1, 0,\n\t\t\t\t0, 0, 0, 1\n\t\t\t],\n\t\t\t\"shared_ids\":[\n\t\t\t\t77777777-7777-7777-7777-777777777777,\n\t\t\t\t88888888-8888-8888-8888-888888888888,\n\t\t\t\t99999999-9999-9999-9999-999999999999\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"value\":[\n\t\t\t\t1, 0, 0, -0.0036411285400390625,\n\t\t\t\t0, 1, 0, 0.0012891292572021484,\n\t\t\t\t0, 0, 1, 0,\n\t\t\t\t0, 0, 0, 1\n\t\t\t],\n\t\t\t\"shared_ids\":[\n\t\t\t\t66666666-6666-6666-6666-666666666666\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"value\":[\n\t\t\t\t1, 0, 0, -0.0036411285400390625,\n\t\t\t\t0, 1, 0, 0.0012891292572021484,\n\t\t\t\t0, 0, 1, 0,\n\t\t\t\t0, 0, 0, 1\n\t\t\t],\n\t\t\t\"shared_ids\":[\n\t\t\t\t44444444-4444-4444-4444-444444444444,\n\t\t\t\taaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,\n\t\t\t\tbbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,\n\t\t\t\tcccccccc-cccc-cccc-cccc-cccccccccccc\n\t\t\t]\n\t\t}\n\t]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "get", + "url": "/:teamspace/:model/sequences", + "title": "List all sequences", + "name": "listSequences", + "group": "Sequences", + "description": "List all sequences associated with the model.
", + "parameter": { + "fields": { + "Query": [ + { + "group": "Query", + "type": "String", + "optional": true, + "field": "rev_id", + "description": "Revision unique ID
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences HTTP/1.1", + "type": "get" + }, + { + "title": "Example usage (with revision)", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/sequences?rev_id=00000000-0000-0000-0000-000000000001 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"teamspace\":\"alice\",\n\t\t\"model\":\"00000000-0000-0000-0000-000000000000\",\n\t\t\"rev_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\t\"name\":\"Sequence 1\",\n\t\t\"frames\":[\n\t\t\t{\n\t\t\t\t\"dateTime\":1244246400000,\n\t\t\t\t\"state\":\"00000000-0000-0000-0001-000000000002\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"dateTime\":1244419200000,\n\t\t\t\t\"state\":\"00000000-0000-0000-0002-000000000002\"\n\t\t\t}\n\t\t],\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000002\"\n\t}\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "put", + "url": "/:teamspace/:model/sequences/:sequenceID/legend", + "title": "Add/Update legend", + "name": "updateLegend", + "group": "Sequences", + "description": "Update/add a legend to this sequence
", + "examples": [ + { + "title": "Example usage", + "content": "PUT /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002/legend HTTP/1.1", + "type": "put" + }, + { + "title": "Example usage:", + "content": "{\n\t \"Building works\": \"#aabbcc\"\n\t \"Temporary works\": \"#ffffff66\"\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + } + }, + { + "type": "patch", + "url": "/:teamspace/:model/sequences/:sequenceID", + "title": "Update a sequence", + "name": "updateSequence", + "group": "Sequences", + "description": "Update a sequence (note: currently only name chance is supported
", + "examples": [ + { + "title": "Example usage", + "content": "PATCH /acme/00000000-0000-0000-0000-000000000000/sequences/00000000-0000-0000-0000-000000000002 HTTP/1.1", + "type": "patch" + }, + { + "title": "Example usage:", + "content": "{\n\t \"name\": \"Building works\"\n}", + "type": "patch" + } + ], + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "The new name of the sequence
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/sequence.js", + "groupTitle": "Sequences" + }, + { + "type": "get", + "url": "/:teamspace/subscriptions", + "title": "List subscriptions", + "name": "listSubscriptions", + "group": "Subscription", + "description": "List all subscriptions for current user if applicable.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/subscriptions HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n basic: {\n collaborators: 0,\n data: 200\n },\n discretionary: {\n collaborators: \"unlimited\",\n data: 10240,\n expiryDate: null\n }\n}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "401": [ + { + "group": "401", + "optional": false, + "field": "NOT_AUTHORIZED", + "description": "Not Authorized
" + } + ] + }, + "examples": [ + { + "title": "Error-Response", + "content": "HTTP/1.1 401 Not Authorized\n{\n\t\"message\":\"Not Authorized\",\n\t\"status\":401,\"code\":\n\t\"NOT_AUTHORIZED\",\n\t\"value\":9,\n\t\"place\":\"GET /teamSpace1/subscriptions\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/subscriptions.js", + "groupTitle": "Subscription" + }, + { + "type": "post", + "url": "/:teamspace/members", + "title": "Add a team member", + "name": "addTeamMember", + "group": "Teamspace", + "description": "Adds a user to a teamspace and assign it a job.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "job", + "description": "The job that the users going to have assigned
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "user", + "description": "The username of the user to become a member
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": false, + "field": "permissions", + "description": "The permisions to be assigned to the member it can be an empty array or have a "teamspace_admin" value.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /teamSpace1/members HTTP/1.1\n{\n job: \"jobA\",\n user: \"projectshared\",\n permissions: []\n}", + "type": "post" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "{\n job: \"jobA\",\n permissions: [],\n user: \"projectshared\",\n firstName: \"Drink\",\n lastName: \"Coffee\",\n company: null\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/members/search/:searchString", + "title": "Search for non-members", + "name": "findUsersWithoutMembership", + "group": "Teamspace", + "description": "It returns a list of users that dont belong to the teamspace and that their usernames matches partially with the string and if entered an email it only matches if the string is the entire email address.
In the result it's included their username, first name, last name, company and roles in other teamspaces.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "search", + "description": "Search string provided to find member
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/members/search/project HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n\n[\n {\n user: \"projectowner\",\n roles: [\n {\n role: \"team_member\",\n db: \"projectowner\"\n }\n ],\n firstName: \"Project\",\n lastName: \"Owner\",\n company: null\n },\n {\n user: \"projectshared\",\n roles: [\n {\n role: \"team_member\",\n db: \"projectshared\"\n }\n ],\n firstName: \"Drink\",\n lastName: \"Coffee\",\n company: null\n },\n {\n user: \"project_username\",\n roles: [\n {\n role: \"team_member\",\n db: \"project_username\"\n }\n ],\n firstName: \"George\",\n lastName: \"Crown\",\n company: null\n },\n]", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/addOns", + "title": "get enabled add ons", + "name": "getAddOns", + "group": "Teamspace", + "description": "view the list of addOns enabled on this teamspace
", + "permission": [ + { + "name": "teamspace member" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success", + "content": "{\n vrEnabled: true,\n hereEnabled: true\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/billingInfo", + "title": "Get billing info", + "name": "getBillingInfo", + "group": "Teamspace", + "description": "It returns the teamspace billing info.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/billingInfo HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n vat: \"GB 365684514\",\n line1: \"10 Downing Street\",\n postalCode: \"SW1A 2AA\",\n city: \"London\",\n company: \"Teamspace one\",\n countryCode: \"GB\",\n lastName: \"Voorhees\",\n firstName: \"Jason\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/members/:user", + "title": "Get member's info", + "name": "getMemberInfo", + "group": "Teamspace", + "description": "It returns the teamspace's member small info .
", + "permission": [ + { + "name": "teamSpaceMember" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "The username of the user you wish to query
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/members/viewerTeamspace1Model1JobB HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n user: \"viewerTeamspace1Model1JobB\",\n firstName: \"Alice\",\n lastName: \"Stratford\",\n company: \"Teamspace one\",\n job: {\"_id\": \"Job1\", color: \"#FFFFFF\"}\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/members", + "title": "Get members list", + "name": "getMemberList", + "group": "Teamspace", + "description": "It returns a list of members identifying which of them are teamspace administrators, and their jobs.
", + "permission": [ + { + "name": "teamSpaceMember" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/members HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n members: [\n {\n user: \"teamSpace1\",\n firstName: \"Teamspace\",\n lastName: \"One\",\n company: \"Teamspace one\",\n permissions: [\n \"teamspace_admin\"\n ],\n job: \"jobA\",\n isCurrentUser: true\n },\n {\n user: \"unassignedTeamspace1UserJobA\",\n firstName: \"John\",\n lastName: \"Williams\",\n company: \"Teamspace One\",\n permissions: [],\n job: \"jobA\",\n isCurrentUser: false\n },\n {\n user: \"viewerTeamspace1Model1JobB\",\n firstName: \"Alice\",\n lastName: \"Stratford\",\n company: \"Teamspace one\",\n permissions: [],\n job: \"jobB\",\n isCurrentUser: false\n }\n ]\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/settings/mitigations.csv", + "title": "Download mitigations file", + "name": "getMitigationsFile", + "group": "Teamspace", + "description": "Returns a CSV file containing all defined suggested risk mitigations.
", + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/settings/mitigations.csv HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nName of teamspace
" + } + ] + } + } + }, + { + "type": "get", + "url": "/:teamspace/quota", + "title": "Get Quota Information", + "name": "getQuotaInfo", + "group": "Teamspace", + "description": "It returns the quota information. Each teamspace has a space limit and a limit of collaborators. The values returned are space used (both these values are in bytes) and the collaborator limit. If spaceLimit or collaboratorLimit are nulled it means that there are no space limit/member limit.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "examples": [ + { + "title": "Example usage:", + "content": "GET /teamSpace1/quota HTTP/1.1", + "type": "get" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n spaceLimit: 1048576,\n\t collaboratorLimit: 12,\n spaceUsed: 2048\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "get", + "url": "/:teamspace/settings", + "title": "Get teamspace settings", + "name": "getTeamspaceSettings", + "group": "Teamspace", + "description": "Returns all teamspace settings.
", + "examples": [ + { + "title": "Example usage", + "content": "GET /acme/settings HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"riskCategories\":[\n\t\t\"Commercial Issue\",\n\t\t\"Environmental Issue\",\n\t\t\"Health - Material effect\",\n\t\t\"Health - Mechanical effect\",\n\t\t\"Safety Issue - Fall\",\n\t\t\"Safety Issue - Trapped\",\n\t\t\"Safety Issue - Event\",\n\t\t\"Safety Issue - Handling\",\n\t\t\"Safety Issue - Struck\",\n\t\t\"Safety Issue - Public\",\n\t\t\"Social Issue\",\n\t\t\"Other Issue\",\n\t\t\"UNKNOWN\"\n\t],\n\t\"topicTypes\":[\n\t\t\"For information\",\n\t\t\"VR\",\n\t\t\"Clash\",\n\t\t\"Diff\",\n\t\t\"RFI\",\n\t\t\"Risk\",\n\t\t\"H&S\",\n\t\t\"Design\",\n\t\t\"Constructibility\",\n\t\t\"GIS\"\n\t],\n\t\"mitigationsUpdatedAt\":1567156228976,\n\t\"_id\":\"acme\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + } + }, + { + "type": "delete", + "url": "/:teamspace/members/:user", + "title": "Remove from the teamspace", + "name": "removeTeamMember", + "group": "Teamspace", + "description": "Removes a user from the teampspace.
", + "permission": [ + { + "name": "teamSpaceAdmin" + } + ], + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "user", + "description": "Username of the member to remove
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /teamSpace1/members/viewerTeamspace1Model1JobB HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n user: \"viewerTeamspace1Model1JobB\",\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "patch", + "url": "/:teamspace/settings", + "title": "Update teamspace settings", + "name": "updateTeamspaceSettings", + "group": "Teamspace", + "description": "Update teamspace settings.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String[]", + "optional": true, + "field": "riskCategories", + "description": "List of risk categories
" + }, + { + "group": "Request body", + "type": "String[]", + "optional": true, + "field": "topicTypes", + "description": "List of issue topic types
" + } + ], + "Risk category": [ + { + "group": "Risk category", + "type": "String", + "optional": false, + "field": "value", + "description": "Value of risk category
" + }, + { + "group": "Risk category", + "type": "String", + "optional": false, + "field": "label", + "description": "Label for risk category
" + } + ], + "Topic type": [ + { + "group": "Topic type", + "type": "String", + "optional": false, + "field": "value", + "description": "Value of topic type
" + }, + { + "group": "Topic type", + "type": "String", + "optional": false, + "field": "label", + "description": "Label for topic type
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage", + "content": "PUT /acme/settings HTTP/1.1\n{\n\t\"topicTypes\":[\n\t\t\"New Topic 1\",\n\t\t\"New Topic 2\"\n\t],\n\t\"riskCategories\":[\n\t\t\"New Category 1\",\n\t\t\"NEW CATEGORY 2\"\n\t]\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"riskCategories\":[\n\t\t\"New Category 1\",\n\t\t\"NEW CATEGORY 2\"\n\t],\n\t\"topicTypes\":[\n\t\t\"New Topic 1\",\n\t\t\"New Topic 2\"\n\t],\n\t\"mitigationsUpdatedAt\":1567156228976,\n\t\"_id\":\"acme\"\n}", + "type": "json" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/teamspace.js", + "groupTitle": "Teamspace" + }, + { + "type": "post", + "url": "/:teamspace/settings/mitigations.csv", + "title": "Upload mitigations file", + "name": "uploadMitigationsFile", + "group": "Teamspace", + "description": "Upload a risk mitigations CSV file to a teamspace.
", + "examples": [ + { + "title": "Example usage", + "content": "POST /acme/settings/mitigations.csv HTTP/1.1\nName of teamspace
" + } + ] + } + } + }, + { + "type": "get", + "url": "/starredMeta", + "title": "Gets the starred metadata tags for the logged user", + "description": "This endpoint returns the starred metadata tags. You can manage the starred metadata in the frontend from BIM (i) icon in the viewer.
", + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n[\n \"material\",\n \"color\",\n \"base offset\"\n]", + "type": "json" + } + ] + }, + "name": "GetStarredMetadataTags", + "group": "User", + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "get", + "url": "/starredModels", + "title": "Gets the starred models for the logged user", + "name": "GetStarredModels", + "group": "User", + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "put", + "url": "/starredMeta", + "title": "Replaces the whole starred metadata tags array for the logged user", + "name": "SetMetadataTags", + "group": "User", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "optional": true, + "field": "String", + "description": "(Request body) An array of tags to be starred
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": " [\n \t\"material\",\n\t \t\"color\"\n\t ]", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "put", + "url": "/starredModels", + "title": "Sets the whole starred models for the logged user", + "name": "SetStarredModels", + "group": "User", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "optional": true, + "field": "String", + "description": "An array of models to be starred, belong to the teamspace
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": " {\n \t\"user1\": [\"c7d9184a-83d3-4ef0-975c-ba2ced888e79\"],\n \t\"user2\": [\"4d17e126-8238-432d-a421-93819373e21a\", \"0411e74a-0661-48f9-bf4f-8eabe4a673a0\"]\n\t }", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "post", + "url": "/starredMeta", + "title": "Adds a starred metadata tag for the logged user", + "name": "StarMetadataTags", + "group": "User", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "tag", + "description": "The tag to be starred
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": "{\n \"tag\": \"material\"\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "post", + "url": "/starredModels", + "title": "Adds a starred models for the logged user", + "name": "StarModels", + "group": "User", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "teamspace where model resides
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "model ID to add
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": "{\n \"teamspace\": \"user1\",\n \"model\": \"c7d9184a-83d3-4ef0-975c-ba2ced888e79\"\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "delete", + "url": "/starredMeta", + "title": "removes a starred metadata tag for the logged user if the tag exists", + "name": "UnstarMetadataTags", + "group": "User", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "tag", + "description": "The tag to be starred
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": "{\n \"tag\": \"material\"\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "delete", + "url": "/starredModels", + "title": "removes a starred models for the logged user if the tag exists", + "name": "UnstarModels", + "group": "User", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "teamspace where model resides
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "model ID to remove
" + } + ] + }, + "examples": [ + { + "title": "Input", + "content": "{\n \"teamspace\": \"user1\",\n \"model\": \"c7d9184a-83d3-4ef0-975c-ba2ced888e79\"\n}", + "type": "json" + } + ] + }, + "success": { + "examples": [ + { + "title": "Success", + "content": " HTTP/1.1 200 OK\n\t {}", + "type": "json" + } + ] + }, + "error": { + "fields": { + "Error 4xx": [ + { + "group": "Error 4xx", + "optional": false, + "field": "400", + "description": "BadRequest The request was malformed
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "delete", + "url": "/apikey", + "title": "Deletes the current apikey for the logged user", + "name": "deleteApiKey_HTTP_1_1_200_OK___", + "group": "User", + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "post", + "url": "/apikey", + "title": "Generates an apikey for the logged user", + "name": "generateApiKey", + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n apiKey:\"20f947a673dce5419ce187ca7998a68f\"\n}", + "type": "json" + } + ] + }, + "group": "User", + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "get", + "url": "/me", + "title": "Gets the profile for the logged user", + "name": "getProfile", + "success": { + "examples": [ + { + "title": "Success", + "content": "HTTP/1.1 200 OK\n{\n username: \"jasonv\",\n firstName: \"Jason\",\n lastName: \"Voorhees\",\n email: \"jason@vorhees.com\",\n hasAvatar: true\n}", + "type": "json" + } + ] + }, + "group": "User", + "version": "0.0.0", + "filename": "src/v4/routes/user.js", + "groupTitle": "User" + }, + { + "type": "post", + "url": "/:teamspace/:model/viewpoints/", + "title": "Create view", + "name": "createView", + "group": "Views", + "description": "Create a new view.
", + "parameter": { + "fields": { + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of view
" + }, + { + "group": "Request body", + "type": "Viewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint
" + }, + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "Screenshot
" + }, + { + "group": "Request body", + "type": "String", + "optional": true, + "field": "clippingPlanes", + "description": "List of clipping planes
" + } + ], + "Request body: screenshot": [ + { + "group": "Request body: screenshot", + "type": "String", + "optional": false, + "field": "base64", + "description": "Screenshot image in base64
" + } + ], + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "POST /acme/00000000-0000-0000-0000-000000000000/viewpoints HTTP/1.1\n{\n\t\"clippingPlanes\":[],\n\t\"name\":\"View 3\",\n\t\"screenshot\":{\n\t\t\"base64\":Delete a view.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewId", + "description": "View ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "DELETE /acme/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000000 HTTP/1.1", + "type": "delete" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"status\":\"success\"\n}", + "type": "png" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/view.js", + "groupTitle": "Views" + }, + { + "type": "get", + "url": "/:teamspace/:model/viewpoints/:viewId", + "title": "Get view", + "name": "findView", + "group": "Views", + "description": "Retrieve a view.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewId", + "description": "View ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Type: ResultViewpoint": [ + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "The right vector of the viewpoint indicating the direction of right in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "The up vector of the viewpoint indicating the direction of up in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "The position vector indicates where in the world the viewpoint is positioned.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "The vector indicating where in the world the viewpoint is looking at.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "The vector indicating where is the viewpoint is looking at in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "The vector indicating the near plane.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "The vector indicating the far plane.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "The angle of the field of view.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "The aspect ratio of the fustrum.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "the clipping planes associated with the viewpoint
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String[]", + "optional": true, + "field": "override_group_ids", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups ids with one group for each colour
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "A string in base64 representing the screenshot associated with the viewpoint
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000001 HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\"thumbnail\":\"charence/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000001/thumbnail.png\",\n\t\"viewpoint\":{\n\t\t\"right\":[1.0,-0.0,0.0],\n\t\t\"up\":[0.0,0.0,-1.0],\n\t\t\"position\":[35000.0,150000.0,20000.0],\n\t\t\"look_at\":[35000.0,3000.0,20000.0],\n\t\t\"view_dir\":[-0.0,-1,-0.0],\n\t\t\"near\":100.0,\n\t\t\"far\":100000.0,\n\t\t\"fov\":1.0,\n\t\t\"aspect_ratio\":1.185,\n\t\t\"clippingPlanes\":[],\n\t\t\"highlighted_group_id\":\"\"\n\t},\n\t\"clippingPlanes\":[],\n\t\"screenshot\":{\n\t\t\"thumbnailUrl\":View ID
" + }, + { + "group": "View object", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of view
" + }, + { + "group": "View object", + "type": "String", + "optional": false, + "field": "thumbnail", + "description": "Thumbnail image
" + }, + { + "group": "View object", + "type": "ResultViewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint properties
" + }, + { + "group": "View object", + "type": "Number[]", + "optional": false, + "field": "clippingPlanes", + "description": "[DEPRECATED] Array of clipping planes
" + }, + { + "group": "View object", + "type": "Object", + "optional": false, + "field": "screenshot", + "description": "[DEPRECATED] Screenshot object
" + } + ] + } + }, + "version": "0.0.0", + "filename": "src/v4/routes/view.js", + "groupTitle": "Views" + }, + { + "type": "get", + "url": "/:teamspace/:model/viewpoints/:viewId/thumbnail.png", + "title": "Get view thumbnail", + "name": "getThumbnail", + "group": "Views", + "description": "Retrieve a view's thumbnail image.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewId", + "description": "View ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "GET /acme/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000000/thumbnail.png HTTP/1.1", + "type": "get" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\nList all model views.
", + "success": { + "fields": { + "Success 200": [ + { + "group": "Success 200", + "type": "Object[]", + "optional": false, + "field": "views", + "description": "List of view objects
" + } + ], + "View object": [ + { + "group": "View object", + "type": "String", + "optional": false, + "field": "_id", + "description": "View ID
" + }, + { + "group": "View object", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of view
" + }, + { + "group": "View object", + "type": "String", + "optional": false, + "field": "thumbnail", + "description": "Thumbnail image
" + }, + { + "group": "View object", + "type": "ResultViewpoint", + "optional": false, + "field": "viewpoint", + "description": "Viewpoint properties
" + }, + { + "group": "View object", + "type": "Number[]", + "optional": false, + "field": "clippingPlanes", + "description": "[DEPRECATED] Array of clipping planes
" + }, + { + "group": "View object", + "type": "Object", + "optional": false, + "field": "screenshot", + "description": "[DEPRECATED] Screenshot object
" + } + ] + }, + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n[\n\t{\n\t\t\"_id\":\"00000000-0000-0000-0000-000000000001\",\n\t\t\"thumbnail\":\"charence/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000001/thumbnail.png\",\n\t\t\"viewpoint\":{\n\t\t\t\"right\":[1.0,-0.0,0.0],\n\t\t\t\"up\":[0.0,0.0,-1.0],\n\t\t\t\"position\":[35000.0,150000.0,20000.0],\n\t\t\t\"look_at\":[35000.0,3000.0,20000.0],\n\t\t\t\"view_dir\":[-0.0,-1,-0.0],\n\t\t\t\"near\":100.0,\n\t\t\t\"far\":100000.0,\n\t\t\t\"fov\":1.0,\n\t\t\t\"aspect_ratio\":1.185,\n\t\t\t\"clippingPlanes\":[],\n\t\t\t\"highlighted_group_id\":\"\"\n\t\t},\n\t\t\"clippingPlanes\":[],\n\t\t\"screenshot\":{\n\t\t\t\"thumbnailUrl\":Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Type: ResultViewpoint": [ + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "right", + "description": "The right vector of the viewpoint indicating the direction of right in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "up", + "description": "The up vector of the viewpoint indicating the direction of up in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "position", + "description": "The position vector indicates where in the world the viewpoint is positioned.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "look_at", + "description": "The vector indicating where in the world the viewpoint is looking at.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number[3]", + "optional": false, + "field": "view_dir", + "description": "The vector indicating where is the viewpoint is looking at in relative coordinates.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "near", + "description": "The vector indicating the near plane.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "far", + "description": "The vector indicating the far plane.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "fov", + "description": "The angle of the field of view.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Number", + "optional": false, + "field": "aspect_ratio", + "description": "The aspect ratio of the fustrum.
" + }, + { + "group": "Type: ResultViewpoint", + "type": "ClippingPlane[]", + "optional": true, + "field": "clippingPlanes", + "description": "the clipping planes associated with the viewpoint
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "highlighted_group_id", + "description": "If the viewpoint is associated with one or more highlighted objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "hidden_group_id", + "description": "If the viewpoint is associated with one or more hidden objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": true, + "field": "shown_group_id", + "description": "If the viewpoint is associated with one or more shown objects from the model this field has the value of a group id generated to hold those objects
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String[]", + "optional": true, + "field": "override_group_ids", + "description": "If the viewpoint has one or more objects with colour override this field has an array of groups ids with one group for each colour
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String[]", + "optional": true, + "field": "transformation_group_ids", + "description": "List of group IDs with transformations
" + }, + { + "group": "Type: ResultViewpoint", + "type": "Boolean", + "optional": false, + "field": "hide_IFC", + "description": "A flag to hide the IFC
" + }, + { + "group": "Type: ResultViewpoint", + "type": "String", + "optional": false, + "field": "screenshot", + "description": "A string in base64 representing the screenshot associated with the viewpoint
" + } + ], + "Type: ClippingPlane": [ + { + "group": "Type: ClippingPlane", + "type": "Number[3]", + "optional": false, + "field": "normal", + "description": "The normal of the plane defined for the clipping plane
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "distance", + "description": "The distance for the clipping plane to the origin
" + }, + { + "group": "Type: ClippingPlane", + "type": "Number", + "optional": false, + "field": "clipDirection", + "description": "The direction to the clipping plane will cut the model; above or below the plane. Possible values: 1 , -1.
" + } + ] + } + } + }, + { + "type": "put", + "url": "/:teamspace/:model/viewpoints/:viewId", + "title": "Update view", + "name": "updateView", + "group": "Views", + "description": "Update a view.
", + "parameter": { + "fields": { + "Parameter": [ + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "viewId", + "description": "View ID
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "teamspace", + "description": "Name of teamspace
" + }, + { + "group": "Parameter", + "type": "String", + "optional": false, + "field": "model", + "description": "Model ID
" + } + ], + "Request body": [ + { + "group": "Request body", + "type": "String", + "optional": false, + "field": "name", + "description": "Name of view
" + } + ] + } + }, + "examples": [ + { + "title": "Example usage:", + "content": "PUT /acme/00000000-0000-0000-0000-000000000000/viewpoints/00000000-0000-0000-0000-000000000001 HTTP/1.1\n{\n\t\"name\":\"NewName\"\n}", + "type": "put" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response", + "content": "HTTP/1.1 200 OK\n{\n\t\"_id\":\"00000000-0000-0000-0000-000000000001\"\n}", + "type": "png" + } + ] + }, + "version": "0.0.0", + "filename": "src/v4/routes/view.js", + "groupTitle": "Views" + } +] diff --git a/backend/docs/api_project.js b/backend/docs/api_project.js new file mode 100644 index 00000000000..4eb47801d9c --- /dev/null +++ b/backend/docs/api_project.js @@ -0,0 +1,14 @@ +define({ + "name": "3drepo.io", + "version": "5.6.3", + "description": "The backend for 3drepo.io", + "sampleUrl": false, + "defaultVersion": "0.0.0", + "apidoc": "0.3.0", + "generator": { + "name": "apidoc", + "time": "2024-01-22T16:31:45.319Z", + "url": "http://apidocjs.com", + "version": "0.17.7" + } +}); diff --git a/backend/docs/api_project.json b/backend/docs/api_project.json new file mode 100644 index 00000000000..57bdd3ea9d8 --- /dev/null +++ b/backend/docs/api_project.json @@ -0,0 +1,14 @@ +{ + "name": "3drepo.io", + "version": "5.6.3", + "description": "The backend for 3drepo.io", + "sampleUrl": false, + "defaultVersion": "0.0.0", + "apidoc": "0.3.0", + "generator": { + "name": "apidoc", + "time": "2024-01-22T16:31:45.319Z", + "url": "http://apidocjs.com", + "version": "0.17.7" + } +} diff --git a/backend/docs/css/style.css b/backend/docs/css/style.css new file mode 100644 index 00000000000..6468b2b22d2 --- /dev/null +++ b/backend/docs/css/style.css @@ -0,0 +1,569 @@ +/* ------------------------------------------------------------------------------------------ + * Content + * ------------------------------------------------------------------------------------------ */ +body { + min-width: 980px; + max-width: 1280px; +} + +body, p, a, div, th, td { + font-family: "Source Sans Pro", sans-serif; + font-weight: 400; + font-size: 16px; +} + +td.code { + font-size: 14px; + font-family: "Source Code Pro", monospace; + font-style: normal; + font-weight: 400; +} + +#content { + padding-top: 16px; + z-Index: -1; + margin-left: 270px; +} + +p { + color: #808080; +} + +h1 { + font-family: "Source Sans Pro Semibold", sans-serif; + font-weight: normal; + font-size: 44px; + line-height: 50px; + margin: 0 0 10px 0; + padding: 0; +} + +h2 { + font-family: "Source Sans Pro", sans-serif; + font-weight: normal; + font-size: 24px; + line-height: 40px; + margin: 0 0 20px 0; + padding: 0; +} + +section { + border-top: 1px solid #ebebeb; + padding: 30px 0; +} + +section h1 { + font-family: "Source Sans Pro", sans-serif; + font-weight: 700; + font-size: 32px; + line-height: 40px; + padding-bottom: 14px; + margin: 0 0 20px 0; + padding: 0; +} + +article { + padding: 14px 0 30px 0; +} + +article h1 { + font-family: "Source Sans Pro Bold", sans-serif; + font-weight: 600; + font-size: 24px; + line-height: 26px; +} + +article h2 { + font-family: "Source Sans Pro", sans-serif; + font-weight: 600; + font-size: 18px; + line-height: 24px; + margin: 0 0 10px 0; +} + +article h3 { + font-family: "Source Sans Pro", sans-serif; + font-weight: 600; + font-size: 16px; + line-height: 18px; + margin: 0 0 10px 0; +} + +article h4 { + font-family: "Source Sans Pro", sans-serif; + font-weight: 600; + font-size: 14px; + line-height: 16px; + margin: 0 0 8px 0; +} + +table { + border-collapse: collapse; + width: 100%; + margin: 0 0 20px 0; +} + +th { + background-color: #f5f5f5; + text-align: left; + font-family: "Source Sans Pro", sans-serif; + font-weight: 700; + padding: 4px 8px; + border: #e0e0e0 1px solid; +} + +td { + vertical-align: top; + padding: 10px 8px 0 8px; + border: #e0e0e0 1px solid; +} + +#generator .content { + color: #b0b0b0; + border-top: 1px solid #ebebeb; + padding: 10px 0; +} + +.label-optional { + float: right; + background-color: grey; + margin-top: 4px; +} + +.open-left { + right: 0; + left: auto; +} + +/* ------------------------------------------------------------------------------------------ + * apidoc - intro + * ------------------------------------------------------------------------------------------ */ + +#apidoc .apidoc { + border-top: 1px solid #ebebeb; + padding: 30px 0; +} + +#apidoc h1 { + font-family: "Source Sans Pro", sans-serif; + font-weight: 700; + font-size: 32px; + line-height: 40px; + padding-bottom: 14px; + margin: 0 0 20px 0; + padding: 0; +} + +#apidoc h2 { + font-family: "Source Sans Pro Bold", sans-serif; + font-weight: 600; + font-size: 22px; + line-height: 26px; + padding-top: 14px; +} + +/* ------------------------------------------------------------------------------------------ + * pre / code + * ------------------------------------------------------------------------------------------ */ +pre { + background-color: #292b36; + color: #ffffff; + padding: 10px; + border-radius: 6px; + position: relative; + margin: 10px 0 20px 0; + overflow-x: auto; +} + +pre.prettyprint { + width: 100%; +} + +code.language-text { + word-wrap: break-word; +} + +pre.language-json { + overflow: auto; +} + +pre.language-html { + margin: 0 0 20px 0; +} + +.type { + font-family: "Source Sans Pro", sans-serif; + font-weight: 600; + font-size: 15px; + display: inline-block; + margin: 0 0 5px 0; + padding: 4px 5px; + border-radius: 6px; + text-transform: uppercase; + background-color: #3387CC; + color: #ffffff; +} + +.type__get { + background-color: green; +} + +.type__put { + background-color: #e5c500; +} + +.type__post { + background-color: #4070ec; +} + +.type__delete { + background-color: #ed0039; +} + +pre.language-api .str { + color: #ffffff; +} + +pre.language-api .pln, +pre.language-api .pun { + color: #65B042; +} + +pre code { + display: block; + font-size: 14px; + font-family: "Source Code Pro", monospace; + font-style: normal; + font-weight: 400; + word-wrap: normal; + white-space: pre; +} + +pre code.sample-request-response-json { + white-space: pre-wrap; + max-height: 500px; + overflow: auto; +} + +/* ------------------------------------------------------------------------------------------ + * Sidenav + * ------------------------------------------------------------------------------------------ */ +.sidenav { + width: 228px; + margin: 0; + padding: 0 20px 20px 20px; + position: fixed; + top: 50px; + left: 0; + bottom: 0; + overflow-x: hidden; + overflow-y: auto; + background-color: #f5f5f5; + z-index: 10; +} + +.sidenav > li > a { + display: block; + width: 192px; + margin: 0; + padding: 2px 11px; + border: 0; + border-left: transparent 4px solid; + border-right: transparent 4px solid; + font-family: "Source Sans Pro", sans-serif; + font-weight: 400; + font-size: 14px; +} + +.sidenav > li.nav-header { + margin-top: 8px; + margin-bottom: 8px; +} + +.sidenav > li.nav-header > a { + padding: 5px 15px; + border: 1px solid #e5e5e5; + width: 190px; + font-family: "Source Sans Pro", sans-serif; + font-weight: 700; + font-size: 16px; + background-color: #ffffff; +} + +.sidenav > li.active > a { + position: relative; + z-index: 2; + background-color: #0088cc; + color: #ffffff; +} + +.sidenav > li.has-modifications a { + border-right: #60d060 4px solid; +} + +.sidenav > li.is-new a { + border-left: #e5e5e5 4px solid; +} + +/* ------------------------------------------------------------------------------------------ + * Side nav search + * ------------------------------------------------------------------------------------------ */ +.sidenav-search { + width: 228px; + left: 0px; + position: fixed; + padding: 16px 20px 10px 20px; + background-color: #F5F5F5; + z-index: 11; +} + +.sidenav-search .search { + height: 26px; +} + +.search-reset { + position: absolute; + display: block; + cursor: pointer; + width: 20px; + height: 20px; + text-align: center; + right: 28px; + top: 17px; + background-color: #fff; +} + +/* ------------------------------------------------------------------------------------------ + * Compare + * ------------------------------------------------------------------------------------------ */ + +ins { + background: #60d060; + text-decoration: none; + color: #000000; +} + +del { + background: #f05050; + color: #000000; +} + +.label-ins { + background-color: #60d060; +} + +.label-del { + background-color: #f05050; + text-decoration: line-through; +} + +pre.ins { + background-color: #60d060; +} + +pre.del { + background-color: #f05050; + text-decoration: line-through; +} + +table.ins th, +table.ins td { + background-color: #60d060; +} + +table.del th, +table.del td { + background-color: #f05050; + text-decoration: line-through; +} + +tr.ins td { + background-color: #60d060; +} + +tr.del td { + background-color: #f05050; + text-decoration: line-through; +} + +/* ------------------------------------------------------------------------------------------ + * Spinner + * ------------------------------------------------------------------------------------------ */ + +#loader { + position: absolute; + width: 100%; +} + +#loader p { + padding-top: 80px; + margin-left: -4px; +} + +.spinner { + margin: 200px auto; + width: 60px; + height: 60px; + position: relative; +} + +.container1 > div, .container2 > div, .container3 > div { + width: 14px; + height: 14px; + background-color: #0088cc; + + border-radius: 100%; + position: absolute; + -webkit-animation: bouncedelay 1.2s infinite ease-in-out; + animation: bouncedelay 1.2s infinite ease-in-out; + /* Prevent first frame from flickering when animation starts */ + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.spinner .spinner-container { + position: absolute; + width: 100%; + height: 100%; +} + +.container2 { + -webkit-transform: rotateZ(45deg); + transform: rotateZ(45deg); +} + +.container3 { + -webkit-transform: rotateZ(90deg); + transform: rotateZ(90deg); +} + +.circle1 { top: 0; left: 0; } +.circle2 { top: 0; right: 0; } +.circle3 { right: 0; bottom: 0; } +.circle4 { left: 0; bottom: 0; } + +.container2 .circle1 { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} + +.container3 .circle1 { + -webkit-animation-delay: -1.0s; + animation-delay: -1.0s; +} + +.container1 .circle2 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} + +.container2 .circle2 { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; +} + +.container3 .circle2 { + -webkit-animation-delay: -0.7s; + animation-delay: -0.7s; +} + +.container1 .circle3 { + -webkit-animation-delay: -0.6s; + animation-delay: -0.6s; +} + +.container2 .circle3 { + -webkit-animation-delay: -0.5s; + animation-delay: -0.5s; +} + +.container3 .circle3 { + -webkit-animation-delay: -0.4s; + animation-delay: -0.4s; +} + +.container1 .circle4 { + -webkit-animation-delay: -0.3s; + animation-delay: -0.3s; +} + +.container2 .circle4 { + -webkit-animation-delay: -0.2s; + animation-delay: -0.2s; +} + +.container3 .circle4 { + -webkit-animation-delay: -0.1s; + animation-delay: -0.1s; +} + +@-webkit-keyframes bouncedelay { + 0%, 80%, 100% { -webkit-transform: scale(0.0) } + 40% { -webkit-transform: scale(1.0) } +} + +@keyframes bouncedelay { + 0%, 80%, 100% { + transform: scale(0.0); + -webkit-transform: scale(0.0); + } 40% { + transform: scale(1.0); + -webkit-transform: scale(1.0); + } +} + +/* ------------------------------------------------------------------------------------------ + * Tabs + * ------------------------------------------------------------------------------------------ */ +ul.nav-tabs { + margin: 0; +} + +p.deprecated span{ + color: #ff0000; + font-weight: bold; + text-decoration: underline; +} + +/* ------------------------------------------------------------------------------------------ + * Print + * ------------------------------------------------------------------------------------------ */ + +@media print { + + #sidenav, + #version, + #versions, + section .version, + section .versions { + display: none; + } + + #content { + margin-left: 0; + } + + a { + text-decoration: none; + color: inherit; + } + + a:after { + content: " [" attr(href) "] "; + } + + p { + color: #000000 + } + + pre { + background-color: #ffffff; + color: #000000; + padding: 10px; + border: #808080 1px solid; + border-radius: 6px; + position: relative; + margin: 10px 0 20px 0; + } + +} /* /@media print */ diff --git a/backend/docs/fonts/glyphicons-halflings-regular.eot b/backend/docs/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 00000000000..b93a4953fff Binary files /dev/null and b/backend/docs/fonts/glyphicons-halflings-regular.eot differ diff --git a/backend/docs/fonts/glyphicons-halflings-regular.svg b/backend/docs/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 00000000000..94fb5490a2e --- /dev/null +++ b/backend/docs/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,288 @@ + + + \ No newline at end of file diff --git a/backend/docs/fonts/glyphicons-halflings-regular.ttf b/backend/docs/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 00000000000..1413fc609ab Binary files /dev/null and b/backend/docs/fonts/glyphicons-halflings-regular.ttf differ diff --git a/backend/docs/fonts/glyphicons-halflings-regular.woff b/backend/docs/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 00000000000..9e612858f80 Binary files /dev/null and b/backend/docs/fonts/glyphicons-halflings-regular.woff differ diff --git a/backend/docs/fonts/glyphicons-halflings-regular.woff2 b/backend/docs/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 00000000000..64539b54c37 Binary files /dev/null and b/backend/docs/fonts/glyphicons-halflings-regular.woff2 differ diff --git a/backend/docs/img/favicon.ico b/backend/docs/img/favicon.ico new file mode 100644 index 00000000000..c307a043933 Binary files /dev/null and b/backend/docs/img/favicon.ico differ diff --git a/backend/docs/index.html b/backend/docs/index.html new file mode 100644 index 00000000000..5f04deda546 --- /dev/null +++ b/backend/docs/index.html @@ -0,0 +1,669 @@ + + + + +Loading...
+