{"openapi":"3.0.1","info":{"title":"DRACOON API","description":"REST Web Services for DRACOON<br><br>This page provides an overview of all available and documented DRACOON APIs, which are grouped by tags.<br>Each tag provides a collection of APIs that are intended for a specific area of the DRACOON.<br><br><a title='Developer Information' href='https://developer.dracoon.com'>Developer Information</a>&emsp;&emsp;<a title='Get SDKs on GitHub' href='https://github.com/dracoon'>Get SDKs on GitHub</a><br><br><a title='Terms of service' href='https://www.dracoon.com/terms/general-terms-and-conditions/'>Terms of service</a>","version":"5.51.0"},"servers":[{"url":"/api"}],"security":[{"oauth2":[]}],"tags":[{"name":"roles","description":"Role user management"},{"name":"user","description":"User operations"},{"name":"config","description":"Configuration"},{"name":"users","description":"User management"},{"name":"resources","description":"Client resources"},{"name":"system-settings-config","description":"System settings (mail server, logging, branding, default values etc.)"},{"name":"public","description":"Public API (upload / download shares, software information)"},{"name":"system-auth-config","description":"System settings (authentication methods)"},{"name":"downloads","description":"File download without authentication headers"},{"name":"provisioning","description":"Provisioning"},{"name":"auth","description":"Authentication"},{"name":"datev","description":"Datev Integration"},{"name":"uploads","description":"File upload without authentication headers"},{"name":"settings","description":"Customer settings"},{"name":"system-policies-config","description":"System settings (policies)"},{"name":"shares","description":"Upload and Download Shares"},{"name":"system-storage-config","description":"System settings (storage)"},{"name":"groups","description":"User groups"},{"name":"eventlog","description":"System events log"},{"name":"nodes","description":"File system objects (rooms, folders, files)"}],"paths":{"/v4/public/shares/downloads/{access_key}/{token}":{"get":{"tags":["public"],"summary":"Download file with token","description":"### Description:  \nDownload a file (or zip archive if target is a folder or room).\n\n### Precondition:\nValid download token.\n\n### Postcondition:\nStream is returned.\n\n### Further Information:\nRange requests are supported.  \nRange requests are illegal for zip archive download.","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"downloadFileViaTokenPublic","parameters":[{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}},{"name":"token","in":"path","description":"Download token","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","description":"Range \n\ne.g. `bytes=0-999`","required":false,"schema":{"type":"string"}},{"name":"generic_mimetype","in":"query","description":"Always return `application/octet-stream` instead of specific mimetype","required":false,"schema":{"type":"boolean"}},{"name":"inline","in":"query","description":"Use Content-Disposition: `inline` instead of `attachment`","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"},"206":{"description":"Partial Content"},"400":{"description":"Bad Request","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80022":{"summary":"Range cannot be set at ZIP download","description":"\n* [-80022] Range cannot be set at ZIP download","value":{"code":400,"message":"Bad Request","debugInfo":"Range cannot be set at ZIP download","errorCode":-80022}}}}}},"404":{"description":"Not Found","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-50000":{"summary":"Download access key not found","description":"\n* [-50000] Download access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Download access key not found","errorCode":-50000}},"-50001":{"summary":"Download token not found","description":"\n* [-50001] Download token not found","value":{"code":404,"message":"Not Found","debugInfo":"Download token not found","errorCode":-50001}},"-50002":{"summary":"Downloads limit reached","description":"\n* [-50002] Downloads limit reached","value":{"code":404,"message":"Not Found","debugInfo":"Downloads limit reached","errorCode":-50002}}}}}},"406":{"description":"Not Acceptable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/octet-stream]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"416":{"description":"Range Not Satisfiable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Range Not Satisfiable","description":"Download range doesn't match pattern","value":{"code":416,"message":"Range Not Satisfiable","debugInfo":"Download range '...' doesn't match pattern '...'","errorCode":null}}}}}}},"security":[]},"head":{"tags":["public"],"summary":"Download file with token","description":"### Description:  \nDownload a file (or zip archive if target is a folder or room).\n\n### Precondition:\nValid download token.\n\n### Postcondition:\nStream is returned.\n\n### Further Information:\nRange requests are supported.  \nRange requests are illegal for zip archive download.","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"downloadFileViaTokenPublic_1","parameters":[{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}},{"name":"token","in":"path","description":"Download token","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","description":"Range \n\ne.g. `bytes=0-999`","required":false,"schema":{"type":"string"}},{"name":"generic_mimetype","in":"query","description":"Always return `application/octet-stream` instead of specific mimetype","required":false,"schema":{"type":"boolean"}},{"name":"inline","in":"query","description":"Use Content-Disposition: `inline` instead of `attachment`","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"},"206":{"description":"Partial Content"},"400":{"description":"Bad Request","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80022":{"summary":"Range cannot be set at ZIP download","description":"\n* [-80022] Range cannot be set at ZIP download","value":{"code":400,"message":"Bad Request","debugInfo":"Range cannot be set at ZIP download","errorCode":-80022}}}}}},"404":{"description":"Not Found","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-50000":{"summary":"Download access key not found","description":"\n* [-50000] Download access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Download access key not found","errorCode":-50000}},"-50001":{"summary":"Download token not found","description":"\n* [-50001] Download token not found","value":{"code":404,"message":"Not Found","debugInfo":"Download token not found","errorCode":-50001}},"-50002":{"summary":"Downloads limit reached","description":"\n* [-50002] Downloads limit reached","value":{"code":404,"message":"Not Found","debugInfo":"Downloads limit reached","errorCode":-50002}}}}}},"406":{"description":"Not Acceptable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/octet-stream]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"416":{"description":"Range Not Satisfiable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Range Not Satisfiable","description":"Download range doesn't match pattern","value":{"code":416,"message":"Range Not Satisfiable","debugInfo":"Download range '...' doesn't match pattern '...'","errorCode":null}}}}}}},"security":[]}},"/v4/downloads/{token}":{"get":{"tags":["downloads"],"summary":"Download file","description":"### Description:\nDownload a file.\n\n### Precondition:\nValid download token.\n\n### Postcondition:\nStream is returned.\n\n### Further Information:\nRange requests are supported.","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"downloadFileViaToken","parameters":[{"name":"token","in":"path","description":"Download token","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","description":"Range \n\ne.g. `bytes=0-999`","required":false,"schema":{"type":"string"}},{"name":"generic_mimetype","in":"query","description":"Always return `application/octet-stream` instead of specific mimetype","required":false,"schema":{"type":"boolean"}},{"name":"inline","in":"query","description":"Use Content-Disposition: `inline` instead of `attachment`","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"},"206":{"description":"Partial Content"},"400":{"description":"Bad Request","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-20502":{"summary":"Invalid (up-) download token","description":"\n* [-20502] Invalid (up-) download token","value":{"code":401,"message":"Unauthorized","debugInfo":"Invalid (up-) download token","errorCode":-20502}}}}}},"403":{"description":"Forbidden","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-20502] Invalid (up-) download token","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/octet-stream]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"416":{"description":"Range Not Satisfiable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Range Not Satisfiable","description":"Download range doesn't match pattern","value":{"code":416,"message":"Range Not Satisfiable","debugInfo":"Download range '...' doesn't match pattern '...'","errorCode":null}}}}}}},"security":[]},"head":{"tags":["downloads"],"summary":"Download file","description":"### Description:\nDownload a file.\n\n### Precondition:\nValid download token.\n\n### Postcondition:\nStream is returned.\n\n### Further Information:\nRange requests are supported.","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"downloadFileViaToken_1","parameters":[{"name":"token","in":"path","description":"Download token","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","description":"Range \n\ne.g. `bytes=0-999`","required":false,"schema":{"type":"string"}},{"name":"generic_mimetype","in":"query","description":"Always return `application/octet-stream` instead of specific mimetype","required":false,"schema":{"type":"boolean"}},{"name":"inline","in":"query","description":"Use Content-Disposition: `inline` instead of `attachment`","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"},"206":{"description":"Partial Content"},"400":{"description":"Bad Request","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-20502":{"summary":"Invalid (up-) download token","description":"\n* [-20502] Invalid (up-) download token","value":{"code":401,"message":"Unauthorized","debugInfo":"Invalid (up-) download token","errorCode":-20502}}}}}},"403":{"description":"Forbidden","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-20502] Invalid (up-) download token","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/octet-stream]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"416":{"description":"Range Not Satisfiable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Range Not Satisfiable","description":"Download range doesn't match pattern","value":{"code":416,"message":"Range Not Satisfiable","debugInfo":"Download range '...' doesn't match pattern '...'","errorCode":null}}}}}}},"security":[]}},"/v4/users/{user_id}":{"get":{"tags":["users"],"summary":"Request user","description":"### Description:  \nRetrieve detailed information about a single user.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.\n\n### Postcondition:\nUser information is returned.\n\n### Further Information:\nNone.\n\n### Authentication Method Options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Authentication Method | Option Key                    | Option Value                                                               |\n|:----------------------|:------------------------------|:---------------------------------------------------------------------------|\n| `basic` / `sql`       | `username`                    | Unique user identifier                                                     |\n| `active_directory`    | `ad_config_id` (optional)     | Active Directory configuration ID                                          |\n|                       | `username`                    | Active Directory username according to authentication setting `userFilter` |\n| `openid`              | `openid_config_id` (optional) | OpenID Connect configuration ID                                            |\n|                       | `username`                    | OpenID Connect username according to authentication setting `mappingClaim` |\n\n</details>","operationId":"requestUser","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"effective_roles","in":"query","description":"Filter users with DIRECT or DIRECT **AND** EFFECTIVE roles.\n\n* `false`: DIRECT roles\n\n* `true`: DIRECT **AND** EFFECTIVE roles\n\nDIRECT means: e.g. user gets role **directly** granted from someone with _grant permission_ right.\n\nEFFECTIVE means: e.g. user gets role through **group membership**.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["users"],"summary":"Update user's metadata","description":"### Description:  \nUpdate user's metadata.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.\n\n### Postcondition:\nUser's metadata is updated.\n\n### Further Information:\n* If a user should **NOT** expire, leave `expireAt` empty.\n* All input fields are limited to **150** characters\n* Forbidden characters in first name, last name and username: [`<`, `>`]\n\n### Authentication Method Options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Authentication Method | Option Key                                                                 | Option Value                                                               |\n|:----------------------|:---------------------------------------------------------------------------|:---------------------------------------------------------------------------|\n| `basic` / `sql`       | `username`                                                                 | Unique user identifier                                                     |\n| `active_directory`    | `ad_config_id` (optional)                                                  | Active Directory configuration ID                                          |\n| `username`            | Active Directory username according to authentication setting `userFilter` |                                                                            |\n| `openid`              | `openid_config_id` (optional)                                              | OpenID Connect configuration ID                                            |\n|                       | `username`                                                                 | OpenID Connect username according to authentication setting `mappingClaim` |\n\n</details>","operationId":"updateUser","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10013":{"summary":"Not valid IETF language tag","description":"\n* [-10013] Not valid IETF language tag","value":{"code":400,"message":"Bad Request","debugInfo":"Not valid IETF language tag","errorCode":-10013}},"-10100":{"summary":"Invalid authentication method","description":"\n* [-10100] Invalid authentication method","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid authentication method","errorCode":-10100}},"-10102":{"summary":"At least one authentication method must be enabled","description":"\n* [-10102] At least one authentication method must be enabled","value":{"code":400,"message":"Bad Request","debugInfo":"At least one authentication method must be enabled","errorCode":-10102}},"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-70105":{"summary":"Username change not allowed","description":"\n* [-70105] Username change not allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Username change not allowed","errorCode":-70105}},"-70106":{"summary":"Only one authentication method allowed","description":"\n* [-70106] Only one authentication method allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Only one authentication method allowed","errorCode":-70106}},"-70107":{"summary":"E-Mail change not allowed","description":"\n* [-70107] E-Mail change not allowed","value":{"code":400,"message":"Bad Request","debugInfo":"E-Mail change not allowed","errorCode":-70107}},"-70509":{"summary":"Illegal user lock status code","description":"\n* [-70509] Illegal user lock status code","value":{"code":400,"message":"Bad Request","debugInfo":"Illegal user lock status code","errorCode":-70509}},"-71006":{"summary":"At least one role user / group required","description":"\n* [-71006] At least one role user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one role user / group required","errorCode":-71006}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}},"-80028":{"summary":"Due to existing dependency the input must be null","description":"\n* [-80028] Due to existing dependency the input must be null","value":{"code":400,"message":"Bad Request","debugInfo":"Due to existing dependency the input must be null","errorCode":-80028}},"-80038":{"summary":"Deactivation of initial password change is only allowed without notification","description":"\n* [-80038] Deactivation of initial password change is only allowed without notification","value":{"code":400,"message":"Bad Request","debugInfo":"Deactivation of initial password change is only allowed without notification","errorCode":-80038}},"-80064":{"summary":"Policy Violation","description":"\n* [-80064] Policy Violation","value":{"code":400,"message":"Bad Request","debugInfo":"Policy Violation","errorCode":-80064}},"-90002":{"summary":"No distinct authentication configuration","description":"\n* [-90002] No distinct authentication configuration","value":{"code":400,"message":"Bad Request","debugInfo":"No distinct authentication configuration","errorCode":-90002}},"-90059":{"summary":"No valid Active Directory configuration found","description":"\n* [-90059] No valid Active Directory configuration found","value":{"code":400,"message":"Bad Request","debugInfo":"No valid Active Directory configuration found","errorCode":-90059}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-89000":{"summary":"This feature is not available in this product package","description":"\n* [-89000] This feature is not available in this product package","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}},"-70105":{"summary":"Username change not allowed","description":"\n* [-70105] Username change not allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Username change not allowed","errorCode":-70105}},"-90035":{"summary":"OpenID Connect IDP configuration not found","description":"\n* [-90035] OpenID Connect IDP configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035}},"-90050":{"summary":"Active Directory configuration not found","description":"\n* [-90050] Active Directory configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Active Directory configuration not found","errorCode":-90050}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70560":{"summary":"User with provided Basic authentication login already exists","description":"\n* [-70560] User with provided Basic authentication login already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided Basic authentication login already exists","errorCode":-70560}},"-70561":{"summary":"User with provided Active Directory username already exists","description":"\n* [-70561] User with provided Active Directory username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided Active Directory username already exists","errorCode":-70561}},"-70563":{"summary":"User with provided OpenID Connect username already exists","description":"\n* [-70563] User with provided OpenID Connect username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided OpenID Connect username already exists","errorCode":-70563}},"-70564":{"summary":"User with provided username already exists","description":"\n* [-70564] User with provided username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided username already exists","errorCode":-70564}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["users"],"summary":"Remove user","description":"### Description:\nDelete a user.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; delete users</span> required.\n\n### Postcondition:\nUser is deleted.\n\n### Further Information:\nUser **CANNOT** be deleted if he is a last room administrator of any room.","operationId":"removeUser","parameters":[{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-71006":{"summary":"At least one role user / group required","description":"\n* [-71006] At least one role user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one role user / group required","errorCode":-71006}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/users/{user_id}/userAttributes":{"get":{"tags":["users"],"summary":"Request custom user attributes","description":"### Description:  \nRetrieve a list of user attributes.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.\n\n### Postcondition:\nList of attributes is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`key:cn:searchString_1|value:cn:searchString_2`  \nFilter by attribute key contains `searchString_1` **AND** attribute value contains `searchString_2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `key` | User attribute key filter | `cn, eq, sw` | Attribute key contains / equals / starts with value. | `search String` |\n| `value` | User attribute value filter | `cn, eq, sw` | Attribute value contains / equals / starts with value. | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`key:asc|value:desc`  \nSort by `key` ascending **AND** by `value` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `key` | User attribute key |\n| `value` | User attribute value |\n\n</details>","operationId":"requestUserAttributes","parameters":[{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributesResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["users"],"summary":"Add or edit custom user attributes","description":"### Description:  \nAdd or edit custom user attributes.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.\n\n### Postcondition:\nCustom user attributes gets added or edited.\n\n### Further Information:\nBatch function.  \nIf an entry exists before, it will be overwritten.  \n\n* Allowed characters for keys are: `[a-zA-Z0-9_-]`\n* Characters are **case-insensitive**\n* Maximum key length is **255**\n* Maximum value length is **4096**\n* Maximum number of entries is 200\n\nThe total number of attributes for a user is limited to **500**.","operationId":"updateUserAttributes","parameters":[{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAttributes"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80015":{"summary":"Invalid key value list because there are duplicate keys present","description":"\n* [-80015] Invalid key value list because there are duplicate keys present","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["users"],"summary":"Set custom user attributes","description":"### Description:  \nSet custom user attributes.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.\n\n### Postcondition:\nCustom user attributes are set.\n\n### Further Information:\nBatch function.  \nAll existing user attributes will be deleted.  \n\n* Allowed characters for keys are: `[a-zA-Z0-9_-]`  \n* Characters are **case-insensitive**.","operationId":"setUserAttributes","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAttributes"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80015":{"summary":"Invalid key value list because there are duplicate keys present","description":"\n* [-80015] Invalid key value list because there are duplicate keys present","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/user/subscriptions/upload_shares":{"get":{"tags":["user"],"summary":"List Upload Share subscriptions","description":"### Description:  \nRetrieve a list of subscribed Upload Shares for current user. \n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of subscribed Upload Shares is returned.\n\n### Further Information:\nNone.\n\n### Filtering\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`targetNodeId:eq:#`  \nGet upload shares where `targetNodeId` equals `#`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| **`uploadShareId`** | Upload Share ID filter | `eq` | Upload Share ID equals value. | `long value` |\n| **`targetNodeId`** | Target node ID filter | `eq` | Target node ID equals value. | `long value` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`uploadShareId:desc|targetNodeId:asc`  \nSort by `uploadShareId` descending **AND** `targetNodeId` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`uploadShareId`** | Upload Share ID |\n| **`targetNodeId`** | Target node ID |\n\n</details>","operationId":"listUploadShareSubscriptions","parameters":[{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedUploadShareList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["user"],"summary":"Subscribe or Unsubscribe a List of Upload Shares for notifications","description":"### Description:  \nSubscribe/Unsubscribe upload shares for notifications.\n\n### Precondition:\nUser with _\"manage upload share\"_ permissions on target node.\n\n\n\n### Postcondition:\nUpload shares are subscribed or unsubscribed.\nNotifications for these upload shares will be triggered in the future.\n\n### Further Information:\nMaximum number of subscriptions is 200.","operationId":"subscribeUploadShares","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionsBulkRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60500":{"summary":"Upload Share not found","description":"\n* [-60500] Upload Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload Share not found","errorCode":-60500}}}}}},"406":{"description":"Not Acceptable","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"201":{"description":"Created"}}}},"/v4/user/subscriptions/nodes":{"get":{"tags":["user"],"summary":"List node subscriptions","description":"### Description:  \nRetrieve a list of subscribed nodes for current user. \n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of subscribed nodes is returned.\n\n### Further Information:\nNone.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`authParentId:eq:#`  \nGet nodes where `authParentId` equals `#`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME`       | Filter Description    | `OPERATOR` | Operator Description | `VALUE`      |\n|:-------------------|:----------------------| :--- | :--- |:-------------|\n| **`nodeId`**       | Node ID filter        | `eq` | Node ID equals value. | `long value` |\n| **`authParentId`** | Auth parent ID filter | `eq` | Auth parent ID equals value. | `long value` |\n| **`name`**         | Node name filter      | `cn, eq` | Node name contains / equals value. | `search String`     |\n| **`parentPath`**   | Parent path filter    | `cn, eq`    | Parent path contains / equals  value. | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`nodeId:desc|authParentId:asc`  \nSort by `nodeId` descending **AND** `authParentId` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME`       | Description |\n|:-------------------| :--- |\n| **`nodeId`**       | Node ID |\n| **`authParentId`** | Auth parent ID |\n| **`name`**         | Node name |\n| **`parentPath`**   | Parent path |\n\n</details>","operationId":"listNodeSubscriptions","parameters":[{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedNodeList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70120":{"summary":"Notification configuration not found","description":"\n* [-70120] Notification configuration not found","value":{"code":400,"message":"Bad Request","debugInfo":"Notification configuration not found","errorCode":-70120}},"-70121":{"summary":"Notification channel not found","description":"\n* [-70121] Notification channel not found","value":{"code":400,"message":"Bad Request","debugInfo":"Notification channel not found","errorCode":-70121}},"-70122":{"summary":"Notification channel is disabled","description":"\n* [-70122] Notification channel is disabled","value":{"code":400,"message":"Bad Request","debugInfo":"Notification channel is disabled","errorCode":-70122}},"-70123":{"summary":"Illegal notification channel","description":"\n* [-70123] Illegal notification channel","value":{"code":400,"message":"Bad Request","debugInfo":"Illegal notification channel","errorCode":-70123}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["user"],"summary":"Subscribe or Unsubscribe a List of nodes for notifications","description":"### Description:  \nSubscribe/Unsubscribe nodes for notifications.\n\n### Precondition:\nUser has _\"read\"_ permissions in auth parent room.\n\n### Postcondition:\nNodes are subscribed or unsubscribed.\nNotifications for these nodes will be triggered in the future.\n\n### Further Information:\nMaximum number of subscriptions is 200.","operationId":"updateNodeSubscriptions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionsBulkRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80061":{"summary":"Cannot subscribe node","description":"\n* [-80061] Cannot subscribe node\n\n(rooms and files only)","value":{"code":400,"message":"Bad Request","debugInfo":"Cannot subscribe node","errorCode":-80061}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"201":{"description":"Created"}}}},"/v4/user/subscriptions/download_shares":{"get":{"tags":["user"],"summary":"List Download Share subscriptions","description":"### Description:  \nRetrieve a list of subscribed Download Shares for current user. \n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of subscribed Download Shares is returned.\n\n### Further Information:\nNone.\n\n### Filtering\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`authParentId:eq:#`  \nGet download shares where `authParentId` equals `#`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| **`downloadShareId`** | Download Share ID filter | `eq` | Download Share ID equals value. | `long value` |\n| **`authParentId`** | Auth parent ID filter | `eq` | Auth parent ID equals value. | `long value` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`downloadShareId:desc|authParentId:asc`  \nSort by `downloadShareId` descending **AND** `authParentId` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`downloadShareId`** | Download Share ID |\n| **`authParentId`** | Auth parent ID |\n\n</details>","operationId":"listDownloadShareSubscriptions","parameters":[{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedDownloadShareList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["user"],"summary":"Subscribe or Unsubscribe a List of Download Shares for notifications","description":"### Description:  \nSubscribe/Unsubscribe download shares for notifications.\n\n### Precondition:\nUser with _\"manage download share\"_ permissions on target node.\n\n\n\n### Postcondition:\nDownload shares are subscribed or unsubscribed.\nNotifications for these download shares will be triggered in the future.\n\n### Further Information:\nMaximum number of subscriptions is 200.","operationId":"subscribeDownloadShares","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionsBulkRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60000":{"summary":"Download Share not found","description":"\n* [-60000] Download Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Download Share not found","errorCode":-60000}}}}}},"406":{"description":"Not Acceptable","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"201":{"description":"Created"}}}},"/v4/user/profileAttributes":{"get":{"tags":["user"],"summary":"Request user profile attributes","description":"### Description:  \nRetrieve a list of user profile attributes.\n\n### Precondition:\nNone.\n\n### Postcondition:\nList of attributes is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`key:cn:searchString_1|value:cn:searchString_2`  \nFilter by attribute key contains `searchString_1` **AND** attribute value contains `searchString_2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `key` | User profile attribute key filter | `cn, eq, sw` | Attribute key contains / equals / starts with value. | `search String` |\n| `value` | User profile attribute value filter | `cn, eq, sw` | Attribute value contains / equals / starts with value. | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`key:asc|value:desc`  \nSort by `key` ascending **AND** by `value` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `key` | User profile attribute key |\n| `value` | User profile attribute value |\n\n</details>","operationId":"requestProfileAttributes","parameters":[{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributesResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["user"],"summary":"Add or edit user profile attributes","description":"### Description:  \nAdd or edit custom user profile attributes.\n\n### Precondition:\nNone.\n\n### Postcondition:\nCustom user profile attributes are added or edited.\n\n### Further Information:\nBatch function.  \nIf an entry existed before, it will be overwritten.  \nRange submodel is never returned.\n\n* Allowed characters for keys are: `[a-zA-Z0-9_-]`\n* Characters are **case-insensitive**\n* Maximum key length is **255**\n* Maximum value length is **4096**\n* Maximum number of entries is 200\n\nThe total number of profile attributes for a user is limited to **500**.","operationId":"updateProfileAttributes","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80015":{"summary":"Invalid key value list because there are duplicate keys present","description":"\n* [-80015] Invalid key value list because there are duplicate keys present","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["user"],"summary":"Set user profile attributes","description":"### Description:  \nSet custom user profile attributes.\n\n### Precondition:\nNone.\n\n### Postcondition:\nCustom user profile attributes are set.\n\n### Further Information:\nBatch function.  \nAll existing user profile attributes will be deleted.  \n\n* Allowed characters for keys are: `[a-zA-Z0-9_-]`  \n* Characters are **case-insensitive**  \n* Maximum key length is **255**  \n* Maximum value length is **4096**","operationId":"setProfileAttributes","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributesRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributes"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80015":{"summary":"Invalid key value list because there are duplicate keys present","description":"\n* [-80015] Invalid key value list because there are duplicate keys present","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/user/notifications/config/{id}":{"put":{"tags":["user"],"summary":"Update notification configuration","description":"### Description:  \nUpdate notification configuration for current user. \n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nNotification configuration is updated.\n\n### Further Information:\nLeave `channelIds` empty to disable notifications.","operationId":"updateNotificationConfig","parameters":[{"name":"id","in":"path","description":"Unique identifier for a notification configuration","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationConfigChangeRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70120":{"summary":"Notification configuration not found","description":"\n* [-70120] Notification configuration not found","value":{"code":400,"message":"Bad Request","debugInfo":"Notification configuration not found","errorCode":-70120}},"-70121":{"summary":"Notification channel not found","description":"\n* [-70121] Notification channel not found","value":{"code":400,"message":"Bad Request","debugInfo":"Notification channel not found","errorCode":-70121}},"-70122":{"summary":"Notification channel is disabled","description":"\n* [-70122] Notification channel is disabled","value":{"code":400,"message":"Bad Request","debugInfo":"Notification channel is disabled","errorCode":-70122}},"-70123":{"summary":"Illegal notification channel","description":"\n* [-70123] Illegal notification channel","value":{"code":400,"message":"Bad Request","debugInfo":"Illegal notification channel","errorCode":-70123}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/account":{"get":{"tags":["user"],"summary":"Request user account information","description":"### Description:  \nRetrieves all information regarding the current user's account.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nUser information is returned.\n\n### Further Information:\nSetting the query parameter `more_info` to `true`, causes the API to return more details e.g. the user's groups.  \n\n`customer` (`CustomerData`) attribute in `UserAccount` response model is deprecated. Please use response from `GET /user/account/customer` instead.","operationId":"requestUserInfo","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"more_info","in":"query","description":"Get more info for this user\n\ne.g. list of user groups","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccount"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"put":{"tags":["user"],"summary":"Update user account","description":"### Description:  \nUpdate current user's account.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nUser's account is updated.\n\n### Further Information:\n* All input fields are limited to **150** characters.\n* Forbidden characters in usernames: [`<`, `>`]\n\n`customer` (`CustomerData`) attribute in `UserAccount` response model is deprecated. Please use response from `GET /user/account/customer` instead.","operationId":"updateUserAccount","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserAccountRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccount"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10100":{"summary":"Invalid authentication method","description":"\n* [-10100] Invalid authentication method","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid authentication method","errorCode":-10100}},"-70103":{"summary":"Accepted EULA cannot be undone","description":"\n* [-70103] Accepted EULA cannot be undone","value":{"code":400,"message":"Bad Request","debugInfo":"Accepted EULA cannot be undone","errorCode":-70103}},"-70104":{"summary":"EULA is already accepted","description":"\n* [-70104] EULA is already accepted","value":{"code":400,"message":"Bad Request","debugInfo":"EULA is already accepted","errorCode":-70104}},"-70105":{"summary":"Username change not allowed","description":"\n* [-70105] Username change not allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Username change not allowed","errorCode":-70105}},"-70107":{"summary":"E-Mail change not allowed","description":"\n* [-70107] E-Mail change not allowed","value":{"code":400,"message":"Bad Request","debugInfo":"E-Mail change not allowed","errorCode":-70107}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80009":{"summary":"Invalid email address","description":"\n* [-80009] Invalid email address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid email address","errorCode":-80009}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70105":{"summary":"Username change not allowed","description":"\n* [-70105] Username change not allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Username change not allowed","errorCode":-70105}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70560":{"summary":"User with provided Basic authentication login already exists","description":"\n* [-70560] User with provided Basic authentication login already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided Basic authentication login already exists","errorCode":-70560}},"-70561":{"summary":"User with provided Active Directory username already exists","description":"\n* [-70561] User with provided Active Directory username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided Active Directory username already exists","errorCode":-70561}},"-70563":{"summary":"User with provided OpenID Connect username already exists","description":"\n* [-70563] User with provided OpenID Connect username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided OpenID Connect username already exists","errorCode":-70563}},"-70564":{"summary":"User with provided username already exists","description":"\n* [-70564] User with provided username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided username already exists","errorCode":-70564}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/account/password":{"put":{"tags":["user"],"summary":"Change user's password","description":"### Description:\nChange the user's password.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nUser's password is changed.\n\n### Further Information:\nThe password **MUST** comply to configured password policies.  \n\nForbidden characters in passwords: [`&`, `'`, `<`, `>`]","operationId":"changeUserPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeUserPasswordRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-10002":{"summary":"Password is not secure","description":"\n* [-10002] Password is not secure","value":{"code":400,"message":"Bad Request","debugInfo":"Password is not secure","errorCode":-10002}},"-10105":{"summary":"Password cannot be reset for this user","description":"\n* [-10105] Password cannot be reset for this user","value":{"code":400,"message":"Bad Request","debugInfo":"Password cannot be reset for this user","errorCode":-10105}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}}},"/v4/user/account/customer":{"get":{"tags":["user"],"summary":"Request customer information for user","description":"### Description:  \nUse this API to get: \n* customer name\n* used / free space\n* used / available\n* user account info\n\nof the according customer.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nCustomer information is returned.\n\n### Further Information:\nNone.","operationId":"requestCustomerInfo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerData"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["user"],"summary":"Activate client-side encryption for customer","description":"### Use `POST /settings/keypair` API\n\n### Description:  \nActivate client-side encryption for according customer.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.\n\n### Postcondition:\nClient-side encryption is enabled.\n\n### Further Information:\nSets the ability for this customer to encrypt rooms.  \nOnce enabled on customer level, it **CANNOT** be unset.  \nOn activation, a customer rescue key pair **MUST** be set.","operationId":"enableCustomerEncryption","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableCustomerEncryptionRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerData"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-70023":{"summary":"Invalid private key format","description":"\n* [-70023] Invalid private key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid private key format","errorCode":-70023}},"-70024":{"summary":"Customer encryption cannot be disabled","description":"\n* [-70024] Customer encryption cannot be disabled","value":{"code":400,"message":"Bad Request","debugInfo":"Customer encryption cannot be disabled","errorCode":-70024}},"-70025":{"summary":"Customer encryption is already enabled","description":"\n* [-70025] Customer encryption is already enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Customer encryption is already enabled","errorCode":-70025}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-90020":{"summary":"Client-side encryption is not enabled","description":"\n* [-90020] Client-side encryption is not enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Client-side encryption is not enabled","errorCode":-90020}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/uploads/{token}":{"put":{"tags":["uploads"],"summary":"Complete file upload","description":"### Description:\nFinish uploading a file.\n\n### Precondition:\nValid upload token.\n\n### Postcondition:\nFile created.\n\n### Further Information:\nThe provided file name might be changed in accordance with the resolution strategy:\n\n* **autorename**: changes the file name and adds a number to avoid conflicts.\n* **overwrite**: deletes any old file with the same file name.\n* **fail**: returns an error; in this case, another `PUT` request with a different file name may be sent.\n\nPlease ensure that all chunks have been transferred correctly before finishing the upload.\n\nDownload share id (if exists) gets changed if:\n- node with the same name exists in the target container\n- `resolutionStrategy` is `overwrite`\n- `keepShareLinks` is `true`","operationId":"completeFileUploadByToken","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"token","in":"path","description":"Upload token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteUploadRequest"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-40763":{"summary":"File key must be set for an upload into encrypted room","description":"\n* [-40763] File key must be set for an upload into encrypted room","value":{"code":400,"message":"Bad Request","debugInfo":"File key must be set for an upload into encrypted room","errorCode":-40763}},"-50503":{"summary":"Illegal resolution strategy","description":"\n* [-50503] Illegal resolution strategy","value":{"code":400,"message":"Bad Request","debugInfo":"Illegal resolution strategy","errorCode":-50503}},"-50506":{"summary":"Exceeds the number of files for this Upload Share","description":"\n* [-50506] Exceeds the number of files for this Upload Share","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80034":{"summary":"Keeping Share Links is only allowed with conflict mode overwrite","description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"message":"Bad Request","debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034}},"-90033":{"summary":"S3 direct upload is enforced","description":"\n* [-90033] S3 direct upload is enforced","value":{"code":400,"message":"Bad Request","debugInfo":"S3 direct upload is enforced","errorCode":-90033}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-20502":{"summary":"Invalid (up-) download token","description":"\n* [-20502] Invalid (up-) download token","value":{"code":401,"message":"Unauthorized","debugInfo":"Invalid (up-) download token","errorCode":-20502}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-50501":{"summary":"Upload access key not found","description":"\n* [-50501] Upload access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload access key not found","errorCode":-50501}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40010":{"summary":"Container cannot be overwritten","description":"\n* [-40010] Container cannot be overwritten","value":{"code":409,"message":"Conflict","debugInfo":"Container cannot be overwritten","errorCode":-40010}},"-41001":{"summary":"Node exists already","description":"\n* [-41001] Node exists already","value":{"code":409,"message":"Conflict","debugInfo":"Node exists already","errorCode":-41001,"errorInfos":{"conflictNodes":[{"nodeId":"#","name":"...","errorCode":-41001,"errorMessage":"Node exists already"}]}}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-50504":{"summary":"Exceeds the quota for this Upload Share","description":"\n* [-50504] Exceeds the quota for this Upload Share","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}},"security":[]},"post":{"tags":["uploads"],"summary":"Upload file","description":"### Description:  \nUpload a (chunk of a) file.\n\n### Precondition:\nValid upload token.\n\n### Postcondition:\nChunk uploaded.\n\n### Further Information:\nRange requests are supported.  \n\nFollowing `Content-Types` are supported by this API:\n* `multipart/form-data`\n* provided `Content-Type`\n\nFor both file upload types set the correct `Content-Type` header and body.  \n\n### Examples:  \n\n* `multipart/form-data`\n```\nPOST /api/v4/uploads/{token} HTTP/1.1\n\nHeader:\n...\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n...\n\nBody:\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"file\"; filename=\"file.txt\"\nContent-Type: text/plain\n\nContent of file.txt\n------WebKitFormBoundary7MA4YWxkTrZu0gW--\n```\n\n* any other `Content-Type` \n```\nPOST /api/v4/uploads/{token} HTTP/1.1\n\nHeader:\n...\nContent-Type: { ... }\n...\n\nBody:\nraw content\n```\n","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"uploadFileByTokenAsMultipart","parameters":[{"name":"token","in":"path","description":"Upload token","required":true,"schema":{"type":"string"}},{"name":"Content-Range","in":"header","description":"Content-Range \n\ne.g. `bytes 0-999/3980`","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","description":"File","format":"binary"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50506":{"summary":"Exceeds the number of files for this Upload Share","description":"\n* [-50506] Exceeds the number of files for this Upload Share","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80021":{"summary":"Incorrect upload Content-Range","description":"\n* [-80021] Incorrect upload Content-Range","value":{"code":400,"message":"Bad Request","debugInfo":"Incorrect upload Content-Range","errorCode":-80021}},"-80037":{"summary":"Exceeds maximum data length for AES GCM encryption","description":"\n* [-80037] Exceeds maximum data length for AES GCM encryption","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds maximum data length for AES GCM encryption","errorCode":-80037}},"-90033":{"summary":"S3 direct upload is enforced","description":"\n* [-90033] S3 direct upload is enforced","value":{"code":400,"message":"Bad Request","debugInfo":"S3 direct upload is enforced","errorCode":-90033}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-20502":{"summary":"Invalid (up-) download token","description":"\n* [-20502] Invalid (up-) download token","value":{"code":401,"message":"Unauthorized","debugInfo":"Invalid (up-) download token","errorCode":-20502}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-50501":{"summary":"Upload access key not found","description":"\n* [-50501] Upload access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload access key not found","errorCode":-50501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-50504":{"summary":"Exceeds the quota for this Upload Share","description":"\n* [-50504] Exceeds the quota for this Upload Share","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}},"security":[]},"delete":{"tags":["uploads"],"summary":"Cancel file upload","description":"### Description:\nCancel file upload.\n\n### Precondition:\nValid upload token.\n\n### Postcondition:\nUpload canceled, token invalidated and all already transfered chunks removed.\n\n### Further Information:\nIt is recommended to notify the API about cancelled uploads if possible.","operationId":"cancelFileUploadByToken","parameters":[{"name":"token","in":"path","description":"Upload token","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50506":{"summary":"Exceeds the number of files for this Upload Share","description":"\n* [-50506] Exceeds the number of files for this Upload Share","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-90033":{"summary":"S3 direct upload is enforced","description":"\n* [-90033] S3 direct upload is enforced","value":{"code":400,"message":"Bad Request","debugInfo":"S3 direct upload is enforced","errorCode":-90033}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-20502":{"summary":"Invalid (up-) download token","description":"\n* [-20502] Invalid (up-) download token","value":{"code":401,"message":"Unauthorized","debugInfo":"Invalid (up-) download token","errorCode":-20502}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-50501":{"summary":"Upload access key not found","description":"\n* [-50501] Upload access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload access key not found","errorCode":-50501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-50504":{"summary":"Exceeds the quota for this Upload Share","description":"\n* [-50504] Exceeds the quota for this Upload Share","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}},"security":[]}},"/v4/system/config/storage/s3":{"get":{"tags":["system-storage-config"],"summary":"Request S3 storage configuration","description":"### Description:  \nRetrieve S3 configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nS3 configuration is returned.\n\n### Further Information:\nNone.\n\n### Virtual hosted style access\n\nExample: https://<span style=\"color:red;\">bucket-name</span>.s3.<span style=\"color:red;\">region</span>.amazonaws.com/<span style=\"color:red;\">key-name</span>\n","operationId":"request3Config","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Config"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90026":{"summary":"S3 configuration not found","description":"\n* [-90026] S3 configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"S3 configuration not found","errorCode":-90026}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-storage-config"],"summary":"Update S3 storage configuration","description":"### Description:  \nUpdate existing S3 configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nS3 configuration is updated.\n\n### Further Information:\nForbidden characters in bucket names: [`.`]  \n`bucketName` and `endpointUrl` are deprecated, use `bucketUrl` instead.\n\n### Virtual hosted style access\n\nExample: https://<span style=\"color:red;\">bucket-name</span>.s3.<span style=\"color:red;\">region</span>.amazonaws.com/<span style=\"color:red;\">key-name</span>\n","operationId":"updateS3Config","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3ConfigUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Config"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80010":{"summary":"Invalid URL","description":"\n* [-80010] Invalid URL","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URL","errorCode":-80010}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-90001":{"summary":"Invalid settings configuration","description":"\n* [-90001] Invalid settings configuration","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid settings configuration","errorCode":-90001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90026":{"summary":"S3 configuration not found","description":"\n* [-90026] S3 configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"S3 configuration not found","errorCode":-90026}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["system-storage-config"],"summary":"Create S3 storage configuration","description":"### Description:  \nCreate new S3 configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nNew S3 configuration is created.\n\n### Further Information:\nForbidden characters in bucket names: [`.`]  \n`bucketName` and `endpointUrl` are deprecated, use `bucketUrl` instead.\n\n### Virtual hosted style access\n\nExample: https://<span style=\"color:red;\">bucket-name</span>.s3.<span style=\"color:red;\">region</span>.amazonaws.com/<span style=\"color:red;\">key-name</span>\n","operationId":"createS3Config","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3ConfigCreateRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Config"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80010":{"summary":"Invalid URL","description":"\n* [-80010] Invalid URL","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URL","errorCode":-80010}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-90001":{"summary":"Invalid settings configuration","description":"\n* [-90001] Invalid settings configuration","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid settings configuration","errorCode":-90001}},"-90025":{"summary":"S3 configuration already exists","description":"\n* [-90025] S3 configuration already exists","value":{"code":400,"message":"Bad Request","debugInfo":"S3 configuration already exists","errorCode":-90025}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/settings/syslog":{"get":{"tags":["system-settings-config"],"summary":"Request syslog settings","description":"### Description:  \nDRACOON syslog configuration entry point.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nReturns a list of configurable syslog settings.\n\n### Further Information:\nNone.\n\n### Configurable syslog settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| `enabled` | Determines whether syslog is enabled. | `true or false` |\n| `host` | Syslog server (IP or FQDN) | `DNS name or IPv4 of a syslog server` |\n| `port` | Syslog server port | `Valid port number` |\n| `protocol` | Protocol to connect to syslog server | `TCP or UDP` |\n| `logIpEnabled` | Determines whether user’s IP address is logged. | `true or false` |\n\n</details>","operationId":"requestSyslogConfig","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyslogConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-settings-config"],"summary":"Update syslog settings","description":"### Description:  \nDRACOON syslog configuration entry point.  \nChange configurable syslog settings.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOne or more syslog settings gets changed.\n\n### Further Information:\nNone.\n\n### Configurable syslog settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| `enabled` | Set `true` to enable syslog. | `true or false` |\n| `host` | Syslog server (IP or FQDN) | `DNS name or IPv4 of a syslog server` |\n| `port` | Syslog server port | `Valid port number` |\n| `protocol` | Protocol to connect to syslog server | `TCP or UDP` |\n| `logIpEnabled` | Determines whether user’s IP address is logged. | `true or false` |\n\n</details>","operationId":"updateSyslogConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSyslogConfig"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyslogConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80012":{"summary":"Illegal protocol","description":"\n* [-80012] Illegal protocol","value":{"code":400,"message":"Bad Request","debugInfo":"Illegal protocol","errorCode":-80012}},"-80014":{"summary":"Invalid hostname or IP address","description":"\n* [-80014] Invalid hostname or IP address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid hostname or IP address","errorCode":-80014}},"-80033":{"summary":"Invalid port number","description":"\n* [-80033] Invalid port number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid port number","errorCode":-80033}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/settings/general":{"get":{"tags":["system-settings-config"],"summary":"Request general settings","description":"### Description:  \nDRACOON general settings configuration entry point.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nReturns a list of configurable general settings.\n\n### Further Information:\n\n### Auth token restrictions:\n\nA restriction is a lower bound for a token timeout and defines a duration after which a token is invalidated when it wasn't used.  \nThe access/refresh token validity duration of the client is the upper bound. A token is invalidated - in any case - when it has passed.  \n\nAuth token restrictions are enabled by default.\n\n* Default access token validity: **2 hours**  \n* Default refresh token validity: **30 days**\n\n### Configurable general settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| `sharePasswordSmsEnabled` | Determines whether sending of share passwords via SMS is allowed. | `true or false` |\n| `cryptoEnabled` | Determines whether client-side encryption is enabled.<br>Can only be enabled once; disabling is **NOT** possible. | `true or false` |\n| `emailNotificationButtonEnabled` | Determines whether email notification button is enabled. | `true or false` |\n| `eulaEnabled` | Determines whether EULA is enabled.<br>Each user has to confirm the EULA at first login. | `true or false` |\n| `useS3Storage` | Defines if S3 is used as storage backend.<br>Can only be enabled once; disabling is **NOT** possible. | `true or false` |\n| `s3TagsEnabled` | Determines whether S3 tags are enabled | `true or false` |\n| `authTokenRestrictions` | Determines auth token restrictions. (e.g. restricted access token validity) | `object` |\n\n</details>\n\n### Deprecated configurable general settings:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting                           | Description | Value |\n|:----------------------------------| :--- | :--- |\n| <del>`mediaServerEnabled`</del>   | Determines whether media server is enabled.<br>Returns boolean value dependent on conjunction of `mediaServerConfigEnabled` AND `mediaServerEnabled` | `true or false` |\n| <del>`weakPasswordEnabled`</del>  | Determines whether weak password is allowed.<br>Use `GET /system/config/policies/passwords` API to get configured password policies. | `true or false` |\n| <del>`hideLoginInputFields`</del> | Determines whether input fields for login should be enabled | `true or false` |\n\n</details>","operationId":"requestGeneralSettings","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralSettings"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-settings-config"],"summary":"Update general settings","description":"### Description:  \nDRACOON general settings configuration entry point.  \nChange configurable general settings.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOne or more general settings gets changed.\n\n### Further Information:\nAuth token restrictions are enabled by default.\n    \n* Default access token validity: **2 hours**  \n* Default refresh token validity: **30 days**\n\n### Configurable general settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| `sharePasswordSmsEnabled` | Determines whether sending of share passwords via SMS is allowed. | `true or false` |\n| `cryptoEnabled` | Determines whether client-side encryption is enabled.<br>Can only be enabled once; disabling is **NOT** possible. | `true or false` |\n| `emailNotificationButtonEnabled` | Determines whether email notification button is enabled. | `true or false` |\n| `eulaEnabled` | Determines whether EULA is enabled.<br>Each user has to confirm the EULA at first login. | `true or false` |\n| `s3TagsEnabled` | Determines whether S3 tags are enabled | `true or false` |\n| `authTokenRestrictions` | Determines auth token restrictions. (e.g. restricted access token validity) | `object` |\n\n</details>\n\n### Deprecated configurable general settings:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting                           | Description | Value |\n|:----------------------------------| :--- | :--- |\n| <del>`mediaServerEnabled`</del>   | Determines whether media server is enabled.<br>**CANNOT** be enabled if media server configuration is disabled in `core-service.properties`.<br>Check `mediaServerConfigEnabled` with `GET /system/config/settings/infrastructure`. | `true or false` |\n| <del>`weakPasswordEnabled`</del>  | Determines whether weak password is allowed.<br>Use `PUT /system/config/policies/passwords` API to change configured password policies. | `true or false` |\n| <del>`hideLoginInputFields`</del> | Determines whether input fields for login should be enabled | `true or false` |\n\n</details>","operationId":"updateGeneralSettings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGeneralSettings"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralSettings"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-90010":{"summary":"Client-side encryption is already enable and cannot be disabled","description":"\n* [-90010] Client-side encryption is already enable and cannot be disabled","value":{"code":400,"message":"Bad Request","debugInfo":"Client-side encryption is already enable and cannot be disabled","errorCode":-90010}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90100":{"summary":"License does not allow further provisioning","description":"\n* [-90100] License does not allow further provisioning","value":{"code":402,"message":"Payment Required","debugInfo":"License does not allow further provisioning","errorCode":-90100}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-90001":{"summary":"Invalid settings configuration","description":"\n* [-90001] Invalid settings configuration","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid settings configuration","errorCode":-90001}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90026":{"summary":"S3 configuration not found","description":"\n* [-90026] S3 configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"S3 configuration not found","errorCode":-90026}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/settings/eventlog":{"get":{"tags":["system-settings-config"],"summary":"Request eventlog settings","description":"### Description:  \nDRACOON eventlog configuration entry point.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nReturns a list of configurable eventlog settings.\n\n### Further Information:\nNone.\n\n### Configurable eventlog settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| `enabled` | Determines whether eventlog is enabled. | `true or false` |\n| `retentionPeriod` | Retention period (in _days_) of eventlog entries.<br>After that period, all entries are deleted. | `Integer between 0 and 9999`<br>If set to `0`: no logs are deleted |\n| `logIpEnabled` | Determines whether user’s IP address is logged. | `true or false` |\n\n</details>","operationId":"requestEventlogConfig","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventlogConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-settings-config"],"summary":"Update eventlog settings","description":"### Description:  \nDRACOON eventlog configuration entry point.  \nChange configurable eventlog settings.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOne or more eventlog settings gets changed.\n\n### Further Information:\nNone.\n\n### Configurable eventlog settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| `enabled` | Determines whether eventlog is enabled. | `true or false` |\n| `retentionPeriod` | Retention period (in _days_) of eventlog entries.<br>After that period, all entries are deleted. | `Integer between 0 and 9999`<br>If set to `0`: no logs are deleted<br>Recommended value: 7 |\n| `logIpEnabled` | Determines whether user’s IP address is logged. | `true or false` |\n\n</details>","operationId":"updateEventlogConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEventlogConfig"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventlogConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80018":{"summary":"Not between 0 and 9999","description":"\n* [-80018] Not between 0 and 9999","value":{"code":400,"message":"Bad Request","debugInfo":"Not between 0 and 9999","errorCode":-80018}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/settings/defaults":{"get":{"tags":["system-settings-config"],"summary":"Request system defaults","description":"### Description:  \nDRACOON system defaults configuration entry point.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nReturns a list of configurable system default values.\n\n### Further Information:\nNone.\n\n### Configurable default values\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting                                | Description                                                      | Value |\n|:---------------------------------------|:-----------------------------------------------------------------| :--- |\n| `languageDefault`                      | Defines which language should be default.                        | `ISO 639-1 code` |\n| `downloadShareDefaultExpirationPeriod` | Default expiration period for Download Shares in _days_.         | `Integer between 0 and 9999` |\n| `uploadShareDefaultExpirationPeriod`   | Default expiration period for Upload Shares in _days_.           | `Integer between 0 and 9999` |\n| `fileDefaultExpirationPeriod`          | Default expiration period for all uploaded files in _days_.      | `Integer between 0 and 9999` |\n| `globalRecycleBinRetentionPeriod`      | Global recycle bin retention period in _days_.                   | `Integer between 0 and 9999` |\n| `globalRecycleBinRetentionPeriodLegacy`| Legacy value for global recycle bin retention period in _days_. | `Integer between 0 and 9999` |\n| `nonmemberViewerDefault`               | Defines if new users get the role _Non Member Viewer_ by default | `true or false` |\n\n</details>","externalDocs":{"description":"Tags for Identifying Languages","url":"https://tools.ietf.org/html/rfc5646"},"operationId":"requestSystemDefaults","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemDefaults"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-settings-config"],"summary":"Update system defaults","description":"### Description:  \nDRACOON system defaults configuration entry point.  \nChange configurable system default values.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOne or more system default values gets changed.\n\n### Further Information:\nNone.\n\n### Configurable default values\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting                                 | Description                                                      | Value |\n|:----------------------------------------|:-----------------------------------------------------------------| :--- |\n| `languageDefault`                       | Defines which language should be default.                        | `ISO 639-1 code` |\n| `downloadShareDefaultExpirationPeriod`  | Default expiration period for Download Shares in _days_.         | `Integer between 0 and 9999`<br>Set `0` to disable. |\n| `uploadShareDefaultExpirationPeriod`    | Default expiration period for Upload Shares in _days_.           | `Integer between 0 and 9999`<br>Set `0` to disable. |\n| `fileDefaultExpirationPeriod`           | Default expiration period for all uploaded files in _days_.      | `Integer between 0 and 9999`<br>Set `0` to disable. |\n| `globalRecycleBinRetentionPeriod`       | Global recycle bin retention period in _days_.                   | `Integer between 0 and 9999`<br>Set `0` to disable. |\n| `globalRecycleBinRetentionPeriodLegacy` | Legacy value for global recycle bin retention period in _days_.  | `Integer between 0 and 9999`<br>Set `0` to disable. |\n| `nonmemberViewerDefault`                | Defines if new users get the role _Non Member Viewer_ by default | `true or false` |\n\n</details>","externalDocs":{"description":"Tags for Identifying Languages","url":"https://tools.ietf.org/html/rfc5646"},"operationId":"updateSystemDefaults","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSystemDefaults"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemDefaults"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10013":{"summary":"Not valid IETF language tag","description":"\n* [-10013] Not valid IETF language tag","value":{"code":400,"message":"Bad Request","debugInfo":"Not valid IETF language tag","errorCode":-10013}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80018":{"summary":"Not between 0 and 9999","description":"\n* [-80018] Not between 0 and 9999","value":{"code":400,"message":"Bad Request","debugInfo":"Not between 0 and 9999","errorCode":-80018}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/settings/auth":{"get":{"tags":["system-settings-config"],"summary":"Request authentication settings","description":"### Description:  \nDRACOON authentication configuration entry point.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nReturns a list of configurable authentication methods.\n\n### Further Information:\nAuthentication methods are sorted by priority attribute.  \nSmaller values have higher priority.  \nAuthentication method with highest priority is considered as default.  \nPriority **MUST** be a positive value.\n\n### Configurable authentication settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Authentication Method | Description                                                                                                                                                                         |\n|:----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `basic`               | **Basic** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their credentials stored in the database.<br>Formerly known as `sql`. |\n| `active_directory`    | **Active Directory** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their Active Directory credentials.                        |\n| `openid`              | **OpenID Connect** authentication globally allowed.This option **MUST** be activated to allow users to log in with their OpenID Connect identity.                                   |\n\n</details>","operationId":"requestAuthConfig","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-settings-config"],"summary":"Update authentication settings","description":"### Description:  \nDRACOON authentication configuration entry point.  \nChange configurable authentication settings.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOne or more authentication methods gets changed.\n\n### Further Information:\nAuthentication methods are sorted by priority attribute.  \nSmaller values have higher priority.  \nAuthentication method with the highest priority is considered as default.  \nPriority **MUST** be a positive value.\n\n### Configurable authentication settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Authentication Method | Description                                                                                                                                                                         |\n|:----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `basic`               | **Basic** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their credentials stored in the database.<br>Formerly known as `sql`. |\n| `active_directory`    | **Active Directory** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their Active Directory credentials.                        |\n| `openid`              | **OpenID Connect** authentication globally allowed.This option **MUST** be activated to allow users to log in with their OpenID Connect identity.                                   |\n\n</details>","operationId":"updateAuthConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfig"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10100":{"summary":"Invalid authentication method","description":"\n* [-10100] Invalid authentication method","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid authentication method","errorCode":-10100}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-10102":{"summary":"At least one authentication method must be enabled","description":"\n* [-10102] At least one authentication method must be enabled","value":{"code":400,"message":"Bad Request","debugInfo":"At least one authentication method must be enabled","errorCode":-10102}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/policies/virus_protection":{"get":{"tags":["system-policies-config"],"summary":"Request virus protection policies","description":"### Description:\nRetrieve the virus protection policy.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> of the Provider Customer required.\n\n### Postcondition:\nVirus Protection policy is returned.\n\n### Further Information:\nNone.","operationId":"requestVirusProtectionPoliciesConfig","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirusProtectionPoliciesConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-89000":{"summary":"This feature is not available in this product package","description":"\n* [-89000] This feature is not available in this product package","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-policies-config"],"summary":"Change virus protection policies","description":"### Description:\nChange current virus protection policy.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nVirus Protection policy is changed.  \n\n### Further Information:\nNone.","operationId":"changeVirusProtectionPoliciesConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVirusProtectionPoliciesConfig"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirusProtectionPoliciesConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-89000":{"summary":"This feature is not available in this product package","description":"\n* [-89000] This feature is not available in this product package","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/policies/passwords":{"get":{"tags":["system-policies-config"],"summary":"Request password policies","description":"### Description:  \nRetrieve a list of configured password policies for all password types:  \n* `login`\n* `shares`\n* `encryption`\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nList of configured password policies is returned.\n\n### Further Information:\nNone.\n\n### Available password policies:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Name | Description | Value | Password Type |\n| :--- | :--- | :--- | :--- |\n| `mustContainCharacters` | Characters which a password must contain:<br><ul><li>`alpha` - at least one alphabetical character (`uppercase` **OR** `lowercase`)<pre>a b c d e f g h i j k l m n o p q r s t u v w x y z<br>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</pre></li><li>`uppercase` - at least one uppercase character<pre>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</pre></li><li>`lowercase` - at least one lowercase character<pre>a b c d e f g h i j k l m n o p q r s t u v w x y z</pre></li><li>`numeric` - at least one numeric character<pre>0 1 2 3 4 5 6 7 8 9</pre></li><li>`special` - at least one special character (letters and digits excluded)<pre>! \" # $ % ( ) * + , - . / : ; = ? @ [ \\ ] ^ _ { &#124; } ~</pre></li><li>`none` - none of the above</li></ul> | <ul><li>`alpha`</li><li>`uppercase`</li><li>`lowercase`</li><li>`numeric`</li><li>`special`</li><li>`none`</li></ul> | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `numberOfCharacteristicsToEnforce` | Number of characteristics to enforce.<br>e.g. from `[\"uppercase\", \"lowercase\", \"numeric\", \"special\"]`<br>all 4 character sets can be enforced; but also only 2 of them | `Integer between 0 and 4` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `minLength` | Minimum number of characters a password must contain. | `Integer between 1 and 1024` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `rejectDictionaryWords` | Determines whether a password must **NOT** contain word(s) from a dictionary.<br>In `core-service.properties` a path to directory with dictionary files (`*.txt`) can be defined<br>cf. `policies.passwords.dictionary.directory`.<br><br>If this rule gets enabled `policies.passwords.dictionary.directory` must be defined and contain dictionary files.<br>Otherwise, the rule will not have any effect on password validation process. | `true or false` | <ul><li>`login`</li><li>`shares`</li></ul> |\n| `rejectUserInfo` | Determines whether a password must **NOT** contain user info.<br>Affects user's **first name**, **last name**, **email** and **user name**. | `true or false` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `rejectKeyboardPatterns` | Determines whether a password must **NOT** contain keyboard patterns.<br>e.g. `qwertz`, `asdf` (min. 4 character pattern) | `true or false` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `numberOfArchivedPasswords` | Number of passwords to archive.<br>Value `0` means that password history is disabled. | `Integer between 0 and 10` | <ul><li>`login`</li></ul> |\n| `passwordExpiration.enabled` | Determines whether password expiration is enabled. | `true or false` | <ul><li>`login`</li></ul> |\n| `maxPasswordAge` | Maximum allowed password age (in **days**) | `positive Integer` | <ul><li>`login`</li></ul> |\n| `userLockout.enabled` | Determines whether user lockout is enabled. | `true or false` | <ul><li>`login`</li></ul> |\n| `maxNumberOfLoginFailures` | Maximum allowed number of failed login attempts. | `positive Integer` | <ul><li>`login`</li></ul> |\n| `lockoutPeriod` | Amount of **minutes** a user has to wait to make another login attempt<br>after `maxNumberOfLoginFailures` has been exceeded. | `positive Integer` | <ul><li>`login`</li></ul> |\n\n</details>","operationId":"requestPasswordPoliciesConfig","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPoliciesConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-policies-config"],"summary":"Change password policies","description":"### Description:  \nChange current password policies for any password types:  \n* `login`\n* `shares`\n* `encryption`\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nPassword policies get changed.\n\n### Further Information:\nNone.\n\n### Available password policies:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Name | Description | Value | Recommended Value | Password Type |\n| :--- | :--- | :--- | :--- | :--- |\n| `mustContainCharacters` | Characters which a password must contain:<br><ul><li>`alpha` - at least one alphabetical character (`uppercase` **OR** `lowercase`)<pre>a b c d e f g h i j k l m n o p q r s t u v w x y z<br>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</pre></li><li>`uppercase` - at least one uppercase character<pre>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</pre></li><li>`lowercase` - at least one lowercase character<pre>a b c d e f g h i j k l m n o p q r s t u v w x y z</pre></li><li>`numeric` - at least one numeric character<pre>0 1 2 3 4 5 6 7 8 9</pre></li><li>`special` - at least one special character (letters and digits excluded)<pre>! \" # $ % ( ) * + , - . / : ; = ? @ [ \\ ] ^ _ { &#124; } ~</pre></li><li>`none` - none of the above</li><li>`all` - combination of `uppercase`, `lowercase`, `numeric` and `special`</li></ul> | <ul><li>`alpha`</li><li>`uppercase`</li><li>`lowercase`</li><li>`numeric`</li><li>`special`</li><li>`none`</li><li>`all`</li></ul> | <ul><li>`uppercase`</li><li>`lowercase`</li><li>`numeric`</li></ul>  | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `numberOfCharacteristicsToEnforce` | Number of characteristics to enforce.<br>e.g. from `[\"uppercase\", \"lowercase\", \"numeric\", \"special\"]`<br>all 4 character sets can be enforced; but also only 2 of them | `Integer between 0 and 4`<br><br>default:<ul><li>`none` - `0`</li><li>`all` - `4`</li><li>otherwise - amount of distinct values<br>cf. `mustContainCharacters` matrix</li></ul> | `3` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `minLength` | Minimum number of characters a password must contain. | `Integer between 1 and 1024` | <ul><li>`login`: `12`</li><li>`shares`: `12`</li><li>`encryption`: `14`</li></ul> | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `rejectDictionaryWords` | Determines whether a password must **NOT** contain word(s) from a dictionary.<br>In `core-service.properties` a path to directory with dictionary files (`*.txt`) can be defined<br>cf. `policies.passwords.dictionary.directory`.<br><br>If this rule gets enabled `policies.passwords.dictionary.directory` must be defined and contain dictionary files.<br>Otherwise, the rule will not have any effect on password validation process. | `true or false` | `true` | <ul><li>`login`</li><li>`shares`</li></ul> |\n| `rejectUserInfo` | Determines whether a password must **NOT** contain user info.<br>Affects user's **first name**, **last name**, **email** and **user name**. | `true or false` | `true` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `rejectKeyboardPatterns` | Determines whether a password must **NOT** contain keyboard patterns.<br>e.g. `qwertz`, `asdf` (min. 4 character pattern) | `true or false` | `true` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `numberOfArchivedPasswords` | Number of passwords to archive. | `Integer between 0 and 10`<br>Set `0` to disable password history. | `3` | <ul><li>`login`</li></ul> |\n| `passwordExpiration.enabled` | Determines whether password expiration is enabled.<br>Password expiration policy can only be enabled in context with `enforceLoginPasswordChange`. | `true or false` | `false` | <ul><li>`login`</li></ul> |\n| `maxPasswordAge` | Maximum allowed password age (in **days**) | `positive Integer` |  | <ul><li>`login`</li></ul> |\n| `userLockout.enabled` | Determines whether user lockout is enabled. | `true or false` | `true` | <ul><li>`login`</li></ul> |\n| `maxNumberOfLoginFailures` | Maximum allowed number of failed login attempts. | `positive Integer` | `5` | <ul><li>`login`</li></ul> |\n| `lockoutPeriod` | Amount of **minutes** a user has to wait to make another login attempt<br>after `maxNumberOfLoginFailures` has been exceeded. | `positive Integer` | `10` | <ul><li>`login`</li></ul> |\n\n</details>\n\n### Deprecated password policies:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Name | Description | Value | Recommended Value | Password Type |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`enforceLoginPasswordChange`</del> | Determines whether a login password change should be enforced for all users.<br>Only takes effect, if login password policies get stricter.<br>Use `POST /system/config/policies/passwords/enforce_change` API to enforce a login password change. | `true or false`<br>default: `false` |  | <ul><li>`login`</li></ul> |\n\n</details>\n\n### `mustContainCharacters` matrix:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n|  | `alpha` | `uppercase` | `lowercase` | `numeric` | `special` | `all` | `none` |\n| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n| `alpha` | `alpha` | `uppercase` | `lowercase` | `alpha`<br>`numeric` | `alpha`<br>`special` | `all` | `none` |\n| `uppercase` | `uppercase` | `uppercase` | `uppercase`<br>`lowercase` | `uppercase`<br>`numeric` | `uppercase`<br>`special` | `all` | `none` |\n| `lowercase` | `lowercase` | `uppercase`<br>`lowercase` | `lowercase` | `lowercase`<br>`numeric` | `lowercase`<br>`special` | `all` | `none` |\n| `numeric` | `alpha`<br>`numeric` | `uppercase`<br>`numeric` | `lowercase`<br>`numeric` | `numeric` | `numeric`<br>`special` | `all` | `none` |\n| `special` | `alpha`<br>`special` | `uppercase`<br>`special` | `lowercase`<br>`special` | `numeric`<br>`special` | `special` | `all` | `none` |\n| `all` | `all` | `all` | `all` | `all` | `all` | `all` | `none` |\n| `none` | `none` | `none` |  `none` | `none` | `none` | `none` | `none` |\n\n</details>","operationId":"changePasswordPoliciesConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePasswordPoliciesConfig"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPoliciesConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-90001":{"summary":"Invalid settings configuration","description":"\n* [-90001] Invalid settings configuration","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid settings configuration","errorCode":-90001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/policies/mfa":{"get":{"tags":["system-policies-config"],"summary":"Request MFA policies","description":"### Description:  \nRetrieve a list of multi-factor authentication policies.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> of the Provider Customer required.\n\n### Postcondition:\nList of configured multi-factor authentication policies is returned.\n\n### Further Information:\nNone.","operationId":"requestMfaPoliciesConfig","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaPoliciesConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-89000":{"summary":"This feature is not available in this product package","description":"\n* [-89000] This feature is not available in this product package","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-policies-config"],"summary":"Change MFA policies","description":"### Description:\nChange current multi-factor authentication policies.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nMulti-factor authentication policies are changed.  \n\n### Further Information:\nNone.","operationId":"changeMfaPoliciesConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMfaPoliciesConfig"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaPoliciesConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-89000":{"summary":"This feature is not available in this product package","description":"\n* [-89000] This feature is not available in this product package","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/policies/mfa/{user_type}":{"put":{"tags":["system-policies-config"],"summary":"Change MFA policies for internal/external users","description":"### Description:\nChange current multi-factor authentication policies for all users of specific user type.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nMulti-factor authentication policies are changed for all users of specific user type.  \n\n### Further Information:\nNone.","operationId":"changeMfaPoliciesConfigUserType","parameters":[{"name":"user_type","in":"path","description":"User type","required":true,"schema":{"type":"string","enum":["guest","internal"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMfaPoliciesConfig"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaPoliciesConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80074":{"summary":"Invalid user type","description":"\n* [-80074] Invalid user type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid user type","errorCode":-80074}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-89000":{"summary":"This feature is not available in this product package","description":"\n* [-89000] This feature is not available in this product package","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/policies/guest_users":{"get":{"tags":["system-policies-config"],"summary":"Request guest user policies","description":"### Description:  \nRetrieve guest user policies.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> of the Provider Customer required.\n\n### Postcondition:\nGuest user policies are returned.\n\n### Further Information:\nNone.","operationId":"requestGuestUsersPoliciesConfig","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestUsersPoliciesConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-policies-config"],"summary":"Change guest user policies","description":"### Description:\nChange current guest user policies.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nGuest user policies are changed.  \n\n### Further Information:\nNone.","operationId":"changeGuestUsersPoliciesConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGuestUsersPoliciesConfig"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestUsersPoliciesConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90100":{"summary":"License does not allow further provisioning","description":"\n* [-90100] License does not allow further provisioning","value":{"code":402,"message":"Payment Required","debugInfo":"License does not allow further provisioning","errorCode":-90100}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/policies/classifications":{"get":{"tags":["system-policies-config"],"summary":"Request classification policies","description":"### Description:  \nRetrieve a list of classification policies:\n* `shareClassificationPolicies`\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nList of configured classification policies is returned.\n\n### Further Information:\n`classificationRequiresSharePassword`: When a node has this classification or higher, it cannot be shared without a password. If the node is an encrypted file this policy has no effect. `0` means no password will be enforced.\n","operationId":"requestClassificationPoliciesConfig","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassificationPoliciesConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-policies-config"],"summary":"Change classification policies","description":"### Description:\nChange current classification policies:\n* `shareClassificationPolicies`\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nClassification policies are changed.\n\n### Further Information:\n`classificationRequiresSharePassword`: When a node has this classification or higher, it cannot be shared without a password. If the node is an encrypted file this policy has no effect. `0` means no password will be enforced.\n\n","operationId":"changeClassificationPoliciesConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateClassificationPoliciesConfig"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassificationPoliciesConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-90001":{"summary":"Invalid settings configuration","description":"\n* [-90001] Invalid settings configuration","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid settings configuration","errorCode":-90001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/oauth/clients/{client_id}":{"get":{"tags":["system-auth-config"],"summary":"Request OAuth client","description":"### Description:  \nRetrieve the configuration of an OAuth client.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOAuth client is returned.\n\n### Further Information:\nNone.","operationId":"requestOAuthClient","parameters":[{"name":"client_id","in":"path","description":"OAuth client ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthClient"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90080":{"summary":"OAuth client not found","description":"\n* [-90080] OAuth client not found","value":{"code":404,"message":"Not Found","debugInfo":"OAuth client not found","errorCode":-90080}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-auth-config"],"summary":"Update OAuth client","description":"### Description:  \nUpdate an existing OAuth client.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOAuth client updated.\n\n### Further Information:  \nClient secret **MUST** have:  \n* at least 12 characters, at most 32 characters  \n* only lower case characters, upper case characters and digits  \n* at least 1 lower case character, 1 upper case character and 1 digit  \n\nThe client secret is optional and will be generated for confidential clients if it is left empty.\n\nValid grant types are:  \n* `authorization_code`  \n* `implicit`  \n* `password`  \n* `client_credentials`  \n* `refresh_token`  \n\nGrant type `client_credentials` is currently **NOT** permitted!\n\nIf grant types `authorization_code` or `implicit` are used, a\nredirect URI **MUST** be provided!\n","operationId":"updateOAuthClient","parameters":[{"name":"client_id","in":"path","description":"OAuth client ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOAuthClientRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthClient"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-10002":{"summary":"Password is not secure","description":"\n* [-10002] Password is not secure","value":{"code":400,"message":"Bad Request","debugInfo":"Password is not secure","errorCode":-10002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80032":{"summary":"Invalid URI","description":"\n* [-80032] Invalid URI","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URI","errorCode":-80032}},"-90083":{"summary":"Invalid OAuth grant type","description":"\n* [-90083] Invalid OAuth grant type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid OAuth grant type","errorCode":-90083}},"-90085":{"summary":"Invalid OAuth token validity","description":"\n* [-90085] Invalid OAuth token validity","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid OAuth token validity","errorCode":-90085}},"-90087":{"summary":"OAuth client name already exists","description":"\n* [-90087] OAuth client name already exists","value":{"code":409,"message":"Conflict","debugInfo":"OAuth client name already exists","errorCode":-90087}},"-90091":{"summary":"OAuth grant type refresh token can only be used in combination with authorization code or password","description":"\n* [-90091] OAuth grant type refresh token can only be used in combination with authorization code or password","value":{"code":400,"message":"Bad Request","debugInfo":"OAuth grant type refresh token can only be used in combination with authorization code or password","errorCode":-90091}},"-90094":{"summary":"A public OAuth client must not contain a client secret","description":"\n* [-90094] A public OAuth client must not contain a client secret","value":{"code":400,"message":"Bad Request","debugInfo":"A public OAuth client must not contain a client secret","errorCode":-90094}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-89000":{"summary":"This feature is not available in this product package","description":"\n* [-89000] This feature is not available in this product package","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-90088":{"summary":"OAuth standard client cannot be changed","description":"\n* [-90088] OAuth standard client cannot be changed","value":{"code":403,"message":"Forbidden","debugInfo":"OAuth standard client cannot be changed","errorCode":-90088}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90080":{"summary":"OAuth client not found","description":"\n* [-90080] OAuth client not found","value":{"code":404,"message":"Not Found","debugInfo":"OAuth client not found","errorCode":-90080}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["system-auth-config"],"summary":"Remove OAuth client","description":"### Description:\nDelete an existing OAuth client.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOAuth client is removed.\n\n### Further Information:\nNone.","operationId":"removeOAuthClient","parameters":[{"name":"client_id","in":"path","description":"OAuth client ID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-90088":{"summary":"OAuth standard client cannot be changed","description":"\n* [-90088] OAuth standard client cannot be changed","value":{"code":403,"message":"Forbidden","debugInfo":"OAuth standard client cannot be changed","errorCode":-90088}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90080":{"summary":"OAuth client not found","description":"\n* [-90080] OAuth client not found","value":{"code":404,"message":"Not Found","debugInfo":"OAuth client not found","errorCode":-90080}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/auth/openid/idps/{idp_id}":{"get":{"tags":["system-auth-config"],"summary":"Request OpenID Connect IDP configuration","description":"### Description:  \nRetrieve an OpenID Connect IDP configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOpenID Connect IDP configuration is returned.\n\n### Further Information:\nNone.","externalDocs":{"description":"OpenID Specifications","url":"http://openid.net/developers/specs"},"operationId":"requestOpenIdIdpConfig","parameters":[{"name":"idp_id","in":"path","description":"OpenID Connect IDP configuration ID","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90035":{"summary":"OpenID Connect IDP configuration not found","description":"\n* [-90035] OpenID Connect IDP configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-auth-config"],"summary":"Update OpenID Connect IDP configuration","description":"### Description:  \nUpdate an existing OpenID Connect IDP configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOpenID Connect IDP configuration is updated.\n\n### Further Information:\nNone.","externalDocs":{"description":"OpenID Specifications","url":"http://openid.net/developers/specs"},"operationId":"updateOpenIdIdpConfig","parameters":[{"name":"idp_id","in":"path","description":"OpenID Connect IDP configuration ID","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOpenIdIdpConfigRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80010":{"summary":"Invalid URL","description":"\n* [-80010] Invalid URL","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URL","errorCode":-80010}},"-80032":{"summary":"Invalid URI","description":"\n* [-80032] Invalid URI","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URI","errorCode":-80032}},"-90049":{"summary":"Invalid OpenID Connect flow","description":"\n* [-90049] Invalid OpenID Connect flow","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid OpenID Connect flow","errorCode":-90049}},"-90086":{"summary":"Invalid PKCE code challenge method","description":"\n* [-90086] Invalid PKCE code challenge method","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid PKCE code challenge method","errorCode":-90086}},"-90074":{"summary":"Invalid OpenID Connect user info source","description":"\n* [-90074] Invalid OpenID Connect user info source","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid OpenID Connect user info source","errorCode":-90074}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-90075":{"summary":"OpenID Connect standard client cannot be changed","description":"\n* [-90075] OpenID Connect standard client cannot be changed","value":{"code":403,"message":"Forbidden","debugInfo":"OpenID Connect standard client cannot be changed","errorCode":-90075}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-90035":{"summary":"OpenID Connect IDP configuration not found","description":"\n* [-90035] OpenID Connect IDP configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90036":{"summary":"OpenID Connect IDP configuration with same name already exists","description":"\n* [-90036] OpenID Connect IDP configuration with same name already exists","value":{"code":409,"message":"Conflict","debugInfo":"OpenID Connect IDP configuration with same name already exists","errorCode":-90036}},"-90063":{"summary":"Cannot activate user import due to active users at other customers","description":"\n* [-90063] Cannot activate user import due to active users at other customers","value":{"code":409,"message":"Conflict","debugInfo":"Cannot activate user import due to active users at other customers","errorCode":-90063}},"-90047":{"summary":"Invalid OpenID Connect IDP configuration","description":"\n* [-90047] Invalid OpenID Connect IDP configuration","value":{"code":409,"message":"Bad Request","debugInfo":"Invalid OpenID Connect IDP configuration","errorCode":-90047}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["system-auth-config"],"summary":"Remove OpenID Connect IDP configuration","description":"### Description:\nDelete an existing OpenID Connect IDP configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOpenID Connect IDP configuration is removed.\n\n### Further Information:\nNone.","externalDocs":{"description":"OpenID Specifications","url":"http://openid.net/developers/specs"},"operationId":"removeOpenIdIdpConfig","parameters":[{"name":"idp_id","in":"path","description":"OpenID Connect IDP configuration ID","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-90075":{"summary":"OpenID Connect standard client cannot be changed","description":"\n* [-90075] OpenID Connect standard client cannot be changed","value":{"code":403,"message":"Forbidden","debugInfo":"OpenID Connect standard client cannot be changed","errorCode":-90075}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90035":{"summary":"OpenID Connect IDP configuration not found","description":"\n* [-90035] OpenID Connect IDP configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90038":{"summary":"Cannot delete OpenID Connect IDP configuration with active users","description":"\n* [-90038] Cannot delete OpenID Connect IDP configuration with active users","value":{"code":409,"message":"Conflict","debugInfo":"Cannot delete OpenID Connect IDP configuration with active users","errorCode":-90038}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/auth/ads/{ad_id}":{"get":{"tags":["system-auth-config"],"summary":"Request Active Directory configuration","description":"### Description:  \nRetrieve the configuration of an Active Directory.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> of the Provider Customer required.\n\n### Postcondition:\nActive Directory configuration is returned.\n\n### Further Information:\nNone.","operationId":"requestAdConfig","parameters":[{"name":"ad_id","in":"path","description":"Active Directory ID","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90050":{"summary":"Active Directory configuration not found","description":"\n* [-90050] Active Directory configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Active Directory configuration not found","errorCode":-90050}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["system-auth-config"],"summary":"Update Active Directory configuration","description":"### Description:  \nUpdate an existing Active Directory configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> of the Provider Customer required.\n\n### Postcondition:\nActive Directory configuration updated.\n\n### Further Information:\nNone.","operationId":"updateAdConfig","parameters":[{"name":"ad_id","in":"path","description":"Active Directory ID","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateActiveDirectoryConfigRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-90055":{"summary":"Invalid Active Directory configuration","description":"\n* [-90055] Invalid Active Directory configuration","value":{"code":502,"message":"Bad Gateway","debugInfo":"Invalid Active Directory configuration","errorCode":-90055}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-90050":{"summary":"Active Directory configuration not found","description":"\n* [-90050] Active Directory configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Active Directory configuration not found","errorCode":-90050}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90056":{"summary":"Active Directory name already exists","description":"\n* [-90056] Active Directory name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Active Directory name already exists","errorCode":-90056}},"-90063":{"summary":"Cannot activate user import due to active users at other customers","description":"\n* [-90063] Cannot activate user import due to active users at other customers","value":{"code":409,"message":"Conflict","debugInfo":"Cannot activate user import due to active users at other customers","errorCode":-90063}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["system-auth-config"],"summary":"Remove Active Directory configuration","description":"### Description:\nDelete an existing Active Directory configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> of the Provider Customer required.\n\n### Postcondition:\nActive Directory configuration is removed.\n\n### Further Information:\nNone.","operationId":"removeAdConfig","parameters":[{"name":"ad_id","in":"path","description":"Active Directory ID","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90050":{"summary":"Active Directory configuration not found","description":"\n* [-90050] Active Directory configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Active Directory configuration not found","errorCode":-90050}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90058":{"summary":"Cannot delete Active Directory configuration with active users","description":"\n* [-90058] Cannot delete Active Directory configuration with active users","value":{"code":409,"message":"Conflict","debugInfo":"Cannot delete Active Directory configuration with active users","errorCode":-90058}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/shares/uploads":{"get":{"tags":["shares"],"summary":"Request list of Upload Shares","description":"### Description:  \nRetrieve a list of Upload Shares (aka File Requests).\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of available Upload Shares is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical (**AND**). createdBy and updatedBy searches several user-related attributes.\nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:cn:searchString_1|createdBy:cn:searchString_2`  \nFilter by alias name contains `searchString_1` **AND** creator info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains `searchString_2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `name` | Alias name filter | `cn` | Alias name contains value. | `search String` |\n| `createdAt` | Creation date filter | `ge, le` | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| `createdBy` | Creator info filter | `cn, eq` | Creator info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains value. | `search String` |\n| `createdById` | Creator ID filter | `eq` | Creator ID equals value. | `positive Integer` |\n| `accessKey` | Share access key filter | `cn` | Share access key contains values. | `search String` |\n| `userId` | Creator user ID | `eq` | Creator user ID equals value. | `positive Integer` |\n| `targetId` | Target node ID | `eq` | Target node (room, folder) ID equals value. | `positive Integer` |\n| `updatedBy` | Modifier info filter | `cn, eq` | Modifier info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains value. | `search String` |\n| `updatedById` | Modifier ID filter | `eq` | Modifier ID equals value. | `positive Integer` |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`targetId`</del> | Target node ID | `cn` | Target node (room, folder) ID equals value. | `positive Integer` |\n| <del>`userId` </del>| Creator user ID | `eq` | Creator user ID equals value. Use `createdById` instead. | `positive Integer` |\n\n</details>\n\n---\n\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:asc|expireAt:desc`  \nSort by `name` ascending **AND** by `expireAt` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Alias name |\n| `notifyCreator` | Notify creator on every upload |\n| `expireAt` | Expiration date |\n| `createdAt` | Creation date |\n| `createdBy` | Creator first name, last name |\n\n</details>","operationId":"requestUploadShares","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShareList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["shares"],"summary":"Update List of Upload Shares","description":"### Description:\nUpdate a list of existing Upload Shares (aka File Request).\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span> permissions on target container.\n\n### Postcondition:\nUpload Shares successfully updated.\n\n### Further Information:\nMaximum number of shares is 200","operationId":"updateUploadShares","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUploadSharesBulkRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-60500":{"summary":"Upload Share not found","description":"\n* [-60500] Upload Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload Share not found","errorCode":-60500}}}}}},"406":{"description":"Not Acceptable","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"502":{"description":"Bad Gateway","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90090":{"summary":"Could not send text message via SMS","description":"\n* [-90090] Could not send text message via SMS","value":{"code":502,"message":"Bad Gateway","debugInfo":"Could not send text message via SMS","errorCode":-90090}}}}}}}},"post":{"tags":["shares"],"summary":"Create new Upload Share","description":"### Description:\nCreate a new Upload Share (aka File Request).\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span> permissions on target container.\n\n### Postcondition:\nUpload Share is created.\n\n### Further Information:\n\n* `name` is limited to **150** characters.\n* `notes` are limited to **255** characters.\n* `password` is limited to **1024** characters.\n\nForbidden characters in passwords: [`&`, `'`, `<`, `>`].\n\nForbidden characters in share names: [`<`, `>`].\n\nUse `POST /shares/uploads/{share_id}/email` API for sending emails.\n\nPlease keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters\nmay not be displayed correctly in short messages (SMS).","operationId":"createUploadShare","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUploadShareRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-10002":{"summary":"Password is not secure","description":"\n* [-10002] Password is not secure","value":{"code":400,"message":"Bad Request","debugInfo":"Password is not secure","errorCode":-10002}},"-10013":{"summary":"Not valid IETF language tag","description":"\n* [-10013] Not valid IETF language tag","value":{"code":400,"message":"Bad Request","debugInfo":"Not valid IETF language tag","errorCode":-10013}},"-41200":{"summary":"Path is too long","description":"\n* [-41200] Path is too long","value":{"code":400,"message":"Bad Request","debugInfo":"Path is too long","errorCode":-41200}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}},"-80009":{"summary":"Invalid email address","description":"\n* [-80009] Invalid email address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid email address","errorCode":-80009}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}},"-80030":{"summary":"SMS disabled","description":"\n* [-80030] SMS disabled","value":{"code":400,"message":"Bad Request","debugInfo":"SMS disabled","errorCode":-80030}},"-80040":{"summary":"Invalid phone number","description":"\n* [-80040] Invalid phone number\n\nMust be a FQTN (cf. E.123 / E.164 Format)","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid phone number","errorCode":-80040}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90090":{"summary":"Could not send text message via SMS","description":"\n* [-90090] Could not send text message via SMS","value":{"code":502,"message":"Bad Gateway","debugInfo":"Could not send text message via SMS","errorCode":-90090}}}}}}}},"delete":{"tags":["shares"],"summary":"Remove Upload Shares","description":"### Functional Description:\nDelete multiple Upload Shares (aka Upload Accounts).\n\n### Precondition:\nUser has _\"manage upload share\"_ permissions on target containers.\n\n### Postcondition:\nUpload Shares are deleted.\n\n### Further Information:\nOnly the Upload Shares are removed; already uploaded files and the target container persist.","operationId":"deleteUploadShares","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUploadSharesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-60500":{"summary":"Upload Share not found","description":"\n* [-60500] Upload Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload Share not found","errorCode":-60500}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/shares/uploads/{share_id}":{"get":{"tags":["shares"],"summary":"Request Upload Share","description":"### Description:  \nRetrieve detailed information about one Upload Share (aka File Request).\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span> permissions on target container.\n\n### Postcondition:\nUpload Share is returned.\n\n### Further Information:\nNone.","operationId":"requestUploadShare","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60500":{"summary":"Upload Share not found","description":"\n* [-60500] Upload Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload Share not found","errorCode":-60500}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["shares"],"summary":"Update Upload Share","description":"### Description:\nUpdate existing Upload Share (aka File Request).\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span> permissions on target container.\n\n### Postcondition:\nUpload Share successfully updated.\n\n### Further Information:\n\n* `name` is limited to **150** characters.\n* `notes` are limited to **255** characters.\n* `password` is limited to **1024** characters.\n\nForbidden characters in passwords: [`&`, `'`, `<`, `>`].\n\nForbidden characters in share names: [`<`, `>`].\n\nPlease keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters\nmay not be displayed correctly in short messages (SMS).","operationId":"updateUploadShare","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUploadShareRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-10002":{"summary":"Password is not secure","description":"\n* [-10002] Password is not secure","value":{"code":400,"message":"Bad Request","debugInfo":"Password is not secure","errorCode":-10002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80030":{"summary":"SMS disabled","description":"\n* [-80030] SMS disabled","value":{"code":400,"message":"Bad Request","debugInfo":"SMS disabled","errorCode":-80030}},"-80040":{"summary":"Invalid phone number","description":"\n* [-80040] Invalid phone number\n\nMust be a FQTN (cf. E.123 / E.164 Format)","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid phone number","errorCode":-80040}},"-80041":{"summary":"Invalid country code","description":"\n* [-80041] Invalid country code\n\nMust be a valid two-letter code (cf. ISO 3166-2)","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid country code","errorCode":-80041}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-60500":{"summary":"Upload Share not found","description":"\n* [-60500] Upload Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload Share not found","errorCode":-60500}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90090":{"summary":"Could not send text message via SMS","description":"\n* [-90090] Could not send text message via SMS","value":{"code":502,"message":"Bad Gateway","debugInfo":"Could not send text message via SMS","errorCode":-90090}}}}}}}},"delete":{"tags":["shares"],"summary":"Remove Upload Share","description":"### Description:\nDelete an Upload Share (aka File Request).\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span> permissions on target container.\n\n### Postcondition:\nUpload Share is deleted.\n\n### Further Information:\nOnly the Upload Share is removed; already uploaded files and the target container persist.","operationId":"removeUploadShare","parameters":[{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-60500":{"summary":"Upload Share not found","description":"\n* [-60500] Upload Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload Share not found","errorCode":-60500}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/shares/downloads":{"get":{"tags":["shares"],"summary":"Request list of Download Shares","description":"### Description:  \nRetrieve a list of Download Shares.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of available Download Shares is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical (**AND**). createdBy and updatedBy searches several user-related attributes.\n\nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:cn:searchString_1|createdBy:cn:searchString_2`\nFilter by file name contains `searchString_1` **AND** creator info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains `searchString_2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `name` | Alias or node name filter | `cn` | Alias or node name contains value. | `search String` |\n| `createdAt` | Creation date filter | `ge, le` | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| `createdBy` | Creator info filter | `cn, eq` | Creator info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains value. | `search String` |\n| `createdById` | Creator ID filter | `eq` | Creator ID equals value. | `positive Integer` |\n| `accessKey` | Share access key filter | `cn` | Share access key contains values. | `search String` |\n| `nodeId` | Source node ID | `eq` | Source node (room, folder, file) ID equals value. | `positive Integer` |\n| `updatedBy` | Modifier info filter | `cn, eq` | Modifier info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains value. | `search String` |\n| `updatedById` | Modifier ID filter | `eq` | Modifier ID equals value. | `positive Integer` |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`userId`</del>  | Creator user ID | `eq` | Creator user ID equals value. Use `createdById` instead | `positive Integer` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:asc|expireAt:desc`  \nSort by `name` ascending **AND** by `expireAt` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Alias or node name |\n| `notifyCreator` | Notify creator on every download |\n| `expireAt` | Expiration date |\n| `createdAt` | Creation date |\n| `createdBy` | Creator first name, last name |\n| `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |\n\n</details>\n","operationId":"requestDownloadShares","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShareList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["shares"],"summary":"Update a list of Download Shares","description":"### Description:\nUpdate a list of existing Download Shares.\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span> permissions on target node.\n\n### Postcondition:\nDownload Shares are successfully updated.\n\n### Further Information:\nMaximum number of shares is 200","operationId":"updateDownloadShares","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDownloadSharesBulkRequest"}}},"required":true},"responses":{"200":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60000":{"summary":"Download Share not found","description":"\n* [-60000] Download Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Download Share not found","errorCode":-60000}}}}}},"406":{"description":"Not Acceptable","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"502":{"description":"Bad Gateway","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90090":{"summary":"Could not send text message via SMS","description":"\n* [-90090] Could not send text message via SMS","value":{"code":502,"message":"Bad Gateway","debugInfo":"Could not send text message via SMS","errorCode":-90090}}}}}},"204":{"description":"No Content"}}},"post":{"tags":["shares"],"summary":"Create new Download Share","description":"### Description:\nCreate a new Download Share.\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span> permissions on target node.\n\n### Postcondition:\nDownload Share is created.\n\n### Further Information:\n\nIf the target node is a room: subordinary rooms are excluded from a Download Share.\n\n* `name` is limited to **150** characters.\n* `notes` are limited to **255** characters.\n* `password` is limited to **1024** characters.\n\nUse `POST /shares/downloads/{share_id}/email` API for sending emails.  \n\nForbidden characters in passwords: [`&`, `'`, `<`, `>`].\n\nForbidden characters in share names: [`<`, `>`].\n\nPlease keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters\nmay not be displayed correctly in short messages (SMS).","operationId":"createDownloadShare","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDownloadShareRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-10002":{"summary":"Password is not secure","description":"\n* [-10002] Password is not secure","value":{"code":400,"message":"Bad Request","debugInfo":"Password is not secure","errorCode":-10002}},"-10013":{"summary":"Not valid IETF language tag","description":"\n* [-10013] Not valid IETF language tag","value":{"code":400,"message":"Bad Request","debugInfo":"Not valid IETF language tag","errorCode":-10013}},"-50003":{"summary":"Password for encrypted Download Shares not allowed","description":"\n* [-50003] Password for encrypted Download Shares not allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Password for encrypted Download Shares not allowed","errorCode":-50003}},"-50004":{"summary":"Download Shares of encrypted containers not allowed","description":"\n* [-50004] Download Shares of encrypted containers not allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Download Shares of encrypted containers not allowed","errorCode":-50004}},"-50005":{"summary":"File key must be set on Download Share in encrypted containers","description":"\n* [-50005] File key must be set on Download Share in encrypted containers","value":{"code":400,"message":"Bad Request","debugInfo":"File key must be set on Download Share in encrypted containers","errorCode":-50005}},"-50006":{"summary":"Keypair must be set on Download Share in encrypted containers","description":"\n* [-50006] Keypair must be set on Download Share in encrypted containers","value":{"code":400,"message":"Bad Request","debugInfo":"Keypair must be set on Download Share in encrypted containers","errorCode":-50006}},"-50007":{"summary":"Download Shares in unencrypted rooms must not have keys","description":"\n* [-50007] Download Shares in unencrypted rooms must not have keys","value":{"code":400,"message":"Bad Request","debugInfo":"Download Shares in unencrypted rooms must not have keys","errorCode":-50007}},"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-70023":{"summary":"Invalid private key format","description":"\n* [-70023] Invalid private key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid private key format","errorCode":-70023}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}},"-80009":{"summary":"Invalid email address","description":"\n* [-80009] Invalid email address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid email address","errorCode":-80009}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}},"-80030":{"summary":"SMS disabled","description":"\n* [-80030] SMS disabled","value":{"code":400,"message":"Bad Request","debugInfo":"SMS disabled","errorCode":-80030}},"-80040":{"summary":"Invalid phone number","description":"\n* [-80040] Invalid phone number\n\nMust be a FQTN (cf. E.123 / E.164 Format)","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid phone number","errorCode":-80040}},"-80062":{"summary":"Invalid File key","description":"\n* [-80062] Invalid File key","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid File key","errorCode":-80062}},"-80064":{"summary":"Policy Violation","description":"\n* [-80064] Policy Violation","value":{"code":400,"message":"Bad Request","debugInfo":"Policy Violation","errorCode":-80064}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90090":{"summary":"Could not send text message via SMS","description":"\n* [-90090] Could not send text message via SMS","value":{"code":502,"message":"Bad Gateway","debugInfo":"Could not send text message via SMS","errorCode":-90090}}}}}}}},"delete":{"tags":["shares"],"summary":"Remove Download Shares","description":"### Functional Description:\nDelete multiple Download Shares.\n\n### Precondition:\nUser with _\"manage download share\"_ permissions on target nodes.\n\n### Postcondition:\nDownload Shares are deleted.\n\n### Further Information:\nOnly the Download Shares are removed; the referenced files or containers persists.","operationId":"deleteDownloadShares","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDownloadSharesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-60000":{"summary":"Download Share not found","description":"\n* [-60000] Download Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Download Share not found","errorCode":-60000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/shares/downloads/{share_id}":{"get":{"tags":["shares"],"summary":"Request Download Share","description":"### Description:  \nRetrieve detailed information about one Download Share.\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span> permissions on target node.\n\n### Postcondition:\nDownload Share is returned\n\n### Further Information:\nNone.","operationId":"requestDownloadShare","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60000":{"summary":"Download Share not found","description":"\n* [-60000] Download Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Download Share not found","errorCode":-60000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["shares"],"summary":"Update Download Share","description":"### Description:\nUpdate an existing Download Share.\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span> permissions on target node.\n\n### Postcondition:\nDownload Share is successfully updated.\n\n### Further Information:\n* `name` is limited to **150** characters.\n* `notes` are limited to **255** characters.\n* `password` is limited to **1024** characters.\n\nForbidden characters in passwords: [`&`, `'`, `<`, `>`].\n\nForbidden characters in share names: [`<`, `>`].\n\nPlease keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters\nmay not be displayed correctly in short messages (SMS).","operationId":"updateDownloadShare","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDownloadShareRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-10002":{"summary":"Password is not secure","description":"\n* [-10002] Password is not secure","value":{"code":400,"message":"Bad Request","debugInfo":"Password is not secure","errorCode":-10002}},"-10013":{"summary":"Not valid IETF language tag","description":"\n* [-10013] Not valid IETF language tag","value":{"code":400,"message":"Bad Request","debugInfo":"Not valid IETF language tag","errorCode":-10013}},"-50003":{"summary":"Password for encrypted Download Shares not allowed","description":"\n* [-50003] Password for encrypted Download Shares not allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Password for encrypted Download Shares not allowed","errorCode":-50003}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80030":{"summary":"SMS disabled","description":"\n* [-80030] SMS disabled","value":{"code":400,"message":"Bad Request","debugInfo":"SMS disabled","errorCode":-80030}},"-80040":{"summary":"Invalid phone number","description":"\n* [-80040] Invalid phone number\n\nMust be a FQTN (cf. E.123 / E.164 Format)","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid phone number","errorCode":-80040}},"-80041":{"summary":"Invalid country code","description":"\n* [-80041] Invalid country code\n\nMust be a valid two-letter code (cf. ISO 3166-2)","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid country code","errorCode":-80041}},"-80064":{"summary":"Policy Violation","description":"\n* [-80064] Policy Violation","value":{"code":400,"message":"Bad Request","debugInfo":"Policy Violation","errorCode":-80064}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-60000":{"summary":"Download Share not found","description":"\n* [-60000] Download Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Download Share not found","errorCode":-60000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90090":{"summary":"Could not send text message via SMS","description":"\n* [-90090] Could not send text message via SMS","value":{"code":502,"message":"Bad Gateway","debugInfo":"Could not send text message via SMS","errorCode":-90090}}}}}}}},"delete":{"tags":["shares"],"summary":"Remove Download Share","description":"### Description:\nDelete a Download Share.\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span> permissions on target node.\n\n### Postcondition:\nDownload Share is deleted.\n\n### Further Information:\nOnly the Download Share is removed; the referenced file or container persists.","operationId":"removeDownloadShare","parameters":[{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-60000":{"summary":"Download Share not found","description":"\n* [-60000] Download Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Download Share not found","errorCode":-60000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/settings":{"get":{"tags":["settings"],"summary":"Request customer settings","description":"### Description:  \nRetrieve customer related settings. \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read config</span> required.\n\n### Postcondition:\nList of available settings is returned.\n\n### Further Information:\nNone.\n\n### Configurable customer settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description                                                                                                                                                           | Value |\n| :--- |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- |\n| `homeRoomParentName` | Name of the container in which all user's home rooms are located.<br>`null` if `homeRoomsActive` is `false`.                                                          | `String` |\n| `homeRoomQuota` | Refers to the quota of each single user's home room.<br>`0` represents no quota.<br>`null` if `homeRoomsActive` is `false`.                                           | `positive Long` |\n| `homeRoomsActive` | If set to `true`, every user with an Active Directory account or OpenID Connect account gets a personal homeroom.<br>Once activated, this **CANNOT** be deactivated. | `true or false` |\n\n\n</details>","operationId":"requestSettings","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerSettingsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["settings"],"summary":"Set customer settings","description":"### Description:  \nSet customer related settings.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> required.\n\n### Postcondition:\nProvided settings are updated.\n\n### Further Information:\nNone.\n\n### Configurable customer settings\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description                                                                                                                                                          | Value |\n| :--- |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- |\n| `homeRoomParentName` | Name of the container in which all user's home rooms are located.<br>`null` if `homeRoomsActive` is `false`.                                                         | `String` |\n| `homeRoomQuota` | Refers to the quota of each single user's home room.<br>`0` represents no quota.<br>`null` if `homeRoomsActive` is `false`.                                          | `positive Long` |\n| `homeRoomsActive` | If set to `true`, every user with an Active Directory account or OpenID Connect account gets a personal homeroom.<br>Once activated, this **CANNOT** be deactivated. | `true or false` |\n\n</details>\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `\n","operationId":"setSettings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerSettingsRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerSettingsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Node already exists","description":"Node with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Node with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/settings/webhooks/{webhook_id}":{"get":{"tags":["settings"],"summary":"Request webhook","description":"### Description:  \nGet a specific webhook for the customer scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.\n\n### Postcondition:\nWebhook is returned.\n\n### Further Information:\nNone.","operationId":"requestWebhook","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["settings"],"summary":"Update webhook","description":"### Description:  \nUpdate an existing webhook for the customer scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.\n\n### Postcondition:\nWebhook is updated.\n\n### Further Information:\nURL must begin with the `HTTPS` scheme.\nWebhook names are limited to 150 characters.\nWebhook event types can not be changed from Customer Admin Webhook types to Node Webhook types and vice versa  \n\n### Available event types:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Name | Description | Scope |\n| :--- | :--- | :--- |\n| **`user.created`** | Triggered when a new user is created | Customer Admin Webhook |\n| **`user.deleted`** | Triggered when a user is deleted | Customer Admin Webhook |\n| **`user.locked`** | Triggered when a user gets locked | Customer Admin Webhook |\n|  |  |  |\n| **`webhook.expiring`** | Triggered 30/20/10/1 days before a webhook expires |  Customer Admin Webhook |\n|  |  |  |\n| **`downloadshare.created`** | Triggered when a new download share is created in affected room | Node Webhook |\n| **`downloadshare.deleted`** | Triggered when a download share is deleted in affected room | Node Webhook |\n| **`downloadshare.used`** | Triggered when a download share is utilized in affected room | Node Webhook |\n| **`uploadshare.created`** | Triggered when a new upload share is created in affected room | Node Webhook |\n| **`uploadshare.deleted`** | Triggered when a upload share is deleted in affected room | Node Webhook |\n| **`uploadshare.used`** | Triggered when a new file is uploaded via the upload share in affected room | Node Webhook |\n| **`file.created`** | Triggered when a new file is uploaded in affected room | Node Webhook |\n| **`folder.created`** | Triggered when a new folder is created in affected room | Node Webhook |\n| **`room.created`** | Triggered when a new room is created (in affected room) | Node Webhook |\n| **`file.deleted`** | Triggered when a file is deleted in affected room | Node Webhook |\n| **`folder.deleted`** | Triggered when a folder is deleted in affected room | Node Webhook |\n| **`room.deleted`** | Triggered when a room is deleted in affected room | Node Webhook |\n\n</details>","operationId":"updateWebhook","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80010":{"summary":"Invalid URL","description":"\n* [-80010] Invalid URL","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URL","errorCode":-80010}},"-80060":{"summary":"Invalid event type","description":"\n* [-80060] Invalid event type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid event type","errorCode":-80060}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["settings"],"summary":"Remove webhook","description":"### Description:  \nDelete a webhook for the customer scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.\n\n### Postcondition:\nWebhook is deleted.\n\n### Further Information:\nNone.","operationId":"removeWebhook","parameters":[{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/settings/notifications/channels":{"get":{"tags":["settings"],"summary":"Request list of notification channels","description":"### Description:  \nRetrieve a list of configured notification channels.\n\n### Precondition:\nRight _\"change config\"_ required.\n\n### Postcondition:\nList of notification channels is returned.\n\n### Further Information:\nNone.\n","operationId":"requestNotificationChannels","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["settings"],"summary":"Toggle notification channels","description":"### Description:  \nToggle configured notification channels.\n\n### Precondition:\nRight _\"change config\"_ required.\n\n### Postcondition:\nChannel status is switched.\n\n### Further Information:\nNone.\n","operationId":"toggleNotificationChannels","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelActivationRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70121":{"summary":"Notification channel not found","description":"\n* [-70121] Notification channel not found","value":{"code":400,"message":"Bad Request","debugInfo":"Notification channel not found","errorCode":-70121}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/public/shares/uploads/{access_key}/{upload_id}":{"get":{"tags":["public"],"summary":"Request status of S3 file upload","description":"### Description:\nRequest status of a S3 file upload.\n\n### Precondition:\nAn upload channel has been created and the user has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; create</span> permissions in the parent container (room or folder).\n\n### Postcondition:\nStatus of S3 multipart upload request is returned.\n\n### Further Information:\nNone.\n\n### Possible errors:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status | Error Code | Description |\n| :--- | :--- | :--- |\n| `400 Bad Request` | `-80000` | Mandatory fields cannot be empty |\n| `400 Bad Request` | `-80001` | Invalid positive number |\n| `400 Bad Request` | `-80002` | Invalid number |\n| `400 Bad Request` | `-40001` | (Target) room is not encrypted |\n| `400 Bad Request` | `-40755` | Bad file name |\n| `400 Bad Request` | `-40763` | File key must be set for an upload into encrypted room |\n| `400 Bad Request` | `-50506` | Exceeds the number of files for this Upload Share |\n| `403 Forbidden` |  | Access denied |\n| `404 Not Found` | `-20501` | Upload not found |\n| `404 Not Found` | `-40000` | Container not found |\n| `404 Not Found` | `-41000` | Node not found |\n| `404 Not Found` | `-70501` | User not found |\n| `409 Conflict` | `-40010` | Container cannot be overwritten |\n| `409 Conflict` |  | File cannot be overwritten |\n| `500 Internal Server Error` |  | System Error |\n| `502 Bad Gateway` |  | S3 Error |\n| `502 Insufficient Storage` | `-50504` | Exceeds the quota for this Upload Share |\n| `502 Insufficient Storage` | `-40200` | Exceeds the free node quota in room |\n| `502 Insufficient Storage` | `-90200` | Exceeds the free customer quota |\n\n</details>","operationId":"requestUploadStatusPublic","parameters":[{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}},{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3ShareUploadStatus"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-90034":{"summary":"Corresponding S3 upload ID not found","description":"\n* [-90034] Corresponding S3 upload ID not found","value":{"code":404,"message":"Not Found","debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}}},"security":[]},"put":{"tags":["public"],"summary":"Complete file upload","description":"### Description:\nFinalize (chunked) upload via Upload Share.\n\n### Precondition:\nValid upload ID.  \nOnly returns users that owns one of the following permissions: <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span>\n\n### Postcondition:\nFinalizes upload.\n\n### Further Information:\nChunked uploads (range requests) are supported.  \n\nPlease ensure that all chunks have been transferred correctly before finishing the upload.  \nIf file hash has been created in time a `201 Created` will be responded and hash will be part of response, otherwise it will be a `202 Accepted` without it.\n","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"completeFileUploadViaShare","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}},{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFileKeyList"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUploadedFileData"}}}},"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUploadedFileData"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-40763":{"summary":"File key must be set for an upload into encrypted room","description":"\n* [-40763] File key must be set for an upload into encrypted room","value":{"code":400,"message":"Bad Request","debugInfo":"File key must be set for an upload into encrypted room","errorCode":-40763}},"-50505":{"summary":"No room user has a keypair","description":"\n* [-50505] No room user has a keypair","value":{"code":400,"message":"Bad Request","debugInfo":"No room user has a keypair","errorCode":-50505}},"-50506":{"summary":"Exceeds the number of files for this Upload Share","description":"\n* [-50506] Exceeds the number of files for this Upload Share","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-50501":{"summary":"Upload access key not found","description":"\n* [-50501] Upload access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload access key not found","errorCode":-50501}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90027":{"summary":"S3 connection failed","description":"\n* [-90027] S3 connection failed","value":{"code":504,"message":"Gateway Timeout","debugInfo":"S3 connection failed","errorCode":-90027}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-50504":{"summary":"Exceeds the quota for this Upload Share","description":"\n* [-50504] Exceeds the quota for this Upload Share","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}},"security":[]},"post":{"tags":["public"],"summary":"Upload file","description":"### Description:  \nChunked upload of files via Upload Share.\n\n### Precondition:\nValid upload ID.\n\n### Postcondition:\nChunk of file is uploaded.\n\n### Further Information:\nChunked uploads (range requests) are supported.\n\nFollowing `Content-Types` are supported by this API:\n* `multipart/form-data`\n* provided `Content-Type`  \n\nFor both file upload types set the correct `Content-Type` header and body.  \n\n### Examples:  \n\n* `multipart/form-data`\n```\nPOST /api/v4/public/shares/uploads/{access_key}{upload_id} HTTP/1.1\n\nHeader:\n...\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n...\n\nBody:\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"file\"; filename=\"file.txt\"\nContent-Type: text/plain\n\nContent of file.txt\n------WebKitFormBoundary7MA4YWxkTrZu0gW--\n```\n\n* any other `Content-Type`  \n```\nPOST /api/v4/public/shares/uploads/{access_key}{upload_id} HTTP/1.1\n\nHeader:\n...\nContent-Type: { ... }\n...\n\nBody:\nraw content\n```","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"uploadFileAsMultipartPublic","parameters":[{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}},{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}},{"name":"Content-Range","in":"header","description":"Content-Range \n\ne.g. `bytes 0-999/3980`","required":false,"schema":{"type":"string"}},{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","description":"File","format":"binary"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50505":{"summary":"No room user has a keypair","description":"\n* [-50505] No room user has a keypair","value":{"code":400,"message":"Bad Request","debugInfo":"No room user has a keypair","errorCode":-50505}},"-50506":{"summary":"Exceeds the number of files for this Upload Share","description":"\n* [-50506] Exceeds the number of files for this Upload Share","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80021":{"summary":"Incorrect upload Content-Range","description":"\n* [-80021] Incorrect upload Content-Range","value":{"code":400,"message":"Bad Request","debugInfo":"Incorrect upload Content-Range","errorCode":-80021}},"-80037":{"summary":"Exceeds maximum data length for AES GCM encryption","description":"\n* [-80037] Exceeds maximum data length for AES GCM encryption","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds maximum data length for AES GCM encryption","errorCode":-80037}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-50501":{"summary":"Upload access key not found","description":"\n* [-50501] Upload access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload access key not found","errorCode":-50501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-50504":{"summary":"Exceeds the quota for this Upload Share","description":"\n* [-50504] Exceeds the quota for this Upload Share","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}},"security":[]},"delete":{"tags":["public"],"summary":"Cancel file upload","description":"### Description:\nAbort (chunked) upload via Upload Share.\n\n### Precondition:\nValid Upload ID.\n\n### Postcondition:\nAborts upload and invalidates upload ID / token.\n\n### Further Information:\nNone.","operationId":"cancelFileUploadViaShare","parameters":[{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}},{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50506":{"summary":"Exceeds the number of files for this Upload Share","description":"\n* [-50506] Exceeds the number of files for this Upload Share","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-50501":{"summary":"Upload access key not found","description":"\n* [-50501] Upload access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload access key not found","errorCode":-50501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90027":{"summary":"S3 connection failed","description":"\n* [-90027] S3 connection failed","value":{"code":504,"message":"Gateway Timeout","debugInfo":"S3 connection failed","errorCode":-90027}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50504":{"summary":"Exceeds the quota for this Upload Share","description":"\n* [-50504] Exceeds the quota for this Upload Share","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}},"security":[]}},"/v4/public/shares/uploads/{access_key}/{upload_id}/s3":{"put":{"tags":["public"],"summary":"Complete S3 file upload","description":"### Description:\nFinishes a S3 file upload and closes the corresponding upload channel.\n\n### Precondition:\nValid upload ID.  \nOnly returns users that owns one of the following permissions: <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span>\n\n### Postcondition:\nUpload channel is closed. S3 multipart upload request is completed.\n\n### Further Information:\nNone.\n","operationId":"completeS3FileUploadViaShare","parameters":[{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}},{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteS3ShareUploadRequest"}}},"required":true},"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20503":{"summary":"Upload channel is closed","description":"\n* [-20503] Upload channel is closed","value":{"code":400,"message":"Bad Request","debugInfo":"Upload channel is closed","errorCode":-20503}},"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-40763":{"summary":"File key must be set for an upload into encrypted room","description":"\n* [-40763] File key must be set for an upload into encrypted room","value":{"code":400,"message":"Bad Request","debugInfo":"File key must be set for an upload into encrypted room","errorCode":-40763}},"-50505":{"summary":"No room user has a keypair","description":"\n* [-50505] No room user has a keypair","value":{"code":400,"message":"Bad Request","debugInfo":"No room user has a keypair","errorCode":-50505}},"-50506":{"summary":"Exceeds the number of files for this Upload Share","description":"\n* [-50506] Exceeds the number of files for this Upload Share","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80045":{"summary":"Invalid Etag(s)","description":"\n* [-80045] Invalid Etag(s)","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid Etag(s)","errorCode":-80045}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-50501":{"summary":"Upload access key not found","description":"\n* [-50501] Upload access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload access key not found","errorCode":-50501}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}},"-90034":{"summary":"Corresponding S3 upload ID not found","description":"\n* [-90034] Corresponding S3 upload ID not found","value":{"code":404,"message":"Not Found","debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}}},"security":[]}},"/v4/provisioning/webhooks/{webhook_id}":{"get":{"tags":["provisioning"],"summary":"Request tenant webhook","description":"### Description:  \nGet a specific webhook for the tenant scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.\n\n### Postcondition:\nWebhook is returned.\n\n### Further Information:\nNone.","operationId":"requestTenantWebhook","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"put":{"tags":["provisioning"],"summary":"Update tenant webhook","description":"### Description:  \nUpdate an existing webhook for the tenant scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.\n\n### Postcondition:\nWebhook is updated.\n\n### Further Information:\nURL must begin with the `HTTPS` scheme.\nWebhook names are limited to 150 characters.\n\n### Available event types:\n\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Name | Description | Scope |\n| :--- | :--- | :--- |\n| **`customer.created`** | Triggered when a new customer is created | Tenant Webhook |\n| **`customer.deleted`** | Triggered when a user is deleted | Tenant Webhook |\n| **`webhook.expiring`** | Triggered 30/20/10/1 days before a webhook expires |  Tenant Webhook |\n\n</details>","operationId":"updateTenantWebhook","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80010":{"summary":"Invalid URL","description":"\n* [-80010] Invalid URL","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URL","errorCode":-80010}},"-80060":{"summary":"Invalid event type","description":"\n* [-80060] Invalid event type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid event type","errorCode":-80060}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"delete":{"tags":["provisioning"],"summary":"Remove tenant webhook","description":"### Description:  \nDelete a webhook for the tenant scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.\n\n### Postcondition:\nWebhook is deleted.\n\n### Further Information:\nNone.","operationId":"removeTenantWebhook","parameters":[{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/provisioning/customers/{customer_id}":{"get":{"tags":["provisioning"],"summary":"Get customer","description":"### Description:  \nReceive details of a selected customer.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required.\n\n### Postcondition:\nCustomer details are returned.\n\n### Further Information:\nNone.","operationId":"requestCustomer","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"customer_id","in":"path","description":"Customer ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"include_attributes","in":"query","description":"Include custom customer attributes.","required":false,"schema":{"type":"boolean"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90103":{"summary":"Customer not found","description":"\n* [-90103] Customer not found","value":{"code":404,"message":"Not Found","debugInfo":"Customer not found","errorCode":-90103}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"put":{"tags":["provisioning"],"summary":"Update customer","description":"### Description:  \nChange selected attributes of a customer.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required.\n\n### Postcondition:\nSelected attributes of customer are updated.\n\n### Further Information:\nNone.","operationId":"updateCustomer","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"customer_id","in":"path","description":"Customer ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-90111":{"summary":"Invalid customer contract type transition","description":"\n* [-90111] Invalid customer contract type transition","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid customer contract type transition","errorCode":-90111}},"-90510":{"summary":"Maximum quota must not be less than one MB","description":"\n* [-90510] Maximum quota must not be less than one MB","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum quota must not be less than one MB","errorCode":-90510}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90100":{"summary":"License does not allow further provisioning","description":"\n* [-90100] License does not allow further provisioning","value":{"code":402,"message":"Payment Required","debugInfo":"License does not allow further provisioning","errorCode":-90100}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90103":{"summary":"Customer not found","description":"\n* [-90103] Customer not found","value":{"code":404,"message":"Not Found","debugInfo":"Customer not found","errorCode":-90103}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"delete":{"tags":["provisioning"],"summary":"Remove customer","description":"### Description:\nDelete a customer.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required.\n\n### Postcondition:\nCustomer is deleted.\n\n### Further Information:\nNone.","operationId":"removeCustomer","parameters":[{"name":"customer_id","in":"path","description":"Customer ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90103":{"summary":"Customer not found","description":"\n* [-90103] Customer not found","value":{"code":404,"message":"Not Found","debugInfo":"Customer not found","errorCode":-90103}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/provisioning/customers/{customer_id}/customerAttributes":{"get":{"tags":["provisioning"],"summary":"Request customer attributes","description":"### Description:  \nRetrieve a list of customer attributes.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required.  \nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read all customers</span> required.\n\n### Postcondition:\nList of attributes is returned.\n\n### Further Information:\n\n### Filtering:\nFilters are case insensitive.  \nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`key:cn:searchString_1|value:cn:searchString_2`  \nFilter by attribute key contains `searchString_1` **AND** attribute value contains `searchString_2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `key` | Customer attribute key filter | `cn, eq, sw` | Attribute key contains / equals / starts with value. | `search String` |\n| `value` | Customer attribute value filter | `cn, eq, sw` | Attribute value contains / equals / starts with value. | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`key:asc|value:desc`  \nSort by `key` ascending **AND** by `value` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `key` | Customer attribute key |\n| `value` | Customer attribute value |\n\n</details>","operationId":"requestCustomerAttributes","parameters":[{"name":"customer_id","in":"path","description":"Customer ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributesResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90103":{"summary":"Customer not found","description":"\n* [-90103] Customer not found","value":{"code":404,"message":"Not Found","debugInfo":"Customer not found","errorCode":-90103}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"put":{"tags":["provisioning"],"summary":"Add or edit customer attributes","description":"### Description:  \nAdd or edit custom customer attributes.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> required.\n\n### Postcondition:\nCustom customer attributes get added or edited.\n\n### Further Information:\nBatch function.  \nIf an entry exists before, it will be overwritten.  \n\n* Allowed characters for keys are: `[a-zA-Z0-9_-]`\n* Characters are **case-insensitive**\n* Maximum key length is **255**\n* Maximum value length is **4096**\n* Maximum number of entries is 200\n\nThe total number of attributes for a customer is limited to **500**.","operationId":"updateCustomerAttributes","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"customer_id","in":"path","description":"Customer ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerAttributes"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80015":{"summary":"Invalid key value list because there are duplicate keys present","description":"\n* [-80015] Invalid key value list because there are duplicate keys present","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90103":{"summary":"Customer not found","description":"\n* [-90103] Customer not found","value":{"code":404,"message":"Not Found","debugInfo":"Customer not found","errorCode":-90103}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"post":{"tags":["provisioning"],"summary":"Set customer attributes","description":"### Description:  \nSet custom customer attributes.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> required.\n\n### Postcondition:\nCustom customer attributes gets set.\n\n### Further Information:\nBatch function.  \nAll existing customer attributes will be deleted.  \n\n* Allowed characters for keys are: `[a-zA-Z0-9_-]`  \n* Characters are **case-insensitive**.\n","operationId":"setCustomerAttributes","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"customer_id","in":"path","description":"Customer ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerAttributes"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80015":{"summary":"Invalid key value list because there are duplicate keys present","description":"\n* [-80015] Invalid key value list because there are duplicate keys present","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90103":{"summary":"Customer not found","description":"\n* [-90103] Customer not found","value":{"code":404,"message":"Not Found","debugInfo":"Customer not found","errorCode":-90103}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"deprecated":true,"security":[]}},"/v4/nodes/{node_id}/node_attributes":{"get":{"tags":["nodes"],"summary":"Request custom node attributes","description":"### Description:  \nRetrieve a list of node attributes.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in auth parent room.\n\n### Postcondition:\nList of attributes is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`key:cn:searchString_1|value:cn:searchString_2`  \nFilter by attribute key contains `searchString_1` **AND** attribute value contains `searchString_2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description          | `OPERATOR` | Operator Description | `VALUE` |\n| :--- |:----------------------------| :--- | :--- | :--- |\n| `key` | Node attribute key filter   | `cn, eq, sw` | Attribute key contains / equals / starts with value. | `search String` |\n| `value` | Node attribute value filter | `cn, eq, sw` | Attribute value contains / equals / starts with value. | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`key:asc|value:desc`  \nSort by `key` ascending **AND** by `value` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `key` | Node attribute key |\n| `value` | Node attribute value |\n\n</details>","operationId":"requestNodeAttributes","parameters":[{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributesResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["nodes"],"summary":"Add or edit custom node attributes","description":"### Description:  \nAdd or edit custom node attributes.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change</span> permissions in parent room (for folders or files) or needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span> (for rooms).\n\n### Postcondition:\nCustom node attributes gets added or edited.\n\n### Further Information:\nBatch function.  \nIf an entry exists before, it will be overwritten.  \n\n* Allowed characters for keys are: `[a-zA-Z0-9_-]`\n* Characters are **case-insensitive**\n* Maximum key length is **255**\n* Maximum value length is **4096**\n* Maximum number of entries is 200\n\nThe total number of attributes for a node is limited to **500**.","operationId":"updateNodeAttributes","parameters":[{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeAttributes"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80015":{"summary":"Invalid key value list because there are duplicate keys present","description":"\n* [-80015] Invalid key value list because there are duplicate keys present","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}":{"put":{"tags":["nodes"],"summary":"Updates room’s metadata","description":"### Description:  \nUpdates room’s metadata.\n\n### Precondition:\nUser is a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span> at superordinated level.\n\n### Postcondition:\nRoom's metadata is changed.\n\n### Further Information:\nNotes are limited to **255** characters.\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `","operationId":"updateRoom","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoomRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40021":{"summary":"Room which is defined as Home Room Parent cannot be edited","description":"\n* [-40021] Room which is defined as Home Room Parent cannot be edited","value":{"code":400,"message":"Bad Request","debugInfo":"Room which is defined as Home Room Parent cannot be edited","errorCode":-40021}},"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-41200":{"summary":"Path is too long","description":"\n* [-41200] Path is too long","value":{"code":400,"message":"Bad Request","debugInfo":"Path is too long","errorCode":-41200}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Node already exists","description":"Node with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Node with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}/webhooks":{"get":{"tags":["nodes"],"summary":"Request list of webhooks that are assigned or can be assigned to this room","description":"### Description:  \nGet a list of webhooks for the room scope with their assignment status.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nList of webhooks is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isAssigned:eq:true`  \nGet a list of assigned webhooks to the room.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| **`isAssigned`** | Assigned/unassigned webhooks filter | `eq` |  | `true or false` |\n\n</details>","operationId":"requestListOfWebhooksForRoom","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomWebhookList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["nodes"],"summary":"Assign or unassign webhooks to room","description":"### Description:  \nHandle room webhook assignments.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nList of webhooks is returned.\n\n### Further Information:\nNone.\n\n### Available event types:\n\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Name | Description | Scope |\n| :--- | :--- | :--- |\n| **`downloadshare.created`** | Triggered when a new download share is created in affected room | Node Webhook |\n| **`downloadshare.deleted`** | Triggered when a download share is deleted in affected room | Node Webhook |\n| **`downloadshare.used`** | Triggered when a download share is utilized in affected room | Node Webhook |\n| **`uploadshare.created`** | Triggered when a new upload share is created in affected room | Node Webhook |\n| **`uploadshare.deleted`** | Triggered when a upload share is deleted in affected room | Node Webhook |\n| **`uploadshare.used`** | Triggered when a new file is uploaded via the upload share in affected room | Node Webhook |\n| **`file.created`** | Triggered when a new file is uploaded in affected room | Node Webhook |\n| **`folder.created`** | Triggered when a new folder is created in affected room | Node Webhook |\n| **`room.created`** | Triggered when a new room is created (in affected room) | Node Webhook |\n| **`file.deleted`** | Triggered when a file is deleted in affected room | Node Webhook |\n| **`folder.deleted`** | Triggered when a folder is deleted in affected room | Node Webhook |\n| **`room.deleted`** | Triggered when a room is deleted in affected room | Node Webhook |\n\n</details>","operationId":"handleRoomWebhookAssignments","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoomWebhookRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomWebhookList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80010":{"summary":"Invalid URL","description":"\n* [-80010] Invalid URL","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URL","errorCode":-80010}},"-80060":{"summary":"Invalid event type","description":"\n* [-80060] Invalid event type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid event type","errorCode":-80060}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}/users":{"get":{"tags":["nodes"],"summary":"Request room granted user(s) or / and user(s) that can be granted","description":"### Description:  \nRetrieve a list of users that are and / or can be granted to the room.\n\n### Precondition:\nAny permissions on target room.\n\n### Postcondition:\nNone.\n\n### Further Information:\nList of users is returned.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n> `permissionsManage:eq:true|user:cn:searchString`  \nGet all users that have `manage` permissions to this room **AND** whose (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) is like `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `user` | User filter | `cn` | User contains value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`). | `search String` |\n| `userId` | User ID filter | `eq` | User ID equals value. | `positive Integer` |\n| `isGranted` | Filter the users that have (no) access to this room.<br>**This filter is only available for room administrators.**<br>**Other users can only look for users in their rooms, so this filter is `true` and **CANNOT** be overridden.** | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n| `permissionsManage` | Filter the users that do (not) have `manage` permissions in this room. | `eq` |  | `true or false` |\n| `effectivePerm` | Filter users with DIRECT or DIRECT **AND** EFFECTIVE permissions<ul><li>`false`: DIRECT permissions</li><li>`true`: DIRECT **AND** EFFECTIVE permissions</li><li>`any`: DIRECT **AND** EFFECTIVE **AND** OVER GROUP permissions</li></ul>DIRECT means: e.g. room administrator grants `read` permissions to group of users **directly** on desired room.<br>EFFECTIVE means: e.g. group of users gets `read` permissions on desired room through **inheritance**.<br>OVER GROUP means: e.g. user gets `read` permissions on desired room through **group membership**. | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `false` |\n| `hasRole` | User role filter<br>For more Roles information please call `GET /roles API` | `eq`, `neq` | User role  equals value. | <ul><li>`CONFIG_MANAGER` - Manage global configs</li><li>`USER_MANAGER` - Manage Users</li><li>`GROUP_MANAGER` - Manage User-Groups</li><li>`ROOM_MANAGER` - Manage top level Data Rooms</li><li>`LOG_AUDITOR` - Read logs</li><li>`NONMEMBER_VIEWER` - View users and groups when having room manage permission</li><li>`USER` - Regular User role</li><li>`GUEST_USER` - Guest User role</li></ul> |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`displayName`</del> | User display name filter (use `user` filter) | `cn` | User display name contains value (`firstName` **OR** `lastName` **OR** `email`). | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`user:desc`  \nSort by `user` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`user`** | User - sort by `firstName`, `lastName`, `username`, `email` (in this order) |\n\n</details>","operationId":"requestRoomUsers","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomUserList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["nodes"],"summary":"Add or change room granted user(s)","description":"### Description:\nAll existing user permissions will be overwritten.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>. To add new members, the user needs the right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; non-members add</span>, which is included in any role.\n\n### Postcondition:\nUser's permissions are changed.\n\n### Further Information:\nBatch function.","operationId":"updateRoomUsers","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomUsersAddBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-40022":{"summary":"Manage rights on homerooms cannot be given to other users","description":"\n* [-40022] Manage rights on homerooms cannot be given to other users","value":{"code":400,"message":"Bad Request","debugInfo":"Manage rights on homerooms cannot be given to other users","errorCode":-40022}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80068":{"summary":"Invalid Permission","description":"\n* [-80068] Invalid Permission","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid Permission","errorCode":-80068}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["nodes"],"summary":"Revoke granted user(s) from room","description":"### Description:  \nRevoke granted users from room.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nUser's permissions are revoked.\n\n### Further Information:\nBatch function.  ","operationId":"revokeRoomUsers","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomUsersDeleteBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}/policies":{"get":{"tags":["nodes"],"summary":"Request Room Policies","description":"### Description:  \nRetrieve the room policies:\n* `defaultExpirationPeriod`\n* `virusProtectionEnabled`\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in that room.\n\n### Postcondition:\nRoom Policies returned.\n\n### Further Information:\n`defaultExpirationPeriod`: Default policy room expiration period in seconds.\nAll existing and future files in a room will have their expiration date set to this period after their respective upload.\nExisting files can be set to expire earlier afterwards.\n`0` means no default expiration policy will be enforced. \n\n`virusProtectionEnabled`: Status of room policy for virus-protection.\nCan be activated for unencrypted data rooms. If enabled, the files are sent to the German IT security company G DATA CyberDefense for verification.\n\n","operationId":"requestRoomPolicies","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomPolicies"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["nodes"],"summary":"Set room policies","description":"### Description:  \nSet the room policies:\n* `defaultExpirationPeriod`\n* `virusProtectionEnabled`\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nRoom policy is set.\n\n### Further Information:\n`defaultExpirationPeriod`: Default policy room expiration period in seconds.\nAll existing and future files in a room will have their expiration date set to this period after their respective upload.\nExisting files can be set to expire earlier afterwards.\n`0` means no default expiration policy will be enforced. This removes all expiration dates from existing files.\n\n`virusProtectionEnabled`: Status of room policy for virus-protection.\nCan be activated for unencrypted data rooms. If enabled, the files are sent to the German IT security company G DATA CyberDefense for verification.\n","operationId":"setRoomPolicies","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomPoliciesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80064":{"summary":"Policy Violation","description":"\n* [-80064] Policy Violation","value":{"code":400,"message":"Bad Request","debugInfo":"Policy Violation","errorCode":-80064}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}/guest_users":{"put":{"tags":["nodes"],"summary":"Add guest users to a room","description":"### Description:\nAdd guest users to a room\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>. To add new members, the user needs the right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; non-members add</span>, which is included in any role.\n<span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Guest User Policy</span> needs to be enabled.\n\n\n### Postcondition:\nNew or existing Guest-Users now have guest-permissions for this room\n\n### Further Information:\nBatch function.","operationId":"addRoomGuestUsers","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGuestUserAddRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80069":{"summary":"User with email/username already exists","description":"\n* [-80069] User with email/username already exists","value":{"code":400,"message":"Bad Request","debugInfo":"User with email/username already exists","errorCode":-80069}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80009":{"summary":"Invalid email address","description":"\n* [-80009] Invalid email address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid email address","errorCode":-80009}},"-80064":{"summary":"Policy Violation","description":"\n* [-80064] Policy Violation","value":{"code":400,"message":"Bad Request","debugInfo":"Policy Violation","errorCode":-80064}},"-80068":{"summary":"Invalid Permission","description":"\n* [-80068] Invalid Permission","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid Permission","errorCode":-80068}},"-80070":{"summary":"Guest already in room","description":"\n* [-80070] Guest already in room","value":{"code":400,"message":"Bad Request","debugInfo":"Guest already in room","errorCode":-80070}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70505":{"summary":"Maximum number of users reached","description":"\n* [-70505] Maximum number of users reached","value":{"code":403,"message":"Forbidden","debugInfo":"Maximum number of users reached","errorCode":-70505}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}/groups":{"get":{"tags":["nodes"],"summary":"Request room granted group(s) or / and group(s) that can be granted","description":"### Description:  \nRetrieve a list of groups that are and / or can be granted to the room.\n\n### Precondition:\nAny permissions on target room.\n\n### Postcondition:\nList of groups is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isGranted:eq:false|name:cn:searchString`  \nGet all groups that are **NOT** granted to this room **AND** whose name is like `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `name` | Group name filter | `cn` | Group name contains value. | `search String` |\n| `groupId` | Group ID filter | `eq` | Group ID equals value. | `positive Integer` |\n| `isGranted` | Filter the groups that have (no) access to this room.<br>**This filter is only available for room administrators.**<br>**Other users can only look for groups in their rooms, so this filter is `true` and **CANNOT** be overridden.** | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n| `permissionsManage` | Filter the groups that do (not) have `manage` permissions in this room. | `eq` |  | `true or false` |\n| `effectivePerm` | Filter groups with DIRECT or DIRECT **AND** EFFECTIVE permissions<ul><li>`false`: DIRECT permissions</li><li>`true`: DIRECT **AND** EFFECTIVE permissions</li></ul>DIRECT means: e.g. room administrator grants `read` permissions to group of users **directly** on desired room.<br>EFFECTIVE means: e.g. group of users gets `read` permissions on desired room through **inheritance**. | `eq` |  | `true or false`<br>default: `false` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc`  \nSort by `name` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Group name |\n\n</details>","operationId":"requestRoomGroups","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGroupList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["nodes"],"summary":"Add or change room granted group(s)","description":"### Description:\nAll existing group permissions will be overwritten.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>. To add new members, the user needs the right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; non-members add</span>, which is included in any role.\n\n### Postcondition:\nGroup's permissions are changed.\n\n### Further Information:\nBatch function.  \n","operationId":"updateRoomGroups","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGroupsAddBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-40022":{"summary":"Manage rights on homerooms cannot be given to other users","description":"\n* [-40022] Manage rights on homerooms cannot be given to other users","value":{"code":400,"message":"Bad Request","debugInfo":"Manage rights on homerooms cannot be given to other users","errorCode":-40022}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80025":{"summary":"Invalid new group member acceptance value","description":"\n* [-80025] Invalid new group member acceptance value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid new group member acceptance value","errorCode":-80025}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["nodes"],"summary":"Revoke granted group(s) from room","description":"### Description:  \nRevoke granted groups from room.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nGroup's permissions are revoked.\n\n### Further Information:\nBatch function.  ","operationId":"revokeRoomGroups","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGroupsDeleteBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}/encrypt":{"put":{"tags":["nodes"],"summary":"Encrypt room","description":"### Description:  \nActivates the client-side encryption for a room.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nEncryption of room is activated.\n\n### Further Information:\nOnly empty rooms at the top level may be encrypted.  \nThis endpoint may also be used to disable encryption of an empty room.","operationId":"encryptRoom","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EncryptRoomRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-40003":{"summary":"Room with files cannot be unencrypted","description":"\n* [-40003] Room with files cannot be unencrypted","value":{"code":400,"message":"Bad Request","debugInfo":"Room with files cannot be unencrypted","errorCode":-40003}},"-40004":{"summary":"Only one room emergency password (rescue key) is allowed","description":"\n* [-40004] Only one room emergency password (rescue key) is allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Only one room emergency password (rescue key) is allowed","errorCode":-40004}},"-40008":{"summary":"Room with files cannot be encrypted","description":"\n* [-40008] Room with files cannot be encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"Room with files cannot be encrypted","errorCode":-40008}},"-40012":{"summary":"Room with not empty recycle bin cannot be encrypted","description":"\n* [-40012] Room with not empty recycle bin cannot be encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"Room with not empty recycle bin cannot be encrypted","errorCode":-40012}},"-40018":{"summary":"Room with not empty recycle bin cannot be decrypted","description":"\n* [-40018] Room with not empty recycle bin cannot be decrypted","value":{"code":400,"message":"Bad Request","debugInfo":"Room with not empty recycle bin cannot be decrypted","errorCode":-40018}},"-40023":{"summary":"Room with shares cannot be encrypted","description":"\n* [-40023] Room with shares cannot be encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"Room with shares cannot be encrypted","errorCode":-40023}},"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-70023":{"summary":"Invalid private key format","description":"\n* [-70023] Invalid private key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid private key format","errorCode":-70023}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}/config":{"put":{"tags":["nodes"],"summary":"Configure room","description":"### Description:\nConfigure a room.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nRoom's configuration is changed.\n\n### Further Information:\nProvided (or default) classification is taken from room when file gets uploaded without any classification.  \n\nTo set `adminIds` or `adminGroupIds` the `inheritPermissions` value has to be `false`. Otherwise use:\n* `PUT /nodes/rooms/{room_id}/groups`\n* `PUT /nodes/rooms/{room_id}/users `  \n\nAPIs.","operationId":"configureRoom","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigRoomRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-40015":{"summary":"Room inheritance already enabled","description":"\n* [-40015] Room inheritance already enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Room inheritance already enabled","errorCode":-40015}},"-40016":{"summary":"Room inheritance already disabled","description":"\n* [-40016] Room inheritance already disabled","value":{"code":400,"message":"Bad Request","debugInfo":"Room inheritance already disabled","errorCode":-40016}},"-40017":{"summary":"Inheritance of permissions cannot be enabled for top level rooms","description":"\n* [-40017] Inheritance of permissions cannot be enabled for top level rooms","value":{"code":400,"message":"Bad Request","debugInfo":"Inheritance of permissions cannot be enabled for top level rooms","errorCode":-40017}},"-40019":{"summary":"Takeover of permissions cannot be enabled for top level rooms","description":"\n* [-40019] Takeover of permissions cannot be enabled for top level rooms","value":{"code":400,"message":"Bad Request","debugInfo":"Takeover of permissions cannot be enabled for top level rooms","errorCode":-40019}},"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-40756":{"summary":"Invalid classification code","description":"\n* [-40756] Invalid classification code","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid classification code","errorCode":-40756}},"-41200":{"summary":"Path is too long","description":"\n* [-41200] Path is too long","value":{"code":400,"message":"Bad Request","debugInfo":"Path is too long","errorCode":-41200}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80018":{"summary":"Not between 0 and 9999","description":"\n* [-80018] Not between 0 and 9999","value":{"code":400,"message":"Bad Request","debugInfo":"Not between 0 and 9999","errorCode":-80018}},"-80025":{"summary":"Invalid new group member acceptance value","description":"\n* [-80025] Invalid new group member acceptance value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid new group member acceptance value","errorCode":-80025}},"-80028":{"summary":"Due to existing dependency the input must be null","description":"\n* [-80028] Due to existing dependency the input must be null","value":{"code":400,"message":"Bad Request","debugInfo":"Due to existing dependency the input must be null","errorCode":-80028}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Node already exists","description":"Node with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Node with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/pending":{"get":{"tags":["nodes"],"summary":"Request user-room assignments per group","description":"### Description:  \nRequests a list of user-room assignments by groups that have **NOT** been approved yet  \nThese can have the state:\n* **WAITING**  \n* **DENIED**  \n* **ACCEPTED**  \n\n**ACCEPTED** assignments are already removed from the list.\n\n### Precondition:\nNone.\n\n### Postcondition:\nList of user-room assignments is returned.\n\n### Further Information:\nRoom administrators **SHOULD** regularly request pending assingments to provide access to rooms for other users.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`state:eq:WAITING`  \nFilter assignments by state `WAITING`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `userId` | User ID filter | `eq` | User ID equals value. | `positive Integer` |\n| `groupId` | Group ID filter | `eq` | Group ID equals value. | `positive Integer` |\n| `roomId` | Room ID filter | `eq` | Room ID equals value. | `positive Integer` |\n| `state` | Assignment state | `eq` | Assignment state equals value. | `WAITING or DENIED` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`userId:desc|state:asc`  \nSort by `userId` descending **AND** `state` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `userId` | User ID |\n| `groupId` | Group ID |\n| `roomId` | Room ID |\n| `state` | State |\n\n</details>","operationId":"requestPendingAssignments","parameters":[{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingAssignmentList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40301":{"summary":"Invalid pending assignment status","description":"\n* [-40301] Invalid pending assignment status","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid pending assignment status","errorCode":-40301}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["nodes"],"summary":"Handle user-room assignments per group","description":"### Description:  \nHandles a list of user-room assignments by groups that have **NOT** been approved yet  \n**WAITING** or **DENIED** assignments can be **ACCEPTED**.\n\n### Precondition:\nNone.\n\n### Postcondition:\nUser-room assignment is approved and the user gets access to the group.\n\n### Further Information:\nRoom administrators should **SHOULD** handle pending assignments to provide access to rooms for other users.","operationId":"changePendingAssignments","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingAssignmentsRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40301":{"summary":"Invalid pending assignment status","description":"\n* [-40301] Invalid pending assignment status","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid pending assignment status","errorCode":-40301}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40300":{"summary":"Pending assignment not found","description":"\n* [-40300] Pending assignment not found","value":{"code":404,"message":"Not Found","debugInfo":"Pending assignment not found","errorCode":-40300}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/folders/{folder_id}":{"put":{"tags":["nodes"],"summary":"Updates folder’s metadata","description":"### Description:  \nUpdates folder’s metadata.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change</span> permissions in parent room.\n\n### Postcondition:\nFolder's metadata is changed.\n\n### Further Information:\nNotes are limited to **255** characters.\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `\n","operationId":"updateFolder","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"folder_id","in":"path","description":"Folder ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFolderRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-41200":{"summary":"Path is too long","description":"\n* [-41200] Path is too long","value":{"code":400,"message":"Bad Request","debugInfo":"Path is too long","errorCode":-41200}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Node already exists","description":"Node with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Node with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/files":{"put":{"tags":["nodes"],"summary":"Updates a list of  file’s metadata","description":"### Description:  \nUpdates a list of file’s metadata.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change</span> permissions in parent room.\n\n### Postcondition:\nFile's metadata is changed.\n\n### Further Information:\nMaximum number of files is 200\n","operationId":"updateFiles","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFilesBulkRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40756":{"summary":"Invalid classification code","description":"\n* [-40756] Invalid classification code","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid classification code","errorCode":-40756}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}},"-80064":{"summary":"Policy Violation","description":"\n* [-80064] Policy Violation","value":{"code":400,"message":"Bad Request","debugInfo":"Policy Violation","errorCode":-80064}}}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Node already exists","description":"Node with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Node with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/files/{file_id}":{"put":{"tags":["nodes"],"summary":"Updates a file’s metadata","description":"### Description:\nUpdates a file’s metadata.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change</span> permissions in parent room.\n\n### Postcondition:\nFile's metadata is changed.\n\n\n","operationId":"updateFile","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"file_id","in":"path","description":"File ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFileRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-40756":{"summary":"Invalid classification code","description":"\n* [-40756] Invalid classification code","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid classification code","errorCode":-40756}},"-41200":{"summary":"Path is too long","description":"\n* [-41200] Path is too long","value":{"code":400,"message":"Bad Request","debugInfo":"Path is too long","errorCode":-41200}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}},"-80064":{"summary":"Policy Violation","description":"\n* [-80064] Policy Violation","value":{"code":400,"message":"Bad Request","debugInfo":"Policy Violation","errorCode":-80064}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Node already exists","description":"Node with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Node with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/files/uploads/{upload_id}":{"get":{"tags":["nodes"],"summary":"Request status of S3 file upload","description":"### Description:\nRequest status of a S3 file upload.\n\n### Precondition:\nAn upload channel has been created and user has to be the creator of the upload channel.\n\n### Postcondition:\nStatus of S3 multipart upload request is returned.\n\n### Further Information:\nNone.\n\n### Possible errors:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status | Error Code | Description |\n| :--- | :--- | :--- |\n| `400 Bad Request` | `-80000` | Mandatory fields cannot be empty |\n| `400 Bad Request` | `-80001` | Invalid positive number |\n| `400 Bad Request` | `-80002` | Invalid number |\n| `400 Bad Request` | `-40001` | (Target) room is not encrypted |\n| `400 Bad Request` | `-40755` | Bad file name |\n| `400 Bad Request` | `-40763` | File key must be set for an upload into encrypted room |\n| `400 Bad Request` | `-50506` | Exceeds the number of files for this Upload Share |\n| `403 Forbidden` |  | Access denied |\n| `404 Not Found` | `-20501` | Upload not found |\n| `404 Not Found` | `-40000` | Container not found |\n| `404 Not Found` | `-41000` | Node not found |\n| `404 Not Found` | `-70501` | User not found |\n| `409 Conflict` | `-40010` | Container cannot be overwritten |\n| `409 Conflict` |  | File cannot be overwritten |\n| `500 Internal Server Error` |  | System Error |\n| `502 Bad Gateway` |  | S3 Error |\n| `502 Insufficient Storage` | `-50504` | Exceeds the quota for this Upload Share |\n| `502 Insufficient Storage` | `-40200` | Exceeds the free node quota in room |\n| `502 Insufficient Storage` | `-90200` | Exceeds the free customer quota |\n\n</details>","operationId":"requestUploadStatusFiles","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3FileUploadStatus"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-90034":{"summary":"Corresponding S3 upload ID not found","description":"\n* [-90034] Corresponding S3 upload ID not found","value":{"code":404,"message":"Not Found","debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}}}},"put":{"tags":["nodes"],"summary":"Complete file upload","description":"### Use `uploads` API\n\n### Description:\nFinishes an upload and closes the corresponding upload channel.\n\n### Precondition:\nAn upload channel has been created and data has been transmitted.\n\n### Postcondition:\nThe upload is finished and the temporary file is moved to the productive environment.\n\n### Further Information:\nThe provided file name might be changed in accordance with the resolution strategy:  \n* **autorename**: changes the file name and adds a number to avoid conflicts.\n* **overwrite**: deletes any old file with the same file name.\n* **fail**: returns an error; in this case, another `PUT` request with a different file name may be sent.\n\nPlease ensure that all chunks have been transferred correctly before finishing the upload.  \nDownload share id (if exists) gets changed if:\n- node with the same name exists in the target container\n- `resolutionStrategy` is `overwrite`\n- `keepShareLinks` is `true`\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `","operationId":"completeFileUpload","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteUploadRequest"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-40763":{"summary":"File key must be set for an upload into encrypted room","description":"\n* [-40763] File key must be set for an upload into encrypted room","value":{"code":400,"message":"Bad Request","debugInfo":"File key must be set for an upload into encrypted room","errorCode":-40763}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80034":{"summary":"Keeping Share Links is only allowed with conflict mode overwrite","description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"message":"Bad Request","debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034}},"-90033":{"summary":"S3 direct upload is enforced","description":"\n* [-90033] S3 direct upload is enforced","value":{"code":400,"message":"Bad Request","debugInfo":"S3 direct upload is enforced","errorCode":-90033}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40010":{"summary":"Container cannot be overwritten","description":"\n* [-40010] Container cannot be overwritten","value":{"code":409,"message":"Conflict","debugInfo":"Container cannot be overwritten","errorCode":-40010}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}},"deprecated":true},"post":{"tags":["nodes"],"summary":"Upload file","description":"### Use `uploads` API\n\n### Description:  \nUploads a file or parts of it in an active upload channel.\n\n### Precondition:\nAn upload channel has been created.\n\n### Postcondition:\nA file or parts of it are uploaded to a temporary location.\n\n### Further Information:\nThis endpoints supports chunked upload.  \n\nFollowing `Content-Types` are supported by this API:\n* `multipart/form-data`\n* provided `Content-Type`   \n\nFor both file upload types set the correct `Content-Type` header and body.  \n\n### Examples:  \n\n* `multipart/form-data`\n```\nPOST /api/v4/nodes/files/uploads/{upload_id} HTTP/1.1\n\nHeader:\n...\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n...\n\nBody:\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"file\"; filename=\"file.txt\"\nContent-Type: text/plain\n\nContent of file.txt\n------WebKitFormBoundary7MA4YWxkTrZu0gW--\n```\n\n* any other `Content-Type`  \n```\nPOST /api/v4/nodes/files/uploads/{upload_id}  HTTP/1.1\n\nHeader:\n...\nContent-Type: { ... }\n...\n\nBody:\nraw content\n```","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"uploadFileAsMultipart","parameters":[{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}},{"name":"Content-Range","in":"header","description":"Content-Range \n\ne.g. `bytes 0-999/3980`","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","description":"File","format":"binary"}}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80021":{"summary":"Incorrect upload Content-Range","description":"\n* [-80021] Incorrect upload Content-Range","value":{"code":400,"message":"Bad Request","debugInfo":"Incorrect upload Content-Range","errorCode":-80021}},"-80037":{"summary":"Exceeds maximum data length for AES GCM encryption","description":"\n* [-80037] Exceeds maximum data length for AES GCM encryption","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds maximum data length for AES GCM encryption","errorCode":-80037}},"-90033":{"summary":"S3 direct upload is enforced","description":"\n* [-90033] S3 direct upload is enforced","value":{"code":400,"message":"Bad Request","debugInfo":"S3 direct upload is enforced","errorCode":-90033}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}},"deprecated":true},"delete":{"tags":["nodes"],"summary":"Cancel file upload","description":"### Description:\nCancel a (S3) file upload and destroy the upload channel.\n\n### Precondition:\nAn upload channel has been created and user has to be the creator of the upload channel.\n\n### Postcondition:\nThe upload channel is removed and all temporary uploaded data is purged.\n\n### Further Information:\nIt is recommended to notify the API about cancelled uploads if possible.","operationId":"cancelFileUpload","parameters":[{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90027":{"summary":"S3 connection failed","description":"\n* [-90027] S3 connection failed","value":{"code":504,"message":"Gateway Timeout","debugInfo":"S3 connection failed","errorCode":-90027}}}}}}}}},"/v4/nodes/files/uploads/{upload_id}/s3":{"put":{"tags":["nodes"],"summary":"Complete S3 file upload","description":"### Description:\nFinishes a S3 file upload and closes the corresponding upload channel.\n\n### Precondition:\nAn upload channel has been created, data has been transmitted and user has to be the creator of the upload channel\n\n### Postcondition:\nUpload channel is closed. S3 multipart upload request is completed.\n\n### Further Information:\nDownload share id (if exists) gets changed if:\n- node with the same name exists in the target container\n- `resolutionStrategy` is `overwrite`\n- `keepShareLinks` is `true`","operationId":"completeS3FileUpload","parameters":[{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteS3FileUploadRequest"}}},"required":true},"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20503":{"summary":"Upload channel is closed","description":"\n* [-20503] Upload channel is closed","value":{"code":400,"message":"Bad Request","debugInfo":"Upload channel is closed","errorCode":-20503}},"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-40763":{"summary":"File key must be set for an upload into encrypted room","description":"\n* [-40763] File key must be set for an upload into encrypted room","value":{"code":400,"message":"Bad Request","debugInfo":"File key must be set for an upload into encrypted room","errorCode":-40763}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80034":{"summary":"Keeping Share Links is only allowed with conflict mode overwrite","description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"message":"Bad Request","debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034}},"-80045":{"summary":"Invalid Etag(s)","description":"\n* [-80045] Invalid Etag(s)","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid Etag(s)","errorCode":-80045}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-40764":{"summary":"Anti-virus scan still in progress","description":"\n* [-40764] Anti-virus scan still in progress","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan still in progress","errorCode":-40764}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}},"-90034":{"summary":"Corresponding S3 upload ID not found","description":"\n* [-90034] Corresponding S3 upload ID not found","value":{"code":404,"message":"Not Found","debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40010":{"summary":"Container cannot be overwritten","description":"\n* [-40010] Container cannot be overwritten","value":{"code":409,"message":"Conflict","debugInfo":"Container cannot be overwritten","errorCode":-40010}},"null":{"summary":"Node already exists","description":"Node with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Node with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90027":{"summary":"S3 connection failed","description":"\n* [-90027] S3 connection failed","value":{"code":504,"message":"Gateway Timeout","debugInfo":"S3 connection failed","errorCode":-90027}}}}}}}}},"/v4/nodes/favorites":{"put":{"tags":["nodes"],"summary":"Mark or unmark a list of nodes (room, folder or file) as favorite","description":"### Description:  \nMarks or unmarks a list of nodes (room, folder or file) as favorite.\n\n### Precondition:\nAuthenticated user is allowed to <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128065; see</span> the node (i.e. `isBrowsable = true`).\n\n### Postcondition:\nNodes gets marked as favorite.\n\n### Further Information:\nMaximum number of nodes is 200.","operationId":"updateFavorites","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFavoritesBulkRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/comments/{comment_id}":{"put":{"tags":["nodes"],"summary":"Edit node comment","description":"### Description:\nEdit the text of an existing comment for a specific node.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions on the node and is the creator of the comment.\n\n### Postcondition:\nComments text gets changed.\n\n### Further Information:\nMaximum allowed text length: **65535** characters.","operationId":"updateNodeComment","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"comment_id","in":"path","description":"Comment ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeNodeCommentRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80039":{"summary":"Comment was deleted, change is not allowed","description":"\n* [-80039] Comment was deleted, change is not allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Comment was deleted, change is not allowed","errorCode":-80039}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-41400":{"summary":"Comment not found","description":"\n* [-41400] Comment not found","value":{"code":404,"message":"Not Found","debugInfo":"Comment not found","errorCode":-41400}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["nodes"],"summary":"Remove node comment","description":"### Description:\nDelete an existing comment for a specific node.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions on the node and is the creator of the comment **OR** <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span> in auth parent room.\n\n### Postcondition:\nComment is deleted.\n\n### Further Information:\nNone.","operationId":"removeNodeComment","parameters":[{"name":"comment_id","in":"path","description":"Comment ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-41400":{"summary":"Comment not found","description":"\n* [-41400] Comment not found","value":{"code":404,"message":"Not Found","debugInfo":"Comment not found","errorCode":-41400}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/groups/{group_id}":{"get":{"tags":["groups"],"summary":"Request user group","description":"### Description:  \nRetrieve detailed information about a user group.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.\n\n### Postcondition: \nUser group is returned.\n\n### Further Information:\nNone.","operationId":"requestGroup","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"put":{"tags":["groups"],"summary":"Update user group's metadata","description":"### Description:  \nUpdate user group's metadata .\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.\n\n### Postcondition: \nUser group's metadata is changed.\n\n### Further Information:\n* If a group should **NOT** expire, leave `expireAt` empty.\n* Group names are limited to **150** characters\n* Forbidden characters in group name: [`<`, `>`]","operationId":"updateGroup","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroupRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-71006":{"summary":"At least one role user / group required","description":"\n* [-71006] At least one role user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one role user / group required","errorCode":-71006}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Group already exists","description":"Group with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Group with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["groups"],"summary":"Remove user group","description":"### Description:\nDelete a user group.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; delete groups</span> required.\n\n### Postcondition: \nUser group is deleted.\n\n### Further Information:\nNone.","operationId":"removeGroup","parameters":[{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30040":{"summary":"Group which is defined as User Import Group cannot be deleted","description":"\n* [-30040] Group which is defined as User Import Group cannot be deleted","value":{"code":400,"message":"Bad Request","debugInfo":"Group which is defined as User Import Group cannot be deleted","errorCode":-30040}},"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-71006":{"summary":"At least one role user / group required","description":"\n* [-71006] At least one role user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one role user / group required","errorCode":-71006}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/config/settings":{"get":{"tags":["config"],"summary":"Request system settings","description":"### Description:  \nReturns a list of configurable system settings.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> required.\n\n### Postcondition:\nList of configurable settings is returned.\n\n### Further Information:\nCheck for every settings key new corresponding API and key below.\n\nIf `eula_active` is true, but **NOT** accepted yet, or password **MUST** be changed, only the following two values are returned:\n* `allow_system_global_weak_password`\n* `eula_active`\n\n### Configurable settings\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| `branding_server_branding_id` | The branding UUID, which corresponds to _BRANDING-QUALIFIER_ in the new branding server.<br>cf. `GET /system/config/settings/branding` `BrandingConfig.brandingQualifier` | `String` |\n| `branding_portal_url` | Access URL to to the Branding Portal<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/branding` `BrandingConfig.brandingProviderUrl` | `String` |\n| `dblog` | Write logs to local database.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/eventlog` `EventlogConfig.enabled` | `true or false` |\n| `default_downloadshare_expiration_period` | Default expiration period for Download Shares in days<br>cf. `GET /system/config/settings/defaults` `SystemDefaults.downloadShareDefaultExpirationPeriod` | `Integer between 0 and 9999` |\n| `default_file_upload_expiration_date` | Default expiration period for all uploaded files in days<br>cf. `GET /system/config/settings/defaults` `SystemDefaults.fileDefaultExpirationPeriod` | `Integer between 0 and 9999` |\n| `default_language` | Define which language should be default.<br>cf. `GET /system/config/settings/defaults` `SystemDefaults.languageDefault` | cf. `GET /public/system/info` - `SystemInfo.languageDefault` |\n| `default_uploadshare_expiration_period` | Default expiration period for Upload Shares in days<br>cf. `GET /system/config/settings/defaults` `SystemDefaults.uploadShareDefaultExpirationPeriod` | `Integer between 0 and 9999` |\n| `enable_client_side_crypto` | Activation status of client-side encryption<br>Can only be enabled once; disabling is **NOT** possible.<br>cf. `GET /system/config/settings/general` `GeneralSettings.cryptoEnabled` | `true or false`<br>default: `false` |\n| `eula_active` | Each user has to confirm the EULA at first login.<br>cf. `GET /system/config/settings/general` `GeneralSettings.eulaEnabled` | `true or false` |\n| `eventlog_retention_period` | Retention period (in days) of event log entries<br>After that period, all entries are deleted.<br>cf. `GET /system/config/settings/eventlog` `EventlogConfig.retentionPeriod` | `Integer between 0 and 9999`<br>If set to `0`: no logs are deleted<br>Recommended value: `7` |\n| `ip_address_logging` | Determines whether a user's IP address is logged.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/eventlog` `EventlogConfig.logIpEnabled`<br>cf. `GET /system/config/settings/syslog` `SyslogConfig.logIpEnabled` | `true or false` |\n| `mailserver` | Email server to send emails.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/mail_server` `MailServerConfig.host` | `DNS name or IPv4 of an email server` |\n| `mailserver_authentication_necessary` | Set to `true` if the email server requires authentication.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/mail_server` `MailServerConfig.authenticationEnabled` | `true or false` |\n| `mailserver_password` | **Password is no longer returned.**<br>Check `mailserver_password_set` to determine whether password is set. |  |\n| `mailserver_password_set` | Indicates if a password is set for the mailserver (because `mailserver_password` is always returned empty).<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/mail_server` `MailServerConfig.passwordDefined` | `true or false` |\n| `mailserver_port` | Email server port<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/mail_server` `MailServerConfig.port` | `Valid port number` |\n| `mailserver_username` | User ame for email server<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/mail_server` `MailServerConfig.username` | `Username for authentication` |\n| `mailserver_use_ssl` | Email server requires SSL connection?<br>Only visible for _Config Manager_ of Provider Customer.<br>Requires `mailserver_use_starttls` to be `false`<br>cf. `GET /system/config/settings/mail_server` `MailServerConfig.username` | `true or false` |\n| `mailserver_use_starttls` | Email server requires StartTLS connection?<br>Only visible for _Config Manager_ of Provider Customer.<br>Requires `mailserver_use_ssl` to be `false`<br>cf. `GET /system/config/settings/mail_server` `MailServerConfig.starttlsEnabled` | `true or false` |\n| `syslog` | Write logs to a syslog interface.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/syslog` `SyslogConfig.enabled` | `true or false` |\n| `syslog_host` | Syslog server (IP or FQDN)<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/syslog` `SyslogConfig.host` | `DNS name or IPv4 of a syslog server` |\n| `syslog_port` | Syslog server port<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/syslog` `SyslogConfig.port` | `Valid port number` |\n| `syslog_protocol` | Protocol to connect to syslog server.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `GET /system/config/settings/syslog` `SyslogConfig.protocol` | `TCP or UDP` |\n| `enable_email_notification_button` | Enable mail notification button.<br>cf. `GET /system/config/settings/general` `GeneralSettings.emailNotificationButtonEnabled` | `true or false` |\n| `allow_share_password_sms` | Allow sending of share passwords via SMS.<br>cf. `GET /system/config/settings/general` `GeneralSettings.sharePasswordSmsEnabled` | `true or false` |\n| `globally_allow_share_password_sms` | Allow sending of share passwords via SMS **system-wide** (read-only).<br>cf. `GET /system/config/settings/infrastructure` `InfrastructureProperties.smsConfigEnabled` | `true or false` |\n| `use_s3_storage` | Defines if S3 is used as storage backend.<br>Can only be enabled once; disabling is **NOT** possible.<br>cf. `GET /system/config/settings/general` `GeneralSettings.useS3Storage` | `true or false` |\n| `s3_default_region` |Suggested S3 region (read-only)<br>cf. `GET /system/config/settings/infrastructure` `InfrastructureProperties.s3DefaultRegion` | `Region name` |\n\n</details>\n\n### Deprecated settings\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| <del>`allow_system_global_weak_password`</del> | Determines whether weak password (cf. _Password Policy_ below) is allowed.<br>cf. `GET /system/config/settings/general` `GeneralSettings.weakPasswordEnabled`<br>Use `GET /system/config/policies/passwords` API to get configured password policies. | `true or false` |\n| <del>`branding_server_customer`</del> | The UUID of the branding server customer, which corresponds to customer key in the branding server. | `String` |\n| <del>`branding_server_url`</del> | Access URL to to the Branding Server.<br>Only visible for _Config Manager_ of Provider Customer. | `String` |\n| <del>`email_from`</del> | Sender of system-generated emails<br>Only visible for _Config Manager_ of Provider Customer.<br>**Moved to branding** | `Valid email address` |\n| <del>`email_to_sales`</del> | Contact email address for customers to request more user licenses or data volume.<br>**Moved to branding** | `Valid email address` |\n| <del>`email_to_support`</del> | Support email address for users<br>**Moved to branding** | `Valid email address` |\n| <del>`file_size_js`</del> | Maximum file size (in bytes) for downloads of encrypted files with JavaScript.<br>Bigger files will require a JavaApplet. | `Integer`<br>Recommended value: `10485760` (=`10MB`) |\n| <del>`system_name`</del> | System name<br>**Moved to branding** use `product.title` | `Display name of the DRACOON` |\n\n</details>","operationId":"requestSystemSettings","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigOptionList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true},"put":{"tags":["config"],"summary":"Update system settings","description":"### Description:\nUpdate configurable settings.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nOne or more global settings gets changed.\n\n### Further Information:\nThis API is deprecated and will be removed in the future.  \nCheck for every settings key new corresponding API and key below.\n\n### Configurable settings:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| `branding_server_branding_id` | The branding UUID, which corresponds to _BRANDING-QUALIFIER_ in the new branding server.<br>cf. `PUT /system/config/settings/branding` `BrandingConfig.brandingQualifier` | `String` |\n| `branding_portal_url` | Access URL to to the Branding Portal<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/branding` `BrandingConfig.brandingProviderUrl` | `String` |\n| `dblog` | Write logs to local database.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/eventlog` `EventlogConfig.enabled` | `true or false` |\n| `default_downloadshare_expiration_period` | Default expiration period for Download Shares in days<br>cf. `PUT /system/config/settings/defaults` `SystemDefaults.downloadShareDefaultExpirationPeriod` | `Integer between 0 and 9999`<br>Set `0` to disable. |\n| `default_file_upload_expiration_date` | Default expiration period for all uploaded files in days<br>cf. `PUT /system/config/settings/defaults` `SystemDefaults.fileDefaultExpirationPeriod` | `Integer between 0 and 9999`<br>Set `0` to disable. |\n| `default_language` | Define which language should be default.<br>cf. `PUT /system/config/settings/defaults` `SystemDefaults.languageDefault` | cf. `GET /public/system/info` - `SystemInfo.languageDefault` |\n| `default_uploadshare_expiration_period` | Default expiration period for Upload Shares in days<br>cf. `PUT /system/config/settings/defaults` `SystemDefaults.uploadShareDefaultExpirationPeriod` | `Integer between 0 and 9999`<br>Set `0` to disable. |\n| `enable_client_side_crypto` | Activation status of client-side encryption<br>Can only be enabled once; disabling is **NOT** possible.<br>cf. `PUT /system/config/settings/general` `GeneralSettings.cryptoEnabled` | `true or false`<br>default: `false` |\n| `eula_active` | Each user has to confirm the EULA at first login.<br>cf. `PUT /system/config/settings/general` `GeneralSettings.eulaEnabled` | `true or false` |\n| `eventlog_retention_period` | Retention period (in days) of event log entries<br>After that period, all entries are deleted.<br>cf. `PUT /system/config/settings/eventlog` `EventlogConfig.retentionPeriod` | `Integer between 0 and 9999`<br>If set to `0`: no logs are deleted<br>Recommended value: `7` |\n| `ip_address_logging` | Determines whether a user's IP address is logged.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/eventlog` `EventlogConfig.logIpEnabled`<br>cf. `PUT /system/config/settings/syslog` `SyslogConfig.logIpEnabled` | `true or false` |\n| `mailserver` | Email server to send emails.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/mail_server` `MailServerConfig.host` | `DNS name or IPv4 of an email server` |\n| `mailserver_authentication_necessary` | Set to `true` if the email server requires authentication.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/mail_server` `MailServerConfig.authenticationEnabled` | `true or false` |\n| `mailserver_password` | Password for email server<br>cf. `PUT /system/config/settings/mail_server` `MailServerConfig.password` | `Password for authentication` |\n| `mailserver_port` | Email server port<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/mail_server` `MailServerConfig.port` | `Valid port number` |\n| `mailserver_username` | Username for email server<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/mail_server` `MailServerConfig.username` | `Username for authentication` |\n| `mailserver_use_ssl` | Email server requires SSL connection?<br>Only visible for _Config Manager_ of Provider Customer.<br>Requires `mailserver_use_starttls` to be `false`<br>cf. `PUT /system/config/settings/mail_server` `MailServerConfig.username` | `true or false` |\n| `mailserver_use_starttls` | Email server requires StartTLS connection?<br>Only visible for _Config Manager_ of Provider Customer.<br>Requires `mailserver_use_ssl` to be `false`<br>cf. `PUT /system/config/settings/mail_server` `MailServerConfig.starttlsEnabled` | `true or false` |\n| `syslog` | Write logs to a syslog interface.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/syslog` `SyslogConfig.enabled` | `true or false` |\n| `syslog_host` | Syslog server (IP or FQDN)<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/syslog` `SyslogConfig.host` | `DNS name or IPv4 of a syslog server` |\n| `syslog_port` | Syslog server port<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/syslog` `SyslogConfig.port` | `Valid port number` |\n| `syslog_protocol` | Protocol to connect to syslog server.<br>Only visible for _Config Manager_ of Provider Customer.<br>cf. `PUT /system/config/settings/syslog` `SyslogConfig.protocol` | `TCP or UDP` |\n| `enable_email_notification_button` | Enable mail notification button.<br>cf. `PUT /system/config/settings/general` `GeneralSettings.emailNotificationButtonEnabled` | `true or false` |\n| `allow_share_password_sms` | Allow sending of share passwords via SMS.<br>cf. `PUT /system/config/settings/general` `GeneralSettings.sharePasswordSmsEnabled` | `true or false` |\n\n</details>\n\n### Deprecated settings:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| <del>`allow_system_global_weak_password`</del> | Determines whether weak password (cf. _Password Policy_ below) is allowed.<br>cf. `PUT /system/config/settings/general` `GeneralSettings.weakPasswordEnabled`<br>Use `PUT /system/config/policies/passwords` API to change configured password policies. | `true or false` |\n| <del>`branding_server_customer`</del> | The UUID of the branding server customer, which corresponds to customer key in the branding server. | `String` |\n| <del>`branding_server_url`</del> | Access URL to to the Branding Server.<br>Only visible for _Config Manager_ of Provider Customer. | `String` |\n| <del>`email_from`</del> | Sender of system-generated emails<br>Only visible for _Config Manager_ of Provider Customer.<br>**Moved to branding** | `Valid email address` |\n| <del>`email_to_sales`</del> | Contact email address for customers to request more user licenses or data volume.<br>**Moved to branding** | `Valid email address` |\n| <del>`email_to_support`</del> | Support email address for users<br>**Moved to branding** | `Valid email address` |\n| <del>`file_size_js`</del> | Maximum file size (in bytes) for downloads of encrypted files with JavaScript.<br>Bigger files will require a JavaApplet. | `Integer`<br>Recommended value: `10485760` (=`10MB`) |\n| <del>`system_name`</del> | System name<br>**Moved to branding** use `product.title` | `Display name of the DRACOON` |\n\n</details>","operationId":"updateSystemSettings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigOptionList"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80009":{"summary":"Invalid email address","description":"\n* [-80009] Invalid email address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid email address","errorCode":-80009}},"-80012":{"summary":"Illegal protocol","description":"\n* [-80012] Illegal protocol","value":{"code":400,"message":"Bad Request","debugInfo":"Illegal protocol","errorCode":-80012}},"-80014":{"summary":"Invalid hostname or IP address","description":"\n* [-80014] Invalid hostname or IP address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid hostname or IP address","errorCode":-80014}},"-80018":{"summary":"Not between 0 and 9999","description":"\n* [-80018] Not between 0 and 9999","value":{"code":400,"message":"Bad Request","debugInfo":"Not between 0 and 9999","errorCode":-80018}},"-80029":{"summary":"Global configuration value cannot be overwritten","description":"\n* [-80029] Global configuration value cannot be overwritten","value":{"code":400,"message":"Bad Request","debugInfo":"Global configuration value cannot be overwritten","errorCode":-80029}},"-90001":{"summary":"Invalid settings configuration","description":"\n* [-90001] Invalid settings configuration","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid settings configuration","errorCode":-90001}},"-90010":{"summary":"Client-side encryption is already enable and cannot be disabled","description":"\n* [-90010] Client-side encryption is already enable and cannot be disabled","value":{"code":400,"message":"Bad Request","debugInfo":"Client-side encryption is already enable and cannot be disabled","errorCode":-90010}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90000":{"summary":"Settings key not found","description":"\n* [-90000] Settings key not found","value":{"code":404,"message":"Not Found","debugInfo":"Settings key not found","errorCode":-90000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/auth/reset_password/{token}":{"get":{"tags":["auth"],"summary":"Validate information for password reset","description":"### Description:  \nRequest all information for a password change dialogue e.g. real name of user.\n\n### Precondition:\nUser received a password reset token.\n\n### Postcondition:\nContext information is returned.\n\n### Further Information:\nNone.","operationId":"validateResetPasswordToken","parameters":[{"name":"token","in":"path","description":"Password reset token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordTokenValidateResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10001":{"summary":"Password reset token is modified","description":"\n* [-10001] Password reset token is modified","value":{"code":400,"message":"Bad Request","debugInfo":"Password reset token is modified","errorCode":-10001}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Token not found","description":"Token not found","value":{"code":404,"message":"Not Found","debugInfo":"Token not found","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"put":{"tags":["auth"],"summary":"Reset password","description":"### Description:  \nResets user's password.\n\n### Precondition:\nUser received a password reset token.\n\n### Postcondition:\nUser's password is reset to the provided password.\n\n### Further Information:\nForbidden characters in passwords: [`&`, `'`, `<`, `>`]","operationId":"resetPassword","parameters":[{"name":"token","in":"path","description":"Password reset token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordWithTokenRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-10002":{"summary":"Password is not secure","description":"\n* [-10002] Password is not secure","value":{"code":400,"message":"Bad Request","debugInfo":"Password is not secure","errorCode":-10002}},"-10105":{"summary":"Password cannot be reset for this user","description":"\n* [-10105] Password cannot be reset for this user","value":{"code":400,"message":"Bad Request","debugInfo":"Password cannot be reset for this user","errorCode":-10105}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Token not found","description":"Token not found","value":{"code":404,"message":"Not Found","debugInfo":"Token not found","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/users":{"get":{"tags":["users"],"summary":"Request users","description":"### Description:  \nReturns a list of DRACOON users.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.\n\n### Postcondition:\nList of users is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nExcept for `login`, `firstName` and  `lastName` - these are connected via logical disjunction (**OR**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`login:cn:searchString_1|firstName:cn:searchString_2|lockStatus:eq:2`  \nFilter users by login contains `searchString_1` **OR** firstName contains `searchString_2` **AND** those who are **NOT** locked.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR`  | Operator Description | `VALUE`                                                                                                                                                                                                                                                                                                                                                                                              |\n| :--- | :--- |:------------| :--- |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `email` | Email filter | `eq`, `cn`  | Email contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `userName` | User name filter | `eq`, `cn`  | UserName contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `firstName` | User first name filter | `cn`        | User first name contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `lastName` | User last name filter | `cn`        | User last name contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `isLocked` | User lock status filter | `eq`        |  | `true or false`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `effectiveRoles` | Filter users with DIRECT or DIRECT **AND** EFFECTIVE roles<ul><li>`false`: DIRECT roles</li><li>`true`: DIRECT **AND** EFFECTIVE roles</li></ul>DIRECT means: e.g. user gets role **directly** granted from someone with _grant permission_ right.<br>EFFECTIVE means: e.g. user gets role through **group membership**. | `eq`        |  | `true or false`<br>default: `false`                                                                                                                                                                                                                                                                                                                                                                  |\n| `createdAt` | Creation date filter | `ge, le`    | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01` | `Date (yyyy-MM-dd)`                                                                                                                                                                                                                                                                                                                                                                                  |\n| `phone` | Phone filter | `eq`        | Phone equals value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `isEncryptionEnabled` | Encryption status filter<ul><li>client-side encryption</li><li>private key possession</li></ul> | `eq`        |  | `true or false`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `hasRole` | User role filter<br>Depends on **effectiveRoles**.<br>For more Roles information please call `GET /roles API` | `eq`, `neq` | User role  equals value. | <ul><li>`CONFIG_MANAGER` - Manage global configs</li><li>`USER_MANAGER` - Manage Users</li><li>`GROUP_MANAGER` - Manage User-Groups</li><li>`ROOM_MANAGER` - Manage top level Data Rooms</li><li>`LOG_AUDITOR` - Read logs</li><li>`NONMEMBER_VIEWER` - View users and groups when having room manage permission</li><li>`USER` - Regular User role</li><li>`GUEST_USER` - Guest User role</li></ul> |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`lockStatus`</del> | User lock status filter | `eq` | User lock status equals value. | <ul><li>`0` - Locked</li><li>`1` - Web access allowed</li><li>`2` - Web and mobile access allowed</li></ul> |\n| <del>`login`</del> | User login filter | `cn` | User login contains value. | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`firstName:asc|lastLoginSuccessAt:desc`  \nSort by `firstName` ascending **AND** by `lastLoginSuccessAt` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `userName` | User name |\n| `email` | User email |\n| `firstName` | User first name |\n| `lastName` | User last name |\n| `isLocked` | User lock status |\n| `lastLoginSuccessAt` | Last successful login date |\n| `expireAt` | Expiration date |\n| `createdAt` | Creation date |\n\n</details>\n\n### Deprecated sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| <del>`gender`</del> | Gender |\n| <del>`lockStatus`</del> | User lock status |\n| <del>`login`</del> | User login |\n\n</details>","operationId":"requestUsers","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"include_attributes","in":"query","description":"Include custom user attributes.","required":false,"schema":{"type":"boolean"}},{"name":"include_roles","in":"query","description":"Include roles","required":false,"schema":{"type":"boolean"}},{"name":"include_manageable_rooms","in":"query","description":"Include hasManageableRooms (deprecated)","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["users"],"summary":"Create new user","description":"### Description:\nCreate a new user.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.\n\n### Postcondition:\nNew user is created.\n\n### Further Information:\n* If a user should **NOT** expire, leave `expireAt` empty.\n* All input fields are limited to **150** characters\n* Forbidden characters in first name, last name and username: [`<`, `>`]\n* Forbidden characters in passwords: [`&`, `'`, `<`, `>`]\n\n### Authentication Method Options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Authentication Method | Option Key                    | Option Value                                                               |\n|:----------------------|:------------------------------|:---------------------------------------------------------------------------|\n| `basic` / `sql`       | `username`                    | Unique user identifier                                                     |\n| `active_directory`    | `ad_config_id` (optional)     | Active Directory configuration ID                                          |\n|                       | `username`                    | Active Directory username according to authentication setting `userFilter` |\n| `openid`              | `openid_config_id` (optional) | OpenID Connect configuration ID                                            |\n|                       | `username`                    | OpenID Connect username according to authentication setting `mappingClaim` |\n\n</details>","operationId":"createUser","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-10002":{"summary":"Password is not secure","description":"\n* [-10002] Password is not secure","value":{"code":400,"message":"Bad Request","debugInfo":"Password is not secure","errorCode":-10002}},"-10100":{"summary":"Invalid authentication method","description":"\n* [-10100] Invalid authentication method","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid authentication method","errorCode":-10100}},"-10102":{"summary":"At least one authentication method must be enabled","description":"\n* [-10102] At least one authentication method must be enabled","value":{"code":400,"message":"Bad Request","debugInfo":"At least one authentication method must be enabled","errorCode":-10102}},"-10013":{"summary":"Not valid IETF language tag","description":"\n* [-10013] Not valid IETF language tag","value":{"code":400,"message":"Bad Request","debugInfo":"Not valid IETF language tag","errorCode":-10013}},"-70106":{"summary":"Only one authentication method allowed","description":"\n* [-70106] Only one authentication method allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Only one authentication method allowed","errorCode":-70106}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}},"-80009":{"summary":"Invalid email address","description":"\n* [-80009] Invalid email address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid email address","errorCode":-80009}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80028":{"summary":"Due to existing dependency the input must be null","description":"\n* [-80028] Due to existing dependency the input must be null","value":{"code":400,"message":"Bad Request","debugInfo":"Due to existing dependency the input must be null","errorCode":-80028}},"-80038":{"summary":"Deactivation of initial password change is only allowed without notification","description":"\n* [-80038] Deactivation of initial password change is only allowed without notification","value":{"code":400,"message":"Bad Request","debugInfo":"Deactivation of initial password change is only allowed without notification","errorCode":-80038}},"-80064":{"summary":"Policy Violation","description":"\n* [-80064] Policy Violation","value":{"code":400,"message":"Bad Request","debugInfo":"Policy Violation","errorCode":-80064}},"-90002":{"summary":"No distinct authentication configuration","description":"\n* [-90002] No distinct authentication configuration","value":{"code":400,"message":"Bad Request","debugInfo":"No distinct authentication configuration","errorCode":-90002}},"-90059":{"summary":"No valid Active Directory configuration found","description":"\n* [-90059] No valid Active Directory configuration found","value":{"code":400,"message":"Bad Request","debugInfo":"No valid Active Directory configuration found","errorCode":-90059}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70505":{"summary":"Maximum number of users reached","description":"\n* [-70505] Maximum number of users reached","value":{"code":403,"message":"Forbidden","debugInfo":"Maximum number of users reached","errorCode":-70505}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90035":{"summary":"OpenID Connect IDP configuration not found","description":"\n* [-90035] OpenID Connect IDP configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035}},"-90050":{"summary":"Active Directory configuration not found","description":"\n* [-90050] Active Directory configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Active Directory configuration not found","errorCode":-90050}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70560":{"summary":"User with provided Basic authentication login already exists","description":"\n* [-70560] User with provided Basic authentication login already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided Basic authentication login already exists","errorCode":-70560}},"-70561":{"summary":"User with provided Active Directory username already exists","description":"\n* [-70561] User with provided Active Directory username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided Active Directory username already exists","errorCode":-70561}},"-70563":{"summary":"User with provided OpenID Connect username already exists","description":"\n* [-70563] User with provided OpenID Connect username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided OpenID Connect username already exists","errorCode":-70563}},"-70564":{"summary":"User with provided username already exists","description":"\n* [-70564] User with provided username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided username already exists","errorCode":-70564}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/users/{user_id}/mfa/emergency_code":{"post":{"tags":["users"],"summary":"Request emergency MFA code","description":"### Description:  \nRequest emergency MFA code for a specific user.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.\n\n### Postcondition:\nEmergency MFA code is returned.\n\n### Further Information:\nEmergency code can be used instead of standard MFA authentication to disable all MFA setups.","operationId":"requestEmergencyMfaCode","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmergencyMfaCodeResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-10111":{"summary":"Could not find MFA setup","description":"\n* [-10111] Could not find MFA setup","value":{"code":400,"message":"Bad Request","debugInfo":"Could not find MFA setup","errorCode":-10111}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/subscriptions/upload_shares/{share_id}":{"post":{"tags":["user"],"summary":"Subscribe Upload Share for notifications","description":"### Description:  \nSubscribe Upload Share for notifications.\n\n### Precondition:\nUser with _\"manage upload share\"_ permissions on target node.\n\n### Postcondition:\nUpload Share is subscribed.  \nNotifications for this Upload Share will be triggered in the future.\n\n### Further Information:\nNone.","operationId":"subscribeUploadShare","parameters":[{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedUploadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60500":{"summary":"Upload Share not found","description":"\n* [-60500] Upload Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload Share not found","errorCode":-60500}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["user"],"summary":"Unsubscribe Upload Share from notifications","description":"### Description:  \nUnsubscribe Upload Share from notifications.\n\n### Precondition:\nUser with _\"manage upload share\"_ permissions on target node.\n\n### Postcondition:\nUpload Share is unsubscribed.  \nNotifications for this Upload Share are disabled.\n\n### Further Information:\nNone.","operationId":"unsubscribeUploadShare","parameters":[{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60500":{"summary":"Upload Share not found","description":"\n* [-60500] Upload Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload Share not found","errorCode":-60500}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/subscriptions/nodes/{node_id}":{"post":{"tags":["user"],"summary":"Subscribe node for notifications","description":"### Description:\nSubscribe node for notifications.\n\n### Precondition:\nUser has _\"read\"_ permissions in auth parent room.\n\n### Postcondition:\nNode is subscribed.\nNotifications for this node will be triggered in the future.\n\n### Further Information:\nNone.","operationId":"subscribeNode","parameters":[{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedNode"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80061":{"summary":"Cannot subscribe node","description":"\n* [-80061] Cannot subscribe node\n\n(rooms and files only)","value":{"code":400,"message":"Bad Request","debugInfo":"Cannot subscribe node","errorCode":-80061}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["user"],"summary":"Unsubscribe node from notifications","description":"### Description:  \nUnsubscribe node from notifications.\n\n### Precondition:\nUser has _\"read\"_ permissions in auth parent room.\n\n### Postcondition:\nNode is unsubscribed.  \nNotifications for this node are disabled.\n\n### Further Information:\nNone.","operationId":"unsubscribeNode","parameters":[{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/subscriptions/download_shares/{share_id}":{"post":{"tags":["user"],"summary":"Subscribe Download Share for notifications","description":"### Description:  \nSubscribe Download Share for notifications.\n\n### Precondition:\nUser with _\"manage download share\"_ permissions on target node.\n\n### Postcondition:\nDownload Share is subscribed.  \nNotifications for this Download Share will be triggered in the future.\n\n### Further Information:\nNone.","operationId":"subscribeDownloadShare","parameters":[{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedDownloadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60000":{"summary":"Download Share not found","description":"\n* [-60000] Download Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Download Share not found","errorCode":-60000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["user"],"summary":"Unsubscribe Download Share from notifications","description":"### Description:  \nUnsubscribe Download Share from notifications.\n\n### Precondition:\nUser with _\"manage download share\"_ permissions on target node.\n\n### Postcondition:\nDownload Share is unsubscribed.  \nNotifications for this Download Share are disabled.\n\n### Further Information:\nNone.","operationId":"unsubscribeDownloadShare","parameters":[{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60000":{"summary":"Download Share not found","description":"\n* [-60000] Download Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Download Share not found","errorCode":-60000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/account/mfa/totp":{"get":{"tags":["user"],"summary":"Request information to setup TOTP as second authentication factor","description":"### Description:  \nGet setup information for multi-factor authentication (TOTP).\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nNone. \n\n### Further Information:\nNone.","operationId":"getTotpSetupInformation","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TotpSetupResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-89000":{"summary":"This feature is not available in this product package","description":"\n* [-89000] This feature is not available in this product package","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Already exists","description":"Already exists","value":{"code":409,"message":"Conflict","debugInfo":"Already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["user"],"summary":"Confirm second factor TOTP setup with a generated OTP","description":"### Description:\nConfirm second factor TOTP setup with a generated OTP.\n\n### Precondition:\nAuthenticated user  \n\n### Postcondition:\nSecond factor TOTP is enabled.\n\n### Further Information:\nNone.","operationId":"confirmTotpSetup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaTotpConfirmationRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10110":{"summary":"Second factor token not valid","description":"\n* [-10110] Second factor token not valid","value":{"code":400,"message":"Bad Request","debugInfo":"Second factor token not valid","errorCode":-10110}},"-10111":{"summary":"Could not find MFA setup","description":"\n* [-10111] Could not find MFA setup","value":{"code":400,"message":"Bad Request","debugInfo":"Could not find MFA setup","errorCode":-10111}},"-10112":{"summary":"Error when creating MFA shared key with provided information","description":"\n* [-10112] Error when creating MFA shared key with provided information","value":{"code":400,"message":"Bad Request","debugInfo":"Error when creating MFA shared key with provided information","errorCode":-10112}},"-80067":{"summary":"Invalid OTP","description":"\n* [-80067] Invalid OTP","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid OTP","errorCode":-80067}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-89000":{"summary":"This feature is not available in this product package","description":"\n* [-89000] This feature is not available in this product package","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/account/keypairs":{"get":{"tags":["user"],"summary":"Request all user key pairs","description":"### Description:  \nRetrieve all user key pairs to allow re-encrypting file keys without need for a second distributor.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of key pairs is returned. \n\n### Further Information:\nNone.","operationId":"requestUserKeyPairs","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["user"],"summary":"Create key pair and preserve copy of old private key","description":"### Description:  \nCreate user key pair and preserve copy of old private key.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nKey pair is created.  \nCopy of old private key is preserved.\n\n### Further Information:\nYou can submit your old private key, encrypted with your current password.  \nThis allows migrating file keys encrypted with your old key pair to the new one.","operationId":"createAndPreserveUserKeyPair","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyPairRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-70023":{"summary":"Invalid private key format","description":"\n* [-70023] Invalid private key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid private key format","errorCode":-70023}},"-70027":{"summary":"Customer encryption is not enabled","description":"\n* [-70027] Customer encryption is not enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Customer encryption is not enabled","errorCode":-70027}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70021":{"summary":"User does already have a keypair","description":"\n* [-70021] User does already have a keypair","value":{"code":409,"message":"Conflict","debugInfo":"User does already have a keypair","errorCode":-70021}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/account/keypair":{"get":{"tags":["user"],"summary":"Request user's key pair","description":"### Description:  \nRetrieve the user key pair.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nKey pair is returned. \n\n### Further Information:\nThe private key is password-based encrypted with `AES256` / `PBKDF2`.","operationId":"requestUserKeyPair","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["user"],"summary":"Set user's key pair","description":"### Description:  \nSet the user key pair.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nKey pair is set.\n\n### Further Information:\nOverwriting an existing key pair is **NOT** possible.  \nPlease delete the existing key pair first.  \nThe private key is password-based encrypted with `AES256` / `PBKDF2`.","operationId":"setUserKeyPair","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70021":{"summary":"User does already have a keypair","description":"\n* [-70021] User does already have a keypair","value":{"code":409,"message":"Conflict","debugInfo":"User does already have a keypair","errorCode":-70021}},"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-70023":{"summary":"Invalid private key format","description":"\n* [-70023] Invalid private key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid private key format","errorCode":-70023}},"-70027":{"summary":"Customer encryption is not enabled","description":"\n* [-70027] Customer encryption is not enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Customer encryption is not enabled","errorCode":-70027}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70021":{"summary":"User does already have a keypair","description":"\n* [-70021] User does already have a keypair","value":{"code":409,"message":"Conflict","debugInfo":"User does already have a keypair","errorCode":-70021}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["user"],"summary":"Remove user's key pair","description":"### Description:  \nDelete user key pair.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nKey pair is deleted.\n\n### Further Information:\nIf parameter `version` is not set and two key versions exist, this API deletes version A.      \nIf two keys with the same version are set, this API deletes the older one.\n\nThis will also remove all file keys that were encrypted with the user public key.\nIf the user had exclusive access to some files, those are removed as well since decrypting them became impossible.","operationId":"removeUserKeyPair","parameters":[{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/account/avatar":{"get":{"tags":["user"],"summary":"Request avatar","description":"### Description:\nGet the avatar.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nAvatar is returned.\n\n### Further Information:\nNone.","operationId":"requestAvatar","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["user"],"summary":"Change avatar","description":"### Description:\nChange the avatar.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nAvatar is changed.\n\n### Further Information:\n* Media type **MUST** be `jpeg` or `png`\n* File size **MUST** bei less than `5 MB`\n* Dimensions **MUST** be `256x256 px`","operationId":"uploadAvatarAsMultipart","requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","description":"File","format":"binary"}}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80042":{"summary":"Invalid media type for user avatar","description":"\n* [-80042] Invalid media type for user avatar","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid media type for user avatar","errorCode":-80042}},"-80043":{"summary":"File size of an avatar image is too large","description":"\n* [-80043] File size of an avatar image is too large","value":{"code":400,"message":"Bad Request","debugInfo":"File size of an avatar image is too large","errorCode":-80043}},"-80044":{"summary":"Avatar dimensions are invalid","description":"\n* [-80044] Avatar dimensions are invalid","value":{"code":400,"message":"Bad Request","debugInfo":"Avatar dimensions are invalid","errorCode":-80044}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["user"],"summary":"Reset avatar","description":"### Description:  \nReset (custom) avatar to default avatar.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\n* User's avatar gets deleted.  \n* Default avatar is set.\n\n### Further Information:\nNone.","operationId":"resetAvatar","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/storage/s3/tags":{"get":{"tags":["system-storage-config"],"summary":"Request list of configured S3 tags","description":"### Description:  \nRetrieve all configured S3 tags.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nS3 tags are returned.\n\n### Further Information:\nAn empty list is returned if no S3 tags are found / configured.","operationId":"requestS3TagList","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}},"-90032":{"summary":"S3 tags are disabled","description":"\n* [-90032] S3 tags are disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 tags are disabled","errorCode":-90032}}}}}}}},"post":{"tags":["system-storage-config"],"summary":"Create S3 tag","description":"### Description:  \nCreate new S3 tag.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nNew S3 tag is created.\n\n### Further Information:\n* Maximum key length: **128** characters.  \n* Maximum value length: **256** characters.  \n* Both S3 tag key and value are **case-sensitive** strings.  \n* Maximum of **20 mandatory S3 tags** is allowed.","operationId":"createS3Tag","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagCreateRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Tag"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-90031":{"summary":"Limit of mandatory S3 tags has been reached","description":"\n* [-90031] Limit of mandatory S3 tags has been reached","value":{"code":400,"message":"Bad Request","debugInfo":"Limit of mandatory S3 tags has been reached","errorCode":-90031}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90028":{"summary":"S3 tag already exists","description":"\n* [-90028] S3 tag already exists","value":{"code":409,"message":"Conflict","debugInfo":"S3 tag already exists","errorCode":-90028}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}},"-90032":{"summary":"S3 tags are disabled","description":"\n* [-90032] S3 tags are disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 tags are disabled","errorCode":-90032}}}}}}}}},"/v4/system/config/policies/passwords/enforce_change":{"post":{"tags":["system-policies-config"],"summary":"Enforce login password change for all users","description":"### Description:  \nEnforce login password change for all users.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nLogin password change is enforced.\nEvery user has to change their login password at next login.\n\n### Further Information:\nNone.","operationId":"enforceLoginPasswordChange","responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"200":{"description":"OK"}}}},"/v4/system/config/oauth/clients":{"get":{"tags":["system-auth-config"],"summary":"Request list of OAuth clients","description":"### Description:  \nRetrieve a list of configured OAuth clients.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nList of OAuth clients is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isStandard:eq:true`  \nGet standard OAuth clients.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `isStandard` | Standard client filter | `eq` |  | `true or false` |\n| `isExternal` | External client filter | `eq` |  | `true or false` |\n| `isEnabled` | Enabled/disabled clients filter | `eq` |  | `true or false` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`clientName:desc|isStandard:asc`  \nSort by `clientName` descending **AND** `isStandard` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `clientName` | Client name |\n| `isStandard` | Is a standard client |\n| `isExternal` | Is a external client |\n| `isEnabled` | Is a enabled client |\n\n</details>","operationId":"requestOAuthClients","parameters":[{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OAuthClient"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["system-auth-config"],"summary":"Create OAuth client","description":"### Description:\nCreate a new OAuth client.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nNew OAuth client created.\n\n### Further Information:  \nClient secret **MUST** have:  \n* at least 12 characters, at most 32 characters  \n* only lower case characters, upper case characters and digits  \n* at least 1 lower case character, 1 upper case character and 1 digit  \n\nThe client secret is optional and will be generated for confidential clients if it is left empty.  \n\nValid grant types are:  \n* `authorization_code`  \n* `implicit`  \n* `password`  \n* `client_credentials`  \n* `refresh_token`  \n\nGrant type `client_credentials` is currently **NOT** permitted!\n\nAllowed characters for client ID are: `[a-zA-Z0-9_-]`\n\nIf grant types `authorization_code` or `implicit` are used, a\nredirect URI **MUST** be provided!\n\nDefault access token validity: **8 hours**  \nDefault refresh token validity: **30 days**\nDefault approval validity: **½ year**","operationId":"createOAuthClient","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOAuthClientRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthClient"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-10002":{"summary":"Password is not secure","description":"\n* [-10002] Password is not secure","value":{"code":400,"message":"Bad Request","debugInfo":"Password is not secure","errorCode":-10002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80032":{"summary":"Invalid URI","description":"\n* [-80032] Invalid URI","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URI","errorCode":-80032}},"-90083":{"summary":"Invalid OAuth grant type","description":"\n* [-90083] Invalid OAuth grant type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid OAuth grant type","errorCode":-90083}},"-90085":{"summary":"Invalid OAuth token validity","description":"\n* [-90085] Invalid OAuth token validity","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid OAuth token validity","errorCode":-90085}},"-90091":{"summary":"OAuth grant type refresh token can only be used in combination with authorization code or password","description":"\n* [-90091] OAuth grant type refresh token can only be used in combination with authorization code or password","value":{"code":400,"message":"Bad Request","debugInfo":"OAuth grant type refresh token can only be used in combination with authorization code or password","errorCode":-90091}},"-90094":{"summary":"A public OAuth client must not contain a client secret","description":"\n* [-90094] A public OAuth client must not contain a client secret","value":{"code":400,"message":"Bad Request","debugInfo":"A public OAuth client must not contain a client secret","errorCode":-90094}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90100":{"summary":"License does not allow further provisioning","description":"\n* [-90100] License does not allow further provisioning","value":{"code":402,"message":"Payment Required","debugInfo":"License does not allow further provisioning","errorCode":-90100}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90081":{"summary":"OAuth client ID already exists","description":"\n* [-90081] OAuth client ID already exists","value":{"code":409,"message":"Conflict","debugInfo":"OAuth client ID already exists","errorCode":-90081}},"-90087":{"summary":"OAuth client name already exists","description":"\n* [-90087] OAuth client name already exists","value":{"code":409,"message":"Conflict","debugInfo":"OAuth client name already exists","errorCode":-90087}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/auth/openid/idps":{"get":{"tags":["system-auth-config"],"summary":"Request list of OpenID Connect IDP configurations","description":"### Description:  \nRetrieve a list of configured OpenID Connect IDPs.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nList of OpenID Connect IDP configurations is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isStandard:eq:true`  \nGet standard OpenID Connect IDPs.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `isStandard` | Standard IDP filter | `eq` |  | `true or false` |\n| `isEnabled` | Enabled/disabled IDPs filter | `eq` |  | `true or false` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|isStandard:asc`  \nSort by `name` descending **AND** `isStandard` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n|:---|:---|\n| `name` | Name |\n| `isStandard` | Is a standard IDP |\n| `isEnabled` | Is a enabled IDP |\n\n</details>","externalDocs":{"description":"OpenID Specifications","url":"http://openid.net/developers/specs"},"operationId":"requestOpenIdIdpConfigs","parameters":[{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["system-auth-config"],"summary":"Create OpenID Connect IDP configuration","description":"### Description:\nCreate new OpenID Connect IDP configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nNew OpenID Connect IDP configuration is created.\n\n### Further Information:\nNone.","externalDocs":{"description":"OpenID Specifications","url":"http://openid.net/developers/specs"},"operationId":"createOpenIdIdpConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOpenIdIdpConfigRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80010":{"summary":"Invalid URL","description":"\n* [-80010] Invalid URL","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URL","errorCode":-80010}},"-80032":{"summary":"Invalid URI","description":"\n* [-80032] Invalid URI","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URI","errorCode":-80032}},"-90049":{"summary":"Invalid OpenID Connect flow","description":"\n* [-90049] Invalid OpenID Connect flow","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid OpenID Connect flow","errorCode":-90049}},"-90086":{"summary":"Invalid PKCE code challenge method","description":"\n* [-90086] Invalid PKCE code challenge method","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid PKCE code challenge method","errorCode":-90086}},"-90074":{"summary":"Invalid OpenID Connect user info source","description":"\n* [-90074] Invalid OpenID Connect user info source","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid OpenID Connect user info source","errorCode":-90074}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90036":{"summary":"OpenID Connect IDP configuration with same name already exists","description":"\n* [-90036] OpenID Connect IDP configuration with same name already exists","value":{"code":409,"message":"Conflict","debugInfo":"OpenID Connect IDP configuration with same name already exists","errorCode":-90036}},"-90047":{"summary":"Invalid OpenID Connect IDP configuration","description":"\n* [-90047] Invalid OpenID Connect IDP configuration","value":{"code":409,"message":"Bad Request","debugInfo":"Invalid OpenID Connect IDP configuration","errorCode":-90047}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/auth/ads":{"get":{"tags":["system-auth-config"],"summary":"Request list of Active Directory configurations","description":"### Description:  \nRetrieve a list of configured Active Directories.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> of the Provider Customer required.\n\n### Postcondition:\nList of Active Directory configurations is returned.\n\n### Further Information:\nNone.","operationId":"requestAdConfigs","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfigList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["system-auth-config"],"summary":"Create Active Directory configuration","description":"### Description:\nCreate a new Active Directory configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> of the Provider Customer required.\n\n### Postcondition:\nNew Active Directory configuration created.\n\n### Further Information:\nNone.","operationId":"createAdConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateActiveDirectoryConfigRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-90055":{"summary":"Invalid Active Directory configuration","description":"\n* [-90055] Invalid Active Directory configuration","value":{"code":502,"message":"Bad Gateway","debugInfo":"Invalid Active Directory configuration","errorCode":-90055}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90056":{"summary":"Active Directory name already exists","description":"\n* [-90056] Active Directory name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Active Directory name already exists","errorCode":-90056}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/actions/test/ad":{"post":{"tags":["system-auth-config"],"summary":"Test Active Directory configuration","description":"### Description:  \nTest Active Directory configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> of the Provider Customer required.\n\n### Postcondition:\nActive Directory configuration is returned if successful.\n\n### Further Information:\nDRACOON tries to establish a connection with the provided information.","operationId":"testAdConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestActiveDirectoryConfigRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestActiveDirectoryConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}},"-90051":{"summary":"Active Directory login failed","description":"\n* [-90051] Active Directory login failed","value":{"code":401,"message":"Unauthorized","debugInfo":"Active Directory login failed","errorCode":-90051}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90052":{"summary":"Active Directory connection Failed","description":"\n* [-90052] Active Directory connection Failed","value":{"code":404,"message":"Not Found","debugInfo":"Active Directory connection Failed","errorCode":-90052}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/shares/uploads/{share_id}/email":{"post":{"tags":["shares"],"summary":"Send an existing Upload Share link via email","description":"### Description:\nSend an email to specific recipients for existing Upload Share.\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span> permissions on target container.\n\n### Postcondition:\nUpload Share link successfully sent.\n\n### Further Information:\n\n* Forbidden characters in the email body: [`<`, `>`]\n","operationId":"sendUploadShareLinkViaEmail","parameters":[{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShareLinkEmail"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80009":{"summary":"Invalid email address","description":"\n* [-80009] Invalid email address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid email address","errorCode":-80009}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60500":{"summary":"Upload Share not found","description":"\n* [-60500] Upload Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload Share not found","errorCode":-60500}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/shares/downloads/{share_id}/email":{"post":{"tags":["shares"],"summary":"Send an existing Download Share link via email","description":"### Description:\nSend an email to specific recipients for existing Download Share.\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span> permissions on target node.\n\n### Postcondition:\nDownload Share link successfully sent.\n\n### Further Information:\n\n* Forbidden characters in the email body: [`<`, `>`]\n","operationId":"sendDownloadShareLinkViaEmail","parameters":[{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShareLinkEmail"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80009":{"summary":"Invalid email address","description":"\n* [-80009] Invalid email address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid email address","errorCode":-80009}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60000":{"summary":"Download Share not found","description":"\n* [-60000] Download Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Download Share not found","errorCode":-60000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/settings/webhooks":{"get":{"tags":["settings"],"summary":"Request list of webhooks","description":"### Description:  \nGet a list of webhooks for the customer scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.\n\n### Postcondition:\nList of webhooks is returned.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:cn:goo|createdAt:ge:2015-01-01`  \nGet webhooks where name contains `goo` **AND** webhook creation date is **>=** `2015-01-01`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| **`id`** | Webhook id filter | `eq` | Webhook id equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**). |`positive number`|\n| **`name`** | Webhook type name| `cn, eq` | Webhook name contains / equals value. | `search String` |\n| **`isEnabled`** | Webhook isEnabled filter | `eq` |  | `true or false` |\n| **`createdAt`** | Creation date filter | `ge, le` | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| **`updatedAt`** | Last modification date filter | `ge, le` | Last modification date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `updatedAt:ge:2016-12-31`&#124;`updatedAt:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| **`expiration`** | Expiration date filter | `ge, le, eq` | Expiration date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `expiration:ge:2016-12-31`&#124;`expiration:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| **`lastFailStatus`** | Failure status filter | `eq` | Last HTTP status code. Set when a webhook is auto-disabled due to repeated delivery failures |`positive number`|\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|isEnabled:asc`  \nSort by `name` descending and `isEnabled` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`id`** | Webhook id |\n| **`name`** | Webhook name |\n| **`isEnabled`** | Webhook isEnabled |\n| **`createdAt`** | Creation date |\n| **`updatedAt`** | Last modification date |\n| **`expiration`** | Expiration date |\n\n</details>\n","operationId":"requestListOfWebhooks","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["settings"],"summary":"Create webhook","description":"### Description:  \nCreate a new webhook for the customer scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.\n\n### Postcondition:\nWebhook is created for given event types.\n\n### Further Information:\nURL must begin with the `HTTPS` scheme.  \nWebhook names are limited to 150 characters.\n\n### Available event types:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Name | Description | Scope |\n| :--- | :--- | :--- |\n| **`user.created`** | Triggered when a new user is created | Customer Admin Webhook |\n| **`user.deleted`** | Triggered when a user is deleted | Customer Admin Webhook |\n| **`user.locked`** | Triggered when a user gets locked | Customer Admin Webhook |\n|  |  |  |\n| **`webhook.expiring`** | Triggered 30/20/10/1 days before a webhook expires |  Customer Admin Webhook |\n|  |  |  |\n| **`downloadshare.created`** | Triggered when a new download share is created in affected room | Node Webhook |\n| **`downloadshare.deleted`** | Triggered when a download share is deleted in affected room | Node Webhook |\n| **`downloadshare.used`** | Triggered when a download share is utilized in affected room | Node Webhook |\n| **`uploadshare.created`** | Triggered when a new upload share is created in affected room | Node Webhook |\n| **`uploadshare.deleted`** | Triggered when a upload share is deleted in affected room | Node Webhook |\n| **`uploadshare.used`** | Triggered when a new file is uploaded via the upload share in affected room | Node Webhook |\n| **`file.created`** | Triggered when a new file is uploaded in affected room | Node Webhook |\n| **`folder.created`** | Triggered when a new folder is created in affected room | Node Webhook |\n| **`room.created`** | Triggered when a new room is created (in affected room) | Node Webhook |\n| **`file.deleted`** | Triggered when a file is deleted in affected room | Node Webhook |\n| **`folder.deleted`** | Triggered when a folder is deleted in affected room | Node Webhook |\n| **`room.deleted`** | Triggered when a room is deleted in affected room | Node Webhook |\n\n</details>","operationId":"createWebhook","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80010":{"summary":"Invalid URL","description":"\n* [-80010] Invalid URL","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URL","errorCode":-80010}},"-80060":{"summary":"Invalid event type","description":"\n* [-80060] Invalid event type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid event type","errorCode":-80060}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-91001":{"summary":"Exceeds number of allowed webhooks","description":"\n* [-91001] Exceeds number of allowed webhooks","value":{"code":403,"message":"Forbidden","debugInfo":"Exceeds number of allowed webhooks","errorCode":-91001}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/settings/webhooks/{webhook_id}/reset_lifetime":{"post":{"tags":["settings"],"summary":"Reset webhook lifetime","description":"### Description:  \nReset the lifetime of a webhook for the customer scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.\n\n### Postcondition:\nLifetime of the webhook is reset.\n\n### Further Information:\nNone.","operationId":"resetWebhookLifetime","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/settings/keypairs":{"get":{"tags":["settings"],"summary":"Request all system rescue key pairs","description":"### Description:  \nRetrieve all system rescue key pairs to allow migrating system-rescue-key-encrypted file keys.\n\n### Precondition:\n* Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n* Existence of own key pair\n\n### Postcondition:\nList of key pairs is returned.\n\n### Further Information:\nIn the case of an algorithm migration of a system rescue key, one should create the new key pair before deleting the old one.  \nThis allows re-encrypting file keys with the new key pair, using the old one.  \n\nThis API allows to retrieve both key pairs, in contrast to `GET /settings/keypair`, which only delivers the preferred one.\n","operationId":"requestAllSystemRescueKeyPairs","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["settings"],"summary":"Create system rescue key pair and preserve copy of old private key","description":"### Description:  \nCreate system rescue key pair and preserve copy of old private key.\n\n### Precondition:\n* Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n* Existence of own key pair\n\n### Postcondition:\nSystem rescue key pair is created.  \nCopy of old private key is preserved.\n\n### Further Information:\nYou can submit your old private key, encrypted with your current password.  \nThis allows migrating file keys encrypted with your old key pair to the new one.\n","operationId":"createAndPreserveKeyPair","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyPairRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-70023":{"summary":"Invalid private key format","description":"\n* [-70023] Invalid private key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid private key format","errorCode":-70023}},"-70024":{"summary":"Customer encryption cannot be disabled","description":"\n* [-70024] Customer encryption cannot be disabled","value":{"code":400,"message":"Bad Request","debugInfo":"Customer encryption cannot be disabled","errorCode":-70024}},"-70025":{"summary":"Customer encryption is already enabled","description":"\n* [-70025] Customer encryption is already enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Customer encryption is already enabled","errorCode":-70025}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-90020":{"summary":"Client-side encryption is not enabled","description":"\n* [-90020] Client-side encryption is not enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Client-side encryption is not enabled","errorCode":-90020}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/settings/keypair":{"get":{"tags":["settings"],"summary":"Request system rescue key pair","description":"### Description:  \nRetrieve the system rescue key pair.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n\n### Postcondition:\nKey pair is returned.\n\n### Further Information:\nIf more than one key pair exists the one with highest preference value is returned.\n","operationId":"requestSystemRescueKeyPair","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["settings"],"summary":"Activate client-side encryption for customer","description":"### Description:  \nSet the system rescue key pair and activate client-side encryption for according customer.\n\n### Precondition:\n* Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n* Existence of own key pair\n\n### Postcondition:\nSystem rescue key pair is set and client-side encryption is enabled.\n\n### Further Information:\nSets the ability for this customer to encrypt rooms.  \nOnce enabled on customer level, it **CANNOT** be unset.  \nOn activation, a customer rescue key pair **MUST** be set.\n","operationId":"setSystemRescueKeyPair","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70021":{"summary":"User does already have a keypair","description":"\n* [-70021] User does already have a keypair","value":{"code":409,"message":"Conflict","debugInfo":"User does already have a keypair","errorCode":-70021}},"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-70023":{"summary":"Invalid private key format","description":"\n* [-70023] Invalid private key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid private key format","errorCode":-70023}},"-70024":{"summary":"Customer encryption cannot be disabled","description":"\n* [-70024] Customer encryption cannot be disabled","value":{"code":400,"message":"Bad Request","debugInfo":"Customer encryption cannot be disabled","errorCode":-70024}},"-70025":{"summary":"Customer encryption is already enabled","description":"\n* [-70025] Customer encryption is already enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Customer encryption is already enabled","errorCode":-70025}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-90020":{"summary":"Client-side encryption is not enabled","description":"\n* [-90020] Client-side encryption is not enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Client-side encryption is not enabled","errorCode":-90020}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["settings"],"summary":"Remove system rescue key pair","description":"### Description:  \nRemove the system rescue key pair.\n\n### Precondition:\n* Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n* Existence of own key pair\n\n### Postcondition:\nKey pair is removed (cf. further information below).\n\n### Further Information:\nPlease set a new system rescue key pair first and re-encrypt file keys with it.  \nIf no version is set, deleted key pair with lowest preference value.  \nAlthough, `version` **SHOULD** be set.\n","operationId":"removeSystemRescueKeyPair","parameters":[{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/roles/{role_id}/users":{"get":{"tags":["roles"],"summary":"Request users with specific role","description":"### Description:  \nGet all users with a specific role.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.\n\n### Postcondition:\nList of users is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isMember:eq:false|user:cn:searchString`  \nGet all users that are **NOT** member of that role **AND** whose (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) is like `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `user` | User filter | `cn` | User contains value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`). | `search String` |\n| `isMember` | Filter the users which are (not) member of that role | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`displayName`</del> | User display name filter (use `user` filter) | `cn` | User display name contains value (`firstName` **OR** `lastName` **OR** `email`). | `search String` |\n\n</details>","operationId":"requestRoleUsers","parameters":[{"name":"role_id","in":"path","description":"Role ID","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleUserList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-71001":{"summary":"Role not found","description":"\n* [-71001] Role not found","value":{"code":404,"message":"Not Found","debugInfo":"Role not found","errorCode":-71001}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["roles"],"summary":"Assign user(s) to the role","description":"### Description:\nAssign user(s) to a role.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; grant permission on desired role</span> required.\n\n### Postcondition:\nOne or more users will be added to a role.\n\n### Further Information:\nNone.","operationId":"addRoleUsers","parameters":[{"name":"role_id","in":"path","description":"Role ID","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIds"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleUserList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-71006":{"summary":"At least one role user / group required","description":"\n* [-71006] At least one role user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one role user / group required","errorCode":-71006}},"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-71010":{"summary":"Guest user can not have additional roles","description":"\n* [-71010] Guest user can not have additional roles","value":{"code":400,"message":"Bad Request","debugInfo":"Guest user can not have additional roles","errorCode":-71010}},"-71011":{"summary":"Only guest users can be converted to internal user","description":"\n* [-71011] Only guest users can be converted to internal user","value":{"code":400,"message":"Bad Request","debugInfo":"Only guest users can be converted to internal user","errorCode":-71011}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}},"-71001":{"summary":"Role not found","description":"\n* [-71001] Role not found","value":{"code":404,"message":"Not Found","debugInfo":"Role not found","errorCode":-71001}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70564":{"summary":"User with provided username already exists","description":"\n* [-10012] Wrong token","value":{"code":409,"message":"Conflict","debugInfo":"User with provided username already exists","errorCode":-70564}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["roles"],"summary":"Revoke granted role from user(s)","description":"### Description:  \nRevoke granted user(s) from a role.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; grant permission on desired role</span> required.  \nFor each role, at least one non-expiring user **MUST** remain who may grant the role.\n\n### Postcondition:\nOne or more users will be removed from a role.\n\n### Further Information:\nNone.","operationId":"revokeRoleUsers","parameters":[{"name":"role_id","in":"path","description":"Role ID","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIds"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleUserList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-71006":{"summary":"At least one role user / group required","description":"\n* [-71006] At least one role user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one role user / group required","errorCode":-71006}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-71003":{"summary":"Role can not be removed","description":"\n* [-71003] Role can not be removed","value":{"code":400,"message":"Bad Request","debugInfo":"Role can not be removed","errorCode":-71003}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}},"-71001":{"summary":"Role not found","description":"\n* [-71001] Role not found","value":{"code":404,"message":"Not Found","debugInfo":"Role not found","errorCode":-71001}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/roles/{role_id}/groups":{"get":{"tags":["roles"],"summary":"Request groups with specific role","description":"### Description:  \nGet all groups with a specific role.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.\n\n### Postcondition:\nList of to the role assigned groups is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isMember:eq:false|name:cn:searchString`  \nGet all groups that are **NOT** a member of that role **AND** whose name contains `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `isMember` | Filter the groups which are (not) member of that role | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n| `name` | Group name filter | `cn` | Group name contains value. | `search String` |\n\n</details>","operationId":"requestRoleGroups","parameters":[{"name":"role_id","in":"path","description":"Role ID","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleGroupList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-71006":{"summary":"At least one role user / group required","description":"\n* [-71006] At least one role user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one role user / group required","errorCode":-71006}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-71001":{"summary":"Role not found","description":"\n* [-71001] Role not found","value":{"code":404,"message":"Not Found","debugInfo":"Role not found","errorCode":-71001}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["roles"],"summary":"Assign group(s) to the role","description":"### Description:\nAssign group(s) to a role.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; grant permission on desired role</span> required.\n\n### Postcondition:\nOne or more groups will be added to a role.\n\n### Further Information:\nNone.","operationId":"addRoleGroups","parameters":[{"name":"role_id","in":"path","description":"Role ID","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupIds"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleGroupList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-71002":{"summary":"Role can not be added","description":"\n* [-71002] Role can not be added","value":{"code":400,"message":"Bad Request","debugInfo":"Role can not be added","errorCode":-71002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-71001":{"summary":"Role not found","description":"\n* [-71001] Role not found","value":{"code":404,"message":"Not Found","debugInfo":"Role not found","errorCode":-71001}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["roles"],"summary":"Revoke granted role from group(s)","description":"### Description:  \nRevoke granted group(s) from a role.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; grant permission on desired role</span> required.  \nFor each role, at least one non-expiring user **MUST** remain who may grant the role.\n\n### Postcondition:\nOne or more groups will be removed from a role.\n\n### Further Information:\nNone.","operationId":"revokeRoleGroups","parameters":[{"name":"role_id","in":"path","description":"Role ID","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupIds"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleGroupList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-71001":{"summary":"Role not found","description":"\n* [-71001] Role not found","value":{"code":404,"message":"Not Found","debugInfo":"Role not found","errorCode":-71001}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/public/shares/uploads/{access_key}":{"get":{"tags":["public"],"summary":"Request public Upload Share information","description":"### Description:  \nProvides information about the desired Upload Share.\n\n### Precondition:\nOnly `userUserPublicKeyList` is returned to the users who owns one of the following permissions: <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span>\n\n### Postcondition:\nNone.\n\n### Further Information:\nIf no password is set, the returned information is reduced to the following attributes (if available):\n\n* `name`\n* `createdAt`\n* `isProtected`\n* `isEncrypted`\n* `showUploadedFiles`\n* `userUserPublicKeyList` (if parent is end-to-end encrypted)\n\nOnly if the password is transmitted as `X-Sds-Share-Password` header, all values are returned.\n","operationId":"requestPublicUploadShareInfo","parameters":[{"name":"X-Sds-Share-Password","in":"header","description":"Upload share password. Should be base64-encoded.\n\nPlain X-Sds-Share-Passwords are *deprecated* and will be removed in the future","schema":{"type":"string"}},{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUploadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50505":{"summary":"No room user has a keypair","description":"\n* [-50505] No room user has a keypair","value":{"code":400,"message":"Bad Request","debugInfo":"No room user has a keypair","errorCode":-50505}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50502":{"summary":"Wrong password for Upload Share link","description":"\n* [-50502] Wrong password for Upload Share link","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong password for Upload Share link","errorCode":-50502}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-51000":{"summary":"(Up-) Download Share is temporarily locked","description":"\n* [-51000] (Up-) Download Share is temporarily locked","value":{"code":403,"message":"Forbidden","debugInfo":"(Up-) Download Share is temporarily locked","errorCode":-51000}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50501":{"summary":"Upload access key not found","description":"\n* [-50501] Upload access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload access key not found","errorCode":-50501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"post":{"tags":["public"],"summary":"Create new file upload channel","description":"### Description:  \nCreate a new upload channel.\n\n### Precondition:\nNone.\n\n### Postcondition:\nUpload channel is created and corresponding upload URL, token & upload ID are returned.\n\n### Further Information:\nUse `uploadUrl` the upload `token` is deprecated.  \n\nPlease provide the size of the intended upload so that the quota can be checked in advanced and no data is transferred unnecessarily.\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `\n","operationId":"createShareUploadChannel","parameters":[{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShareUploadChannelRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShareUploadChannelResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-50505":{"summary":"No room user has a keypair","description":"\n* [-50505] No room user has a keypair","value":{"code":400,"message":"Bad Request","debugInfo":"No room user has a keypair","errorCode":-50505}},"-50506":{"summary":"Exceeds the number of files for this Upload Share","description":"\n* [-50506] Exceeds the number of files for this Upload Share","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80037":{"summary":"Exceeds maximum data length for AES GCM encryption","description":"\n* [-80037] Exceeds maximum data length for AES GCM encryption","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds maximum data length for AES GCM encryption","errorCode":-80037}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50502":{"summary":"Wrong password for Upload Share link","description":"\n* [-50502] Wrong password for Upload Share link","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong password for Upload Share link","errorCode":-50502}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-51000":{"summary":"(Up-) Download Share is temporarily locked","description":"\n* [-51000] (Up-) Download Share is temporarily locked","value":{"code":403,"message":"Forbidden","debugInfo":"(Up-) Download Share is temporarily locked","errorCode":-51000}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50501":{"summary":"Upload access key not found","description":"\n* [-50501] Upload access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload access key not found","errorCode":-50501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90027":{"summary":"S3 connection failed","description":"\n* [-90027] S3 connection failed","value":{"code":504,"message":"Gateway Timeout","debugInfo":"S3 connection failed","errorCode":-90027}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-50504":{"summary":"Exceeds the quota for this Upload Share","description":"\n* [-50504] Exceeds the quota for this Upload Share","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}},"security":[]}},"/v4/public/shares/uploads/{access_key}/{upload_id}/s3_urls":{"post":{"tags":["public"],"summary":"Generate presigned URLs for S3 file upload","description":"### Description:\nGenerate presigned URLs for S3 file upload.\n\n### Precondition:\nValid upload ID\n\n### Postcondition:\nList of presigned URLs is returned.\n\n### Further Information:\nThe size for each part must be >= 5 MB, except for the last part.  \nThe part number of the first part in S3 is 1 (not 0).  \nUse HTTP method `PUT` for uploading bytes via presigned URL.","operationId":"generatePresignedUrlsPublic","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}},{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePresignedUrlsRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresignedUrlList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20503":{"summary":"Upload channel is closed","description":"\n* [-20503] Upload channel is closed","value":{"code":400,"message":"Bad Request","debugInfo":"Upload channel is closed","errorCode":-20503}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80046":{"summary":"Invalid size","description":"\n* [-80046] Invalid size","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid size","errorCode":-80046}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-90034":{"summary":"Corresponding S3 upload ID not found","description":"\n* [-90034] Corresponding S3 upload ID not found","value":{"code":404,"message":"Not Found","debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90027":{"summary":"S3 connection failed","description":"\n* [-90027] S3 connection failed","value":{"code":504,"message":"Gateway Timeout","debugInfo":"S3 connection failed","errorCode":-90027}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50504":{"summary":"Exceeds the quota for this Upload Share","description":"\n* [-50504] Exceeds the quota for this Upload Share","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}},"security":[]}},"/v4/public/shares/downloads/{access_key}":{"get":{"tags":["public"],"summary":"Request public Download Share information","description":"### Description:  \nRetrieve the public information of a Download Share.\n\n### Precondition:\nNone.\n\n### Postcondition:\nDownload Share information is returned.\n\n### Further Information:\nNone.","operationId":"requestPublicDownloadShareInfo","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDownloadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-50000":{"summary":"Download access key not found","description":"\n* [-50000] Download access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Download access key not found","errorCode":-50000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"post":{"tags":["public"],"summary":"Generate download URL","description":"### Description:\nGenerate a download URL to retrieve a shared file.\n\n### Precondition:\nNone.\n\n### Postcondition:\nDownload URL and token are generated and returned.\n\n### Further Information:\nUse `downloadUrl` the download `token` is deprecated.","operationId":"generateDownloadUrlPublic","parameters":[{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDownloadTokenGenerateRequest"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDownloadTokenGenerateResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50000":{"summary":"Download access key not found","description":"\n* [-50000] Download access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Download access key not found","errorCode":-50000}},"-50008":{"summary":"Client-side encryption passwords should not be sent to the server","description":"\n* [-50008] Client-side encryption passwords should not be sent to the server","value":{"code":400,"message":"Bad Request","debugInfo":"Client-side encryption passwords should not be sent to the server","errorCode":-50008}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50009":{"summary":"Wrong password for Download Share link","description":"\n* [-50009] Wrong password for Download Share link","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong password for Download Share link","errorCode":-50009}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-40764":{"summary":"Anti-virus scan still in progress","description":"\n* [-40764] Anti-virus scan still in progress","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan still in progress","errorCode":-40764}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}},"-51000":{"summary":"(Up-) Download Share is temporarily locked","description":"\n* [-51000] (Up-) Download Share is temporarily locked","value":{"code":403,"message":"Forbidden","debugInfo":"(Up-) Download Share is temporarily locked","errorCode":-51000}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-50000":{"summary":"Download access key not found","description":"\n* [-50000] Download access key not found","value":{"code":404,"message":"Not Found","debugInfo":"Download access key not found","errorCode":-50000}},"-50002":{"summary":"Downloads limit reached","description":"\n* [-50002] Downloads limit reached","value":{"code":404,"message":"Not Found","debugInfo":"Downloads limit reached","errorCode":-50002}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"head":{"tags":["public"],"summary":"Check public Download Share password","description":"### Description:\nCheck password for a public Download Share\n\n### Precondition:\nNone.\n\n### Postcondition:\nNone.\n\n### Further Information:\nNone.","operationId":"checkPublicDownloadSharePassword","parameters":[{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}},{"name":"password","in":"query","description":"Download share password","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"406":{"description":"Not Acceptable"}},"security":[]}},"/v4/provisioning/webhooks":{"get":{"tags":["provisioning"],"summary":"Request list of tenant webhooks","description":"### Description:  \nGet a list of webhooks for the tenant scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.\n\n### Postcondition:\nList of webhooks is returned.\n\n### Further Information:  \nOutput is limited to **500** entries.  \nFor more results please use filter criteria and paging (`offset` + `limit`).  \n`EncryptionInfo` is **NOT** provided.  \nWildcard character is the asterisk character: **`*`**\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:cn:goo|createdAt:ge:2015-01-01`  \nGet webhooks where name contains `goo` **AND** webhook creation date is **>=** `2015-01-01`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| **`id`** | Webhook id filter | `eq` | Webhook id equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**). |`positive number`|\n| **`name`** | Webhook type name| `cn, eq` | Webhook name contains / equals value. | `search String` |\n| **`isEnabled`** | Webhook isEnabled filter | `eq` |  | `true or false` |\n| **`createdAt`** | Creation date filter | `ge, le` | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| **`updatedAt`** | Last modification date filter | `ge, le` | Last modification date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `updatedAt:ge:2016-12-31`&#124;`updatedAt:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| **`expiration`** | Expiration date filter | `ge, le, eq` | Expiration date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `expiration:ge:2016-12-31`&#124;`expiration:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| **`lastFailStatus`** | Failure status filter | `eq` | Last HTTP status code. Set when a webhook is auto-disabled due to repeated delivery failures |`positive number`|\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|isEnabled:asc`  \nSort by `name` descending and `isEnabled` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`id`** | Webhook id |\n| **`name`** | Webhook name |\n| **`isEnabled`** | Webhook isEnabled |\n| **`createdAt`** | Creation date |\n| **`updatedAt`** | Last modification date |\n| **`expiration`** | Expiration date |\n\n</details>\n","operationId":"requestListOfTenantWebhooks","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"post":{"tags":["provisioning"],"summary":"Create tenant webhook","description":"### Description:  \nCreate a new webhook for the tenant scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.\n\n### Postcondition:\nWebhook is created for given event types.\n\n### Further Information:\nURL must begin with the `HTTPS` scheme.\nWebhook names are limited to 150 characters.\n\n### Available event types:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Name | Description | Scope |\n| :--- | :--- | :--- |\n| **`customer.created`** | Triggered when a new customer is created | Tenant Webhook |\n| **`customer.deleted`** | Triggered when a user is deleted | Tenant Webhook |\n| **`webhook.expiring`** | Triggered 30/20/10/1 days before a webhook expires |  Tenant Webhook |\n\n</details>","operationId":"createTenantWebhook","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80010":{"summary":"Invalid URL","description":"\n* [-80010] Invalid URL","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid URL","errorCode":-80010}},"-80060":{"summary":"Invalid event type","description":"\n* [-80060] Invalid event type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid event type","errorCode":-80060}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-91001":{"summary":"Exceeds number of allowed webhooks","description":"\n* [-91001] Exceeds number of allowed webhooks","value":{"code":403,"message":"Forbidden","debugInfo":"Exceeds number of allowed webhooks","errorCode":-91001}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/provisioning/webhooks/{webhook_id}/reset_lifetime":{"post":{"tags":["provisioning"],"summary":"Reset tenant webhook lifetime","description":"### Description:  \nReset the lifetime of a webhook for the tenant scope.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.\n\n### Postcondition:\nLifetime of the webhook is reset.\n\n### Further Information:\nNone.","operationId":"resetTenantWebhookLifetime","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/provisioning/customers":{"get":{"tags":["provisioning"],"summary":"Request list of customers","description":"### Description:  \nReceive a list of customers.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required.\n\n### Postcondition:\nList of customers is returned.\n\n### Further Information:\nThis list returns a maximum of **1000** entries.  \n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`trialDaysLeft:le:10|userMax:le:100`  \nGet all customers with `10` trial days left **AND** user maximum **<=** `100`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME`           | Filter Description                | `OPERATOR`  | Operator Description                                                                                                                                                                                                          | `VALUE`                                               |\n|:-----------------------|:----------------------------------|:------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------|\n| `id`                   | Customer ID filter                | `eq`        | Customer ID equals value.                                                                                                                                                                                                     | `positive Integer`                                    |\n| `companyName`          | Company name filter               | `cn`        | Company name contains value.                                                                                                                                                                                                  | `search String`                                       |\n| `customerContractType` | Customer contract type filter     | `eq`        | Customer contract type equals value.                                                                                                                                                                                          | <ul><li>`demo`</li><li>`free`</li><li>`pay`</li></ul> |\n| `trialDaysLeft`        | Left trial days filter            | `ge, le`    | Left trial days are greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `trialDaysLeft:ge:5`&#124;`trialDaysLeft:le:10`                |                                                       |\n| `providerCustomerId`   | Provider Customer ID filter       | `cn, eq`    | Provider Customer ID contains / equals value.                                                                                                                                                                                 | `search String`                                       |\n| `quotaMax`             | Maximum quota filter              | `ge, le`    | Maximum quota is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `quotaMax:ge:1024`&#124;`quotaMax:le:1073741824`                  | `positive Integer`                                    |\n| `quotaUsed`            | Used quota filter                 | `ge, le`    | Used quota is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `quotaUsed:ge:1024`&#124;`quotaUsed:le:1073741824`                   | `positive Integer`                                    |\n| `userMax`              | User maximum filter               | `ge, le`    | User maxiumum is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `userMax:ge:10`&#124;`userMax:le:100`                             | `positive Integer`                                    |\n| `userUsed`             | Number of registered users filter | `ge, le`    | Number of registered users is is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `userUsed:ge:10`&#124;`userUsed:le:100`           | `positive Integer`                                    |\n| `isLocked`             | Lock status filter                | `eq`        |                                                                                                                                                                                                                               | `true or false`                                       |\n| `createdAt`            | Creation date filter              | `ge, le`    | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01`          | `Date (yyyy-MM-dd)`                                   |\n| `updatedAt`            | Last modification date filter     | `ge, le`    | Last modification date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `updatedAt:ge:2016-12-31`&#124;`updatedAt:le:2018-01-01` | `Date (yyyy-MM-dd)`                                   |\n| `lastLoginAt`          | Last login date filter            | `ge, le`    | Last login date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `lastLoginAt:ge:2016-12-31`&#124;`lastLoginAt:le:2018-01-01`    | `Date (yyyy-MM-dd)`                                   |\n| `userLogin`            | User login filter                 | `eq`        | User login name equals value.<br>Search user all logins e.g. `basic`, `active_directory<br/>                                                                                                                                  | `search String`                                       |\n| `attributeKey`         | Customer attribute key filter     | `eq`, `nex` | Customer attribute key equals value / Customer attribute does **NOT** exist at customer                                                                                                                                       | `search String`                                       |\n| `attributeValue`       | Customer attribute value filter   | `eq`        | Customer attribute value equals value.                                                                                                                                                                                        | `search String`                                       |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`activationCode`</del> | Activation code filter | `cn, eq` | Activation code contains / equals value. | `search String` |\n| <del>`lockStatus`</del> | Lock status filter | `eq` |  | <ul><li>`0` - unlocked</li><li>`1` - locked</li></ul> |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`companyName:desc|userUsed:asc`  \nSort by `companyName` descending **AND** `userUsed` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `companyName` | Company name |\n| `customerContractType` | Customer contract type |\n| `trialDaysLeft` | Number of remaining trial days (demo customers) |\n| `providerCustomerId` | Provider Customer ID |\n| `quotaMax` | Maximum quota |\n| `quotaUsed` | Currently used quota |\n| `userMax` | Maximum user number |\n| `userUsed` | Number of registered users |\n| `isLocked` | Lock status of customer |\n| `createdAt` | Creation date |\n| `updatedAt` | Last modification date |\n| `lastLoginAt` | Last login date of any user of this customer |\n\n</details>\n\n### Deprecated sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME`            | Description             |\n|:------------------------|:------------------------|\n| <del>`lockStatus`</del> | Lock status of customer |\n\n</details>","operationId":"requestCustomers","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"include_attributes","in":"query","description":"Include custom customer attributes.","required":false,"schema":{"type":"boolean"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-1":{"summary":"No tenant found","description":"\n* [-1] No tenant found","value":{"code":400,"message":"Not Found","debugInfo":"No tenant found","errorCode":-1}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]},"post":{"tags":["provisioning"],"summary":"Create customer","description":"### Description:\nCreate a new customer.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required.  \n\n### Postcondition:\nA new customer is created.\n\n### Further Information:\nIf no company name is set, first letter of the first name separated by dot followed by last name of the first administrator is used (e.g. `J.Doe`).  \nMax quota has to be at least `1 MB` (= `1.048.576 B`).\n\nIf `basic` authentication is enabled, the first administrator will get `basic` authentication by default.  \nTo create a first administrator without `basic` authentication it **MUST** be disabled explicitly.  \n\nForbidden characters in passwords: [`&`, `'`, `<`, `>`]\n\nForbidden characters in usernames: [`<`, `>`]\n\n### Authentication Method Options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Authentication Method | Option Key                                                                 | Option Value                                                               |\n|:----------------------|:---------------------------------------------------------------------------|:---------------------------------------------------------------------------|\n| `basic` / `sql`       | `username`                                                                 | Unique user identifier                                                     |\n| `active_directory`    | `ad_config_id` (optional)                                                  | Active Directory configuration ID                                          |\n| `username`            | Active Directory username according to authentication setting `userFilter` |                                                                            |\n| `openid`              | `openid_config_id` (optional)                                              | OpenID Connect configuration ID                                            |\n|                       | `username`                                                                 | OpenID Connect username according to authentication setting `mappingClaim` |\n\n</details>\n","operationId":"createCustomer","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewCustomerRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewCustomerResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]},"examples":{"-10002":{"summary":"Password is not secure","description":"\n* [-10002] Password is not secure","value":{"code":400,"message":"Bad Request","debugInfo":"Password is not secure","errorCode":-10002}},"-10100":{"summary":"Invalid authentication method","description":"\n* [-10100] Invalid authentication method","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid authentication method","errorCode":-10100}},"-10102":{"summary":"At least one authentication method must be enabled","description":"\n* [-10102] At least one authentication method must be enabled","value":{"code":400,"message":"Bad Request","debugInfo":"At least one authentication method must be enabled","errorCode":-10102}},"-10013":{"summary":"Not valid IETF language tag","description":"\n* [-10013] Not valid IETF language tag","value":{"code":400,"message":"Bad Request","debugInfo":"Not valid IETF language tag","errorCode":-10013}},"-70106":{"summary":"Only one authentication method allowed","description":"\n* [-70106] Only one authentication method allowed","value":{"code":400,"message":"Bad Request","debugInfo":"Only one authentication method allowed","errorCode":-70106}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80009":{"summary":"Invalid email address","description":"\n* [-80009] Invalid email address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid email address","errorCode":-80009}},"-80015":{"summary":"Invalid key value list because there are duplicate keys present","description":"\n* [-80015] Invalid key value list because there are duplicate keys present","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}},"-80038":{"summary":"Deactivation of initial password change is only allowed without notification","description":"\n* [-80038] Deactivation of initial password change is only allowed without notification","value":{"code":400,"message":"Bad Request","debugInfo":"Deactivation of initial password change is only allowed without notification","errorCode":-80038}},"-90002":{"summary":"No distinct authentication configuration","description":"\n* [-90002] No distinct authentication configuration","value":{"code":400,"message":"Bad Request","debugInfo":"No distinct authentication configuration","errorCode":-90002}},"-90059":{"summary":"No valid Active Directory configuration found","description":"\n* [-90059] No valid Active Directory configuration found","value":{"code":400,"message":"Bad Request","debugInfo":"No valid Active Directory configuration found","errorCode":-90059}},"-90510":{"summary":"Maximum quota must not be less than one MB","description":"\n* [-90510] Maximum quota must not be less than one MB","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum quota must not be less than one MB","errorCode":-90510}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90100":{"summary":"License does not allow further provisioning","description":"\n* [-90100] License does not allow further provisioning","value":{"code":402,"message":"Payment Required","debugInfo":"License does not allow further provisioning","errorCode":-90100}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90035":{"summary":"OpenID Connect IDP configuration not found","description":"\n* [-90035] OpenID Connect IDP configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035}},"-90050":{"summary":"Active Directory configuration not found","description":"\n* [-90050] Active Directory configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Active Directory configuration not found","errorCode":-90050}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70560":{"summary":"User with provided Basic authentication login already exists","description":"\n* [-70560] User with provided Basic authentication login already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided Basic authentication login already exists","errorCode":-70560}},"-70561":{"summary":"User with provided Active Directory username already exists","description":"\n* [-70561] User with provided Active Directory username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided Active Directory username already exists","errorCode":-70561}},"-70563":{"summary":"User with provided OpenID Connect username already exists","description":"\n* [-70563] User with provided OpenID Connect username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided OpenID Connect username already exists","errorCode":-70563}},"-70564":{"summary":"User with provided username already exists","description":"\n* [-70564] User with provided username already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided username already exists","errorCode":-70564}}}}}}},"security":[]}},"/v4/nodes/{node_id}/move_to":{"post":{"tags":["nodes"],"summary":"Move node(s)","description":"### Description:  \nMoves nodes (folder, file) to another parent.\n\n### Precondition:\nAuthenticated user with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> and <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; delete</span> permissions in the source parent and <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; create</span> permissions in the target parent node.\n\n### Postcondition:\nNodes are moved to target parent.\n\n### Further Information:\nNodes **MUST** be in same source parent.  \n**Rooms **CANNOT** be moved.**\n\nDownload share id (if exists) gets changed if:\n- node with the same name exists in the target container\n- `resolutionStrategy` is `overwrite`\n- `keepShareLinks` is `true`\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `\n","operationId":"moveNodes","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Target parent node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveNodesRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"204":{"description":"No Content","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-40014":{"summary":"File cannot be copied or moved without having a file key","description":"\n* [-40014] File cannot be copied or moved without having a file key","value":{"code":400,"message":"Bad Request","debugInfo":"File cannot be copied or moved without having a file key","errorCode":-40014}},"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755,"errorInfos":{"conflictNodes":[{"nodeId":"#","name":"...","errorCode":-40755,"errorMessage":"Bad node name"}]}}},"-41052":{"summary":"Rooms cannot be copied or moved","description":"\n* [-41052] Rooms cannot be copied or moved","value":{"code":400,"message":"Bad Request","debugInfo":"Rooms cannot be copied or moved","errorCode":-41052}},"-41053":{"summary":"File cannot be target of a copy or move operation","description":"\n* [-41053] File cannot be target of a copy or move operation","value":{"code":400,"message":"Bad Request","debugInfo":"File cannot be target of a copy or move operation","errorCode":-41053}},"-41054":{"summary":"Nodes of a copy, move or delete operation must be in same parent","description":"\n* [-41054] Nodes of a copy, move or delete operation must be in same parent","value":{"code":400,"message":"Bad Request","debugInfo":"Nodes of a copy, move or delete operation must be in same parent","errorCode":-41054}},"-41200":{"summary":"Path is too long","description":"\n* [-41200] Path is too long","value":{"code":400,"message":"Bad Request","debugInfo":"Path is too long","errorCode":-41200}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80034":{"summary":"Keeping Share Links is only allowed with conflict mode overwrite","description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"message":"Bad Request","debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-40764":{"summary":"Anti-virus scan still in progress","description":"\n* [-40764] Anti-virus scan still in progress","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan still in progress","errorCode":-40764}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}},"-90716":{"summary":"Move or copy of folders to DUO Rooms not allowed","description":"\n* [-90716] Move or copy of folders to DUO Rooms not allowed","value":{"code":403,"message":"Forbidden","debugInfo":"Move or copy of folders to DUO Rooms not allowed","errorCode":-90716}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-41050":{"summary":"Source node not found","description":"\n* [-41050] Source node not found","value":{"code":404,"message":"Not Found","debugInfo":"Source node not found","errorCode":-41050}},"-41051":{"summary":"Target node not found","description":"\n* [-41051] Target node not found","value":{"code":404,"message":"Not Found","debugInfo":"Target node not found","errorCode":-41051}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40010":{"summary":"Container cannot be overwritten","description":"\n* [-40010] Container cannot be overwritten","value":{"code":409,"message":"Conflict","debugInfo":"Container cannot be overwritten","errorCode":-40010}},"-41001":{"summary":"Node exists already","description":"\n* [-41001] Node exists already","value":{"code":409,"message":"Conflict","debugInfo":"Node exists already","errorCode":-41001,"errorInfos":{"conflictNodes":[{"nodeId":"#","name":"...","errorCode":-41001,"errorMessage":"Node exists already"}]}}},"-41304":{"summary":"Node cannot be copied or moved into its child node","description":"\n* [-41304] Node cannot be copied or moved into its child node","value":{"code":409,"message":"Conflict","debugInfo":"Node cannot be copied or moved into its child node","errorCode":-41304}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}}}},"/v4/nodes/{node_id}/favorite":{"post":{"tags":["nodes"],"summary":"Mark a node (room, folder or file) as favorite","description":"### Description:  \nMarks a node (room, folder or file) as favorite.\n\n### Precondition:\nAuthenticated user is allowed to <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128065; see</span> the node (i.e. `isBrowsable = true`).\n\n### Postcondition:\nA node gets marked as favorite.\n\n### Further Information:\nNone.","operationId":"addFavorite","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["nodes"],"summary":"Unmark a node (room, folder or file) as favorite","description":"### Description:\nUnmarks a node (room, folder or file) as favorite.\n\n### Precondition:\nAuthenticated user is allowed to <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128065; see</span> the node (i.e. `isBrowsable = true`).\n\n### Postcondition:\nA node gets unmarked as favorite.\n\n### Further Information:\nNone.","operationId":"removeFavorite","parameters":[{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41301":{"summary":"Node is not set as favorite","description":"\n* [-41301] Node is not set as favorite","value":{"code":400,"message":"Bad Request","debugInfo":"Node is not set as favorite","errorCode":-41301}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/{node_id}/copy_to":{"post":{"tags":["nodes"],"summary":"Copy node(s)","description":"### Description:\nCopies nodes (folder, file) to another parent.\n\n### Precondition:\nAuthenticated user with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in the source parent and <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; create</span> permissions in the target parent node.\n\n### Postcondition:\nNodes are copied to target parent.\n\n### Further Information:\nNodes **MUST** be in same source parent.  \n**Rooms **CANNOT** be copied.**\n\nDownload share id (if exists) gets changed if:\n- node with the same name exists in the target container\n- `resolutionStrategy` is `overwrite`\n- `keepShareLinks` is `true`\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `\n","operationId":"copyNodes","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Target parent node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CopyNodesRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"204":{"description":"No Content","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-40014":{"summary":"File cannot be copied or moved without having a file key","description":"\n* [-40014] File cannot be copied or moved without having a file key","value":{"code":400,"message":"Bad Request","debugInfo":"File cannot be copied or moved without having a file key","errorCode":-40014}},"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755,"errorInfos":{"conflictNodes":[{"nodeId":"#","name":"...","errorCode":-40755,"errorMessage":"Bad node name"}]}}},"-41052":{"summary":"Rooms cannot be copied or moved","description":"\n* [-41052] Rooms cannot be copied or moved","value":{"code":400,"message":"Bad Request","debugInfo":"Rooms cannot be copied or moved","errorCode":-41052}},"-41053":{"summary":"File cannot be target of a copy or move operation","description":"\n* [-41053] File cannot be target of a copy or move operation","value":{"code":400,"message":"Bad Request","debugInfo":"File cannot be target of a copy or move operation","errorCode":-41053}},"-41054":{"summary":"Nodes of a copy, move or delete operation must be in same parent","description":"\n* [-41054] Nodes of a copy, move or delete operation must be in same parent","value":{"code":400,"message":"Bad Request","debugInfo":"Nodes of a copy, move or delete operation must be in same parent","errorCode":-41054}},"-41200":{"summary":"Path is too long","description":"\n* [-41200] Path is too long","value":{"code":400,"message":"Bad Request","debugInfo":"Path is too long","errorCode":-41200}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80034":{"summary":"Keeping Share Links is only allowed with conflict mode overwrite","description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"message":"Bad Request","debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-40764":{"summary":"Anti-virus scan still in progress","description":"\n* [-40764] Anti-virus scan still in progress","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan still in progress","errorCode":-40764}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}},"-90716":{"summary":"Move or copy of folders to DUO Rooms not allowed","description":"\n* [-90716] Move or copy of folders to DUO Rooms not allowed","value":{"code":403,"message":"Forbidden","debugInfo":"Move or copy of folders to DUO Rooms not allowed","errorCode":-90716}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-41050":{"summary":"Source node not found","description":"\n* [-41050] Source node not found","value":{"code":404,"message":"Not Found","debugInfo":"Source node not found","errorCode":-41050}},"-41051":{"summary":"Target node not found","description":"\n* [-41051] Target node not found","value":{"code":404,"message":"Not Found","debugInfo":"Target node not found","errorCode":-41051}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40010":{"summary":"Container cannot be overwritten","description":"\n* [-40010] Container cannot be overwritten","value":{"code":409,"message":"Conflict","debugInfo":"Container cannot be overwritten","errorCode":-40010}},"-41001":{"summary":"Node exists already","description":"\n* [-41001] Node exists already","value":{"code":409,"message":"Conflict","debugInfo":"Node exists already","errorCode":-41001,"errorInfos":{"conflictNodes":[{"nodeId":"#","name":"...","errorCode":-41001,"errorMessage":"Node exists already"}]}}},"-41304":{"summary":"Node cannot be copied or moved into its child node","description":"\n* [-41304] Node cannot be copied or moved into its child node","value":{"code":409,"message":"Conflict","debugInfo":"Node cannot be copied or moved into its child node","errorCode":-41304}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}}}},"/v4/nodes/{node_id}/comments":{"get":{"tags":["nodes"],"summary":"Request list of node comments","description":"### Description:\nGet comments for a specific node.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions on the node.\n\n### Postcondition:\nList with comments (sorted by `createdAt` timestamp) is returned.\n\n### Further Information:\nAn empty list is returned if no comments were found.  \nOutput is limited to **500** entries.  \nFor more results please use filter criteria and paging (`offset` + `limit`). \n","operationId":"requestNodeComments","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"hide_deleted","in":"query","description":"Hide deleted comments (default: false)","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["nodes"],"summary":"Create node comment","description":"### Description:\nCreate a comment for a specific node.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions on the node.\n\n### Postcondition:\nComment is created.\n\n### Further Information:\nMaximum allowed text length: **65535** characters.","operationId":"createNodeComment","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNodeCommentRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/zip":{"post":{"tags":["nodes"],"summary":"Generate download URL for ZIP download","description":"### Description:  \nCreate a download URL to retrieve several files in one ZIP archive.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in parent room.\n\n### Postcondition:\nDownload URL is generated and returned.\n\n### Further Information:\nThe token is necessary to access `downloads` resources.  \nZIP download is only available for files and folders.","operationId":"generateDownloadUrlForZipArchive","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZipDownloadRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadTokenGenerateResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-40764":{"summary":"Anti-virus scan still in progress","description":"\n* [-40764] Anti-virus scan still in progress","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan still in progress","errorCode":-40764}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/nodes/zip/download":{"post":{"tags":["nodes"],"summary":"Download files / folders as ZIP archive","description":"### Description:  \nDownload multiple files in a ZIP archive.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in auth parent room.\n\n### Postcondition:\nStream is returned.\n\n### Further Information:\nNone.","operationId":"downloadZipArchive","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZipDownloadRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-40764":{"summary":"Anti-virus scan still in progress","description":"\n* [-40764] Anti-virus scan still in progress","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan still in progress","errorCode":-40764}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}}}}}},"404":{"description":"Not Found","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/octet-stream]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/nodes/rooms":{"post":{"tags":["nodes"],"summary":"Create new room","description":"### Description:\nCreates a new room at the provided parent node.  \nCreation of top level rooms provided.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage</span> permissions in the parent room.\n\n### Postcondition:\nA new room is created.\n\n### Further Information:  \nRooms may only have other rooms as parent.  \nRooms on top level do **NOT** have any parent.  \nRooms may have rooms as children on n hierarchy levels.  \nIf permission inheritance is disabled, there **MUST** be at least one admin user / group (with neither the group nor the user having an expiration date).\n\nNotes are limited to **255** characters.\n\nProvided (or default) classification is taken from room when file gets uploaded without any classification.\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `","operationId":"createRoom","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoomRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-40017":{"summary":"Inheritance of permissions cannot be enabled for top level rooms","description":"\n* [-40017] Inheritance of permissions cannot be enabled for top level rooms","value":{"code":400,"message":"Bad Request","debugInfo":"Inheritance of permissions cannot be enabled for top level rooms","errorCode":-40017}},"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-40756":{"summary":"Invalid classification code","description":"\n* [-40756] Invalid classification code","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid classification code","errorCode":-40756}},"-41200":{"summary":"Path is too long","description":"\n* [-41200] Path is too long","value":{"code":400,"message":"Bad Request","debugInfo":"Path is too long","errorCode":-41200}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80018":{"summary":"Not between 0 and 9999","description":"\n* [-80018] Not between 0 and 9999","value":{"code":400,"message":"Bad Request","debugInfo":"Not between 0 and 9999","errorCode":-80018}},"-80025":{"summary":"Invalid new group member acceptance value","description":"\n* [-80025] Invalid new group member acceptance value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid new group member acceptance value","errorCode":-80025}},"-71013":{"summary":"A guest user can not be a data room admin","description":"\n* [-71013] A guest user can not be a data room admin","value":{"code":400,"message":"Bad Request","debugInfo":"A guest user can not be a data room admin","errorCode":-71013}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Node already exists","description":"Node with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Node with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}/s3_tags":{"get":{"tags":["nodes"],"summary":"Request list of all assigned S3 tags to the room","description":"### Description:  \nRetrieve a list of S3 tags assigned to a room.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nList of assigned S3 tags is returned.\n\n### Further Information:\nNone.","operationId":"requestRoomS3Tags","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-90029":{"summary":"S3 tag not found","description":"\n* [-90029] S3 tag not found","value":{"code":404,"message":"Not Found","debugInfo":"S3 tag not found","errorCode":-90029}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}},"-90032":{"summary":"S3 tags are disabled","description":"\n* [-90032] S3 tags are disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 tags are disabled","errorCode":-90032}}}}}}}},"post":{"tags":["nodes"],"summary":"Set S3 tags for a room","description":"### Description:  \nSet S3 tags to a room.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nProvided S3 tags are assigned to a room.\n\n### Further Information:\nEvery request overrides current S3 tags.  \nMandatory S3 tag IDs **MUST** be sent.","operationId":"setRoomS3Tags","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagIds"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-90029":{"summary":"S3 tag not found","description":"\n* [-90029] S3 tag not found","value":{"code":404,"message":"Not Found","debugInfo":"S3 tag not found","errorCode":-90029}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}},"-90032":{"summary":"S3 tags are disabled","description":"\n* [-90032] S3 tags are disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 tags are disabled","errorCode":-90032}}}}}}}}},"/v4/nodes/rooms/{room_id}/keypairs":{"get":{"tags":["nodes"],"summary":"Request all room rescue key pairs","description":"### Description:  \nRetrieve all room rescue key pairs to allow migrating room-rescue-key-encrypted file keys.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in that room.\n\n### Postcondition:\nList of key pairs is returned.\n\n### Further Information:\nIn the case of an algorithm migration to a room rescue key pair, one should create the new key pair before deleting the old one. This allows re-encrypting file keys with the new key pair, using the old one.\n\nThis API allows to retrieve both key pairs, in contrast to `GET /nodes/rooms/{room_id}/keypair`, which only delivers the preferred one.\n","operationId":"requestRoomRescueKeyPairs","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40007":{"summary":"No room emergency password (rescue key) found","description":"\n* [-40007] No room emergency password (rescue key) found","value":{"code":404,"message":"Not Found","debugInfo":"No room emergency password (rescue key) found","errorCode":-40007}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}}}}},"post":{"tags":["nodes"],"summary":"Create key pair and preserve copy of old private key","description":"### Description:  \nCreate room rescue key pair and preserve copy of old private key.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nRoom rescue key pair is created.  \nCopy of old private key is preserved.\n\n### Further Information:\nYou can submit your old private key, encrypted with your current password.  \nThis allows migrating file keys encrypted with your old key pair to the new one.","operationId":"createAndPreserveRoomRescueKeyPair","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyPairRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-70023":{"summary":"Invalid private key format","description":"\n* [-70023] Invalid private key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid private key format","errorCode":-70023}},"-70027":{"summary":"Customer encryption is not enabled","description":"\n* [-70027] Customer encryption is not enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Customer encryption is not enabled","errorCode":-70027}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40007":{"summary":"No room emergency password (rescue key) found","description":"\n* [-40007] No room emergency password (rescue key) found","value":{"code":404,"message":"Not Found","debugInfo":"No room emergency password (rescue key) found","errorCode":-40007}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}/keypair":{"get":{"tags":["nodes"],"summary":"Request room rescue key","description":"### Description:  \nRetrieve the room rescue key pair.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in that room.\n\n### Postcondition:\nKey pair is returned.\n\n### Further Information:\nNone.","operationId":"requestRoomRescueKeyPair","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40007":{"summary":"No room emergency password (rescue key) found","description":"\n* [-40007] No room emergency password (rescue key) found","value":{"code":404,"message":"Not Found","debugInfo":"No room emergency password (rescue key) found","errorCode":-40007}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["nodes"],"summary":"Set room's rescue key pair","description":"### Description:  \nSet room rescue key pair.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nKey pair is set.\n\n### Further Information:\nRoom rescue key pair can be used to upgrade algorithm.","operationId":"setRoomRescueKeyPair","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-70023":{"summary":"Invalid private key format","description":"\n* [-70023] Invalid private key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid private key format","errorCode":-70023}},"-70027":{"summary":"Customer encryption is not enabled","description":"\n* [-70027] Customer encryption is not enabled","value":{"code":400,"message":"Bad Request","debugInfo":"Customer encryption is not enabled","errorCode":-70027}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40007":{"summary":"No room emergency password (rescue key) found","description":"\n* [-40007] No room emergency password (rescue key) found","value":{"code":404,"message":"Not Found","debugInfo":"No room emergency password (rescue key) found","errorCode":-40007}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70021":{"summary":"User does already have a keypair","description":"\n* [-70021] User does already have a keypair","value":{"code":409,"message":"Conflict","debugInfo":"User does already have a keypair","errorCode":-70021}},"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["nodes"],"summary":"Remove rooms's rescue key pair","description":"### Description:  \nDelete room rescue key pair.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nKey pair is removed (cf. further information below).\n\n### Further Information:\nPlease set a new room rescue key pair first and re-encrypt file keys with it.  \nIf no version is set, deleted key pair with lowest preference value.  \nAlthough, `version` **SHOULD** be set.\n","operationId":"removeRoomRescueKeyPair","parameters":[{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40007":{"summary":"No room emergency password (rescue key) found","description":"\n* [-40007] No room emergency password (rescue key) found","value":{"code":404,"message":"Not Found","debugInfo":"No room emergency password (rescue key) found","errorCode":-40007}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/folders":{"post":{"tags":["nodes"],"summary":"Create new folder","description":"### Description:\nCreate a new folder.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; create</span> permissions in current room.\n\n### Postcondition:\nNew folder is created.\n\n### Further Information:\nFolders **CANNOT** be created on top level (without parent element).  \nNotes are limited to **255** characters.\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `\n","operationId":"createFolder","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFolderRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-41200":{"summary":"Path is too long","description":"\n* [-41200] Path is too long","value":{"code":400,"message":"Bad Request","debugInfo":"Path is too long","errorCode":-41200}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Node already exists","description":"Node with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Node with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/files/{file_id}/downloads":{"post":{"tags":["nodes"],"summary":"Generate download URL","description":"### Description:\nCreate a download URL to retrieve a file without `Authorization` Header.\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in parent room.\n\n### Postcondition:\nDownload token is generated and returned.\n\n### Further Information:\nThe token is necessary to access `downloads` ressources.","operationId":"generateDownloadUrl","parameters":[{"name":"file_id","in":"path","description":"File ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadTokenGenerateResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-40764":{"summary":"Anti-virus scan still in progress","description":"\n* [-40764] Anti-virus scan still in progress","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan still in progress","errorCode":-40764}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/files/uploads":{"post":{"tags":["nodes"],"summary":"Create new file upload channel","description":"### Description:\nThis endpoint creates a new upload channel which is the first step in any file upload workflow.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; create</span> permissions in the parent container (room or folder).\n\n### Postcondition:\nA new upload channel for a file is created.  \nIts ID and an upload token are returned.\n\n### Further Information:\nThe upload ID is used for uploads with `Authorization` header, the upload token can be used for uploads without authentication header.\n\nPlease provide the size of the intended upload so that the quota can be checked in advanced and no data is transferred unnecessarily.\n\nNotes are limited to **255** characters.\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `\n","operationId":"createFileUploadChannel","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFileUploadRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFileUploadResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40755":{"summary":"Bad node name","description":"\n* [-40755] Bad node name","value":{"code":400,"message":"Bad Request","debugInfo":"Bad node name","errorCode":-40755}},"-40756":{"summary":"Invalid classification code","description":"\n* [-40756] Invalid classification code","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid classification code","errorCode":-40756}},"-41200":{"summary":"Path is too long","description":"\n* [-41200] Path is too long","value":{"code":400,"message":"Bad Request","debugInfo":"Path is too long","errorCode":-41200}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}},"-80037":{"summary":"Exceeds maximum data length for AES GCM encryption","description":"\n* [-80037] Exceeds maximum data length for AES GCM encryption","value":{"code":400,"message":"Bad Request","debugInfo":"Exceeds maximum data length for AES GCM encryption","errorCode":-80037}},"-90033":{"summary":"S3 direct upload is enforced","description":"\n* [-90033] S3 direct upload is enforced","value":{"code":400,"message":"Bad Request","debugInfo":"S3 direct upload is enforced","errorCode":-90033}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90027":{"summary":"S3 connection failed","description":"\n* [-90027] S3 connection failed","value":{"code":504,"message":"Gateway Timeout","debugInfo":"S3 connection failed","errorCode":-90027}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}}}},"/v4/nodes/files/uploads/{upload_id}/s3_urls":{"post":{"tags":["nodes"],"summary":"Generate presigned URLs for S3 file upload","description":"### Description:\nGenerate presigned URLs for S3 file upload.\n\n### Precondition:\nAn upload channel has been created and user has to be the creator of the upload channel.\n\n### Postcondition:\nList of presigned URLs is returned.\n\n### Further Information:\nThe size for each part must be >= 5 MB, except for the last part.  \nThe part number of the first part in S3 is 1 (not 0).  \nUse HTTP method `PUT` for uploading bytes via presigned URL.","operationId":"generatePresignedUrlsFiles","parameters":[{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePresignedUrlsRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresignedUrlList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20503":{"summary":"Upload channel is closed","description":"\n* [-20503] Upload channel is closed","value":{"code":400,"message":"Bad Request","debugInfo":"Upload channel is closed","errorCode":-20503}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80046":{"summary":"Invalid size","description":"\n* [-80046] Invalid size","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid size","errorCode":-80046}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-20501":{"summary":"Upload not found","description":"\n* [-20501] Upload not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload not found","errorCode":-20501}},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-90034":{"summary":"Corresponding S3 upload ID not found","description":"\n* [-90034] Corresponding S3 upload ID not found","value":{"code":404,"message":"Not Found","debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90027":{"summary":"S3 connection failed","description":"\n* [-90027] S3 connection failed","value":{"code":504,"message":"Gateway Timeout","debugInfo":"S3 connection failed","errorCode":-90027}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}},"-90200":{"summary":"Exceeds the free customer quota","description":"\n* [-90200] Exceeds the free customer quota","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer quota","errorCode":-90200}}}}}}}}},"/v4/nodes/files/keys":{"post":{"tags":["nodes"],"summary":"Set file keys for a list of users and files","description":"### Description:  \nSets symmetric file keys for several users and files.\n\n### Precondition:\nUser has file keys for the files.  \nOnly settable by users that own one of the following permissions: <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n\n### Postcondition:\nStores new file keys for other users.\n\n### Further Information:\nOnly users with copies of the file key (encrypted with their public keys) can access a certain file.  \nThis endpoint is used for the distribution of file keys amongst an authorized user base.  \nUser can set file key for himself.  \nThe users who already have a file key are ignored and keep the distributed file key\n","operationId":"setUserFileKeys","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFileKeySetBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}},"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":403,"message":"Forbidden","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/files/generate_verdict_info":{"post":{"tags":["nodes"],"summary":"Generate Virus Protection Verdict Information","description":"### Description:\nRetrieve information about the virus protection verdicts of a list of node IDs\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in that room.\nRoom is not encrypted. Global System Policy \"Virus Protection\" is enabled. Room Policy \"Virus Protection is enabled\".\n\n### Postcondition:\nInformation returned.\n\n\n\n","operationId":"generateVirusProtectionInfo","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirusProtectionVerdictRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NodeVirusProtectionInfo"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-41002":{"summary":"Invalid node type","description":"\n* [-41002] Invalid node type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid node type","errorCode":-41002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80064":{"summary":"Policy Violation","description":"\n* [-80064] Policy Violation","value":{"code":400,"message":"Bad Request","debugInfo":"Policy Violation","errorCode":-80064}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-89000":{"summary":"This feature is not available in this product package","description":"\n* [-89000] This feature is not available in this product package","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/deleted_nodes/actions/restore":{"post":{"tags":["nodes"],"summary":"Restore deleted nodes","description":"### Description:  \nRestore a list of deleted nodes.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; create</span> permissions in parent room and <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; restore recycle bin</span> permissions.\n\n### Postcondition:\nThe selected files are moved from the recycle bin to the chosen productive container.\n\n### Further Information:\nIf no parent ID is provided, the node is restored to its previous location.  \nThe default resolution strategy is `autorename` that adds numbers to the file name until the conflict is solved.  \nIf an existing file is overwritten, it is moved to the recycle bin instead of the restored one.\n\nDownload share id (if exists) gets changed if:\n- node with the same name exists in the target container\n- `resolutionStrategy` is `overwrite`\n- `keepShareLinks` is `true`","operationId":"restoreNodes","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreDeletedNodesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-40013":{"summary":"Encrypted file cannot be restored inside another than its original room","description":"\n* [-40013] Encrypted file cannot be restored inside another than its original room","value":{"code":400,"message":"Bad Request","debugInfo":"Encrypted file cannot be restored inside another than its original room","errorCode":-40013}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80034":{"summary":"Keeping Share Links is only allowed with conflict mode overwrite","description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"message":"Bad Request","debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-40764":{"summary":"Anti-virus scan still in progress","description":"\n* [-40764] Anti-virus scan still in progress","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan still in progress","errorCode":-40764}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"0":{"summary":"Not restored nodes","description":"List of not restored nodes due to non-existence","value":"{\n  \"items\": [\n    {\n      \"parentId\": #,\n      \"parentPath\": \"...\",\n      \"name\": \"...\",\n      \"type\": \"...\",\n      \"id\": #\n    }\n  ]\n}"},"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-41100":{"summary":"Deleted node not found","description":"\n* [-41100] Deleted node not found","value":{"code":404,"message":"Not Found","debugInfo":"Deleted node not found","errorCode":-41100}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40010":{"summary":"Container cannot be overwritten","description":"\n* [-40010] Container cannot be overwritten","value":{"code":409,"message":"Conflict","debugInfo":"Container cannot be overwritten","errorCode":-40010}},"-41001":{"summary":"Node exists already","description":"\n* [-41001] Node exists already","value":{"code":409,"message":"Conflict","debugInfo":"Node exists already","errorCode":-41001,"errorInfos":{"conflictNodes":[{"nodeId":"#","name":"...","errorCode":-41001,"errorMessage":"Node exists already"}]}}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40200":{"summary":"Exceeds the free node quota in room","description":"\n* [-40200] Exceeds the free node quota in room","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free node quota in room","errorCode":-40200}}}}}}}}},"/v4/groups":{"get":{"tags":["groups"],"summary":"Request list of user groups","description":"### Description:  \nReturns a list of user groups.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.\n\n### Postcondition: \nList of user groups is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:cn:searchString`  \nFilter by group name containing `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `name` | Group name filter | `cn` | Group name contains value. | `search String` |\n| `hasRole` | (**`NEW`**) Group role filter<br>For more information about roles check **`GET /roles`** API | `eq` | Group role equals value. | <ul><li>`CONFIG_MANAGER` - Manages global configuration</li><li>`USER_MANAGER` - Manages users</li><li>`GROUP_MANAGER` - Manages user groups</li><li>`ROOM_MANAGER` - Manages top level rooms</li><li>`LOG_AUDITOR` - Reads audit logs</li><li>`NONMEMBER_VIEWER` - Views users and groups when having room _\"manage\"_ permission</li></ul> |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:asc|expireAt:desc`  \nSort by `name` ascending **AND** by `expireAt` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Group name |\n| `createdAt` | Creation date |\n| `expireAt` | Expiration date |\n| `cntUsers` | Amount of users |\n\n</details>","operationId":"requestGroups","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["groups"],"summary":"Create new user group","description":"### Description:\nCreate a new user group.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.\n\n### Postcondition: \nA new user group is created.\n\n### Further Information:\n* If a group should **NOT** expire, leave `expireAt` empty.\n* Group names are limited to **150** characters\n* Forbidden characters in group name: [`<`, `>`]\n","operationId":"createGroup","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}},"-80006":{"summary":"Expiration date is in the past","description":"\n* [-80006] Expiration date is in the past","value":{"code":400,"message":"Bad Request","debugInfo":"Expiration date is in the past","errorCode":-80006}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}},"-80008":{"summary":"The year is too far in the future","description":"\n* [-80008] The year is too far in the future","value":{"code":400,"message":"Bad Request","debugInfo":"The year is too far in the future","errorCode":-80008}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Group already exists","description":"Group with specified name already exists","value":{"code":409,"message":"Conflict","debugInfo":"Group with specified name already exists","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/groups/{group_id}/users":{"get":{"tags":["groups"],"summary":"Request group member users or / and users who can become a member","description":"### Description:  \nRetrieve a list of group member users or / and users who can become a member.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.\n\n### Postcondition: \nList of users is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isMember:eq:false|user:cn:searchString`  \nGet all users that are **NOT** in this group **AND** whose (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) is like `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `user` | User filter | `cn` | User contains value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`). | `search String` |\n| `isMember` | Filter group members | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`displayName`</del> | User display name filter (use `user` filter) | `cn` | User display name contains value (`firstName` **OR** `lastName` **OR** `email`). | `search String` |\n\n</details>","operationId":"requestGroupMembers","parameters":[{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupUserList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["groups"],"summary":"Add group members","description":"### Description:\nAdd members to a group.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.\n\n### Postcondition: \nNew members are added to the group.\n\n### Further Information:\nBatch function.  \nThe newly provided members will be added to the existing ones.","operationId":"addGroupMembers","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeGroupMembersRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70510":{"summary":"User already in the group","description":"\n* [-70510] User already in the group","value":{"code":400,"message":"Bad Request","debugInfo":"User already in the group","errorCode":-70510}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-71012":{"summary":"Guest user can not be part of group","description":"\n* [-71012] Guest user can not be part of group","value":{"code":400,"message":"Bad Request","debugInfo":"Guest user can not be part of group","errorCode":-71012}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["groups"],"summary":"Remove group members","description":"### Description:  \nRemove group members.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.\n\n### Postcondition: \nProvided users are removed from the user group.\n\n### Further Information:\nBatch function.  \nThe provided users are removed from the user group. Maximum number of users to remove in one request is 200.","operationId":"removeGroupMembers","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeGroupMembersRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40006":{"summary":"At least one non-expiring admin user / group required","description":"\n* [-40006] At least one non-expiring admin user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006}},"-71006":{"summary":"At least one role user / group required","description":"\n* [-71006] At least one role user / group required","value":{"code":400,"message":"Bad Request","debugInfo":"At least one role user / group required","errorCode":-71006}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80063":{"summary":"Too many items","description":"\n* [-80063] Too many items","value":{"code":400,"message":"Bad Request","debugInfo":"Too many items","errorCode":-80063}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/mst/{config_id}/taxyears":{"get":{"tags":["datev"],"summary":"Request all addable Datev MST tax years","description":"### Description:\n\nRetrieve all addable Datev MST tax years.\n\n### Precondition:\n\nAuthenticated user.\n\n### Postcondition:\n\nDatev MST addable tax years are returned.\n\n### Further Information:\n\nNone.\n\n### Possible errors:\n\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                 | Error Code | Description                 |\n|:----------------------------|:-----------|:----------------------------|\n| `401 Forbidden`             | `-90706`   | Datev authorization invalid |\n| `500 Internal Server Error` |            | System Error                |\n| `502 Bad Gateway`           | `-90701`   | Datev communication failed  |\n\n</details>","operationId":"requestAddableMstTaxYears","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevMstAddableTaxYears"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"post":{"tags":["datev"],"summary":"Create new Datev MST tax year","description":"### Description:\n\nCreate a Datev MST tax year.\n\n### Precondition:\n\nAuthenticated user.\n\n### Postcondition:\n\nDatev MST tax year is created.\n\n### Further Information:\n\nNone.\n\n### Possible errors:\n\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                 | Error Code | Description                 |\n|:----------------------------|:-----------|:----------------------------|\n| `401 Forbidden`             | `-90706`   | Datev authorization invalid |\n| `500 Internal Server Error` |            | System Error                |\n| `502 Bad Gateway`           | `-90701`   | Datev communication failed  |\n\n</details>","operationId":"createMstTaxYear","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevMstCreateTaxYearRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90708":{"summary":"Datev sync configuration not found","description":"\n* [-90708] Datev sync configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Datev sync configuration not found","errorCode":-90708}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/mst/{config_id}/sync":{"post":{"tags":["datev"],"summary":"Execute Datev MST sync","description":"### Description:\n\nExecute the synchronization for an existing Datev MST sync configuration.\n\n### Precondition:\n\nUser needs to be\na <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>\n&#128100; Room Administrator</span>.\n\n### Postcondition:\n\nDatev MST synchronization is executed.\n\n### Further Information:\n\nNone.","operationId":"executeDatevMstSync","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90708":{"summary":"Datev sync configuration not found","description":"\n* [-90708] Datev sync configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Datev sync configuration not found","errorCode":-90708}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/mst/authorization/start":{"post":{"tags":["datev"],"summary":"Start Datev MST authorization","description":"### Description:\n\nStart the OAuth authorization for Datev MST to configure Datev MST sync for a room.\n\n### Precondition:\n\nUser needs to be\na <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>\n&#128100; Room Administrator</span>.\n\n### Postcondition:\n\nA OAuth authorization for Datev MST is started and the related authorization URL is returned.\n\n### Further Information:\n\nNone.","operationId":"startDatevMstAuthorization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevMstAuthorizationStartRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevAuthorizationUrl"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80065":{"summary":"Node must be a room","description":"\n* [-80065] Node must be a room","value":{"code":400,"message":"Bad Request","debugInfo":"Node must be a room","errorCode":-80065}},"-80073":{"summary":"Room must be empty","description":"\n* [-80073] Room must be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Room must be empty","errorCode":-80073}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90709":{"summary":"Datev sync configuration already exists","description":"\n* [-90709] Datev sync configuration already exists","value":{"code":409,"message":"Conflict","debugInfo":"Datev sync configuration already exists","errorCode":-90709}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90700":{"summary":"Datev configuration invalid","description":"\n* [-90700] Datev configuration invalid","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev configuration invalid","errorCode":-90700}}}}}}}}},"/v4/datev/mst/authorization/complete":{"post":{"tags":["datev"],"summary":"Complete Datev MST authorization","description":"### Description:\n\nComplete the OAuth authorization for Datev MST to configure Datev MST sync for a room.\n\n### Precondition:\n\nUser needs to be\na <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>\n&#128100; Room Administrator</span>.\n\n### Postcondition:\n\nA OAuth authorization for Datev MST is completed and a Datev sync configuration is created/updated.\n\n### Further Information:\n\nNone.\n","operationId":"completeDatevMstAuthorization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevAuthorizationCompleteRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80073":{"summary":"Room must be empty","description":"\n* [-80073] Room must be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Room must be empty","errorCode":-80073}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90704":{"summary":"Invalid Datev authorization state","description":"\n* [-90704] Invalid Datev authorization state","value":{"code":404,"message":"Not Found","debugInfo":"Invalid Datev authorization state","errorCode":-90704}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90709":{"summary":"Datev sync configuration already exists","description":"\n* [-90709] Datev sync configuration already exists","value":{"code":409,"message":"Conflict","debugInfo":"Datev sync configuration already exists","errorCode":-90709}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90700":{"summary":"Datev configuration invalid","description":"\n* [-90700] Datev configuration invalid","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev configuration invalid","errorCode":-90700}},"-90701":{"summary":"Datev communication failed","description":"\n* [-90701] Datev communication failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev communication failed","errorCode":-90701}},"-90705":{"summary":"Datev authorization failed","description":"\n* [-90705] Datev authorization failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev authorization failed","errorCode":-90705}},"-90707":{"summary":"Datev authorization access denied","description":"\n* [-90707] Datev authorization access denied","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev authorization access denied","errorCode":-90707}},"-90715":{"summary":"Datev resource not found","description":"\n* [-90715] Datev resource not found","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev resource not found","errorCode":-90715}}}}}}}}},"/v4/datev/duo/{config_id}/sync":{"post":{"tags":["datev"],"summary":"Execute Datev DUO sync","description":"### Description:\n\nExecute the synchronization for an existing Datev DUO sync configuration.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nDatev DUO synchronization is executed.\n\n### Further Information:\nNone.","operationId":"executeDatevDuoSync","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90708":{"summary":"Datev sync configuration not found","description":"\n* [-90708] Datev sync configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Datev sync configuration not found","errorCode":-90708}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/duo/authorization/start":{"post":{"tags":["datev"],"summary":"Start Datev DUO authorization","description":"### Description:\nStart the OAuth authorization for Datev DUO to configure Datev DUO sync for a room.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nA OAuth authorization for Datev DUO is started and the related authorization URL is returned.\n\n### Further Information:  \nNone.","operationId":"startDatevDuoAuthorization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevAuthorizationStartRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevAuthorizationUrl"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80065":{"summary":"Node must be a room","description":"\n* [-80065] Node must be a room","value":{"code":400,"message":"Bad Request","debugInfo":"Node must be a room","errorCode":-80065}},"-80073":{"summary":"Room must be empty","description":"\n* [-80073] Room must be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Room must be empty","errorCode":-80073}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90709":{"summary":"Datev sync configuration already exists","description":"\n* [-90709] Datev sync configuration already exists","value":{"code":409,"message":"Conflict","debugInfo":"Datev sync configuration already exists","errorCode":-90709}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90700":{"summary":"Datev configuration invalid","description":"\n* [-90700] Datev configuration invalid","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev configuration invalid","errorCode":-90700}}}}}}}}},"/v4/datev/duo/authorization/complete":{"post":{"tags":["datev"],"summary":"Complete Datev DUO authorization","description":"### Description:  \nComplete the OAuth authorization for Datev DUO to configure Datev DUO sync for a room.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\n\nA OAuth authorization for Datev DUO is completed and a Datev sync configuration is created/updated.\n\n### Further Information:  \nNone.\n","operationId":"completeDatevDuoAuthorization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevAuthorizationCompleteRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40002":{"summary":"(Target) room is encrypted","description":"\n* [-40002] (Target) room is encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is encrypted","errorCode":-40002}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80073":{"summary":"Room must be empty","description":"\n* [-80073] Room must be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Room must be empty","errorCode":-80073}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90704":{"summary":"Invalid Datev authorization state","description":"\n* [-90704] Invalid Datev authorization state","value":{"code":404,"message":"Not Found","debugInfo":"Invalid Datev authorization state","errorCode":-90704}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90709":{"summary":"Datev sync configuration already exists","description":"\n* [-90709] Datev sync configuration already exists","value":{"code":409,"message":"Conflict","debugInfo":"Datev sync configuration already exists","errorCode":-90709}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90700":{"summary":"Datev configuration invalid","description":"\n* [-90700] Datev configuration invalid","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev configuration invalid","errorCode":-90700}},"-90701":{"summary":"Datev communication failed","description":"\n* [-90701] Datev communication failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev communication failed","errorCode":-90701}},"-90705":{"summary":"Datev authorization failed","description":"\n* [-90705] Datev authorization failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev authorization failed","errorCode":-90705}},"-90707":{"summary":"Datev authorization access denied","description":"\n* [-90707] Datev authorization access denied","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev authorization access denied","errorCode":-90707}},"-90715":{"summary":"Datev resource not found","description":"\n* [-90715] Datev resource not found","value":{"code":502,"message":"Bad Gateway","debugInfo":"Datev resource not found","errorCode":-90715}}}}}}}}},"/v4/auth/reset_password":{"post":{"tags":["auth"],"summary":"Request password reset","description":"### Description:  \nRequest an email with a password reset token for a certain user to reset password.\n\n### Precondition:\nRegistered user account.\n\n### Postcondition:\nProvided user receives email with password reset token.\n\n### Further Information:\nNone.","operationId":"requestPasswordReset","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10013":{"summary":"Not valid IETF language tag","description":"\n* [-10013] Not valid IETF language tag","value":{"code":400,"message":"Bad Request","debugInfo":"Not valid IETF language tag","errorCode":-10013}},"-10105":{"summary":"Password cannot be reset for this user","description":"\n* [-10105] Password cannot be reset for this user","value":{"code":400,"message":"Bad Request","debugInfo":"Password cannot be reset for this user","errorCode":-10105}},"-10107":{"summary":"Password can only be reset every 5 minutes","description":"\n* [-10107] Password can only be reset every 5 minutes","value":{"code":400,"message":"Bad Request","debugInfo":"Password can only be reset every 5 minutes","errorCode":-10107}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80007":{"summary":"Maximum allowed length is exceeded","description":"\n* [-80007] Maximum allowed length is exceeded","value":{"code":400,"message":"Bad Request","debugInfo":"Maximum allowed length is exceeded","errorCode":-80007}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/auth/recover_username":{"post":{"tags":["auth"],"summary":"Recover username","description":"### Description:  \nRequest an email with the user names of all accounts connected to the email.\n\n### Precondition:\nValid email address.\n\n### Postcondition:\nAn email is sent to the provided address, with a list of account user names connected to it.\n\n### Further Information:\nNone.\n","operationId":"recoverUserName","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecoverUserNameRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80009":{"summary":"Invalid email address","description":"\n* [-80009] Invalid email address","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid email address","errorCode":-80009}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/users/{user_id}/rooms":{"get":{"tags":["users"],"summary":"Request rooms granted to the user or / and rooms that can be granted","description":"### Description:  \nRetrieves a list of rooms granted to the user and / or that can be granted.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.\n\n### Postcondition:\nList of rooms is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isGranted:eq:true|isLastAdmin:eq:true|name:cn:searchString`  \nGet all rooms that the user is granted **AND** is last admin **AND** whose name is like `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `name` | Room name filter | `cn` | Room name contains value. | `search String` |\n| `isGranted` | Filter the rooms which the user is (not) granted. | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n| `isLastAdmin` | Filter the rooms which the user is last room administrator.<br>Only in connection with `isGranted:eq:true` filter possible. | `eq` |  | `true` |\n| `effectivePerm` | Filter rooms with DIRECT or DIRECT **AND** EFFECTIVE permissions<ul><li>`false`: DIRECT permissions</li><li>`true`: DIRECT **AND** EFFECTIVE permissions</li><li>`any`: DIRECT **AND** EFFECTIVE **AND** OVER GROUP permissions</li></ul>DIRECT means: e.g. room administrator grants `read` permissions to group of users **directly** on desired room.<br>EFFECTIVE means: e.g. group of users gets `read` permissions on desired room through **inheritance**.<br>OVER GROUP means: e.g. user gets `read` permissions on desired room through **group membership**. | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `false` |\n\n</details>","operationId":"requestUsersRooms","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomTreeDataList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/users/{user_id}/roles":{"get":{"tags":["users"],"summary":"Request user's granted roles","description":"### Description:  \nRetrieve a list of all roles granted to a user.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.\n\n### Postcondition:\nList of granted roles is returned.\n\n### Further Information:\nNone.","operationId":"requestUserRoles","parameters":[{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/users/{user_id}/last_admin_rooms":{"get":{"tags":["users"],"summary":"Request rooms where the user is last admin","description":"### Description:  \nRetrieve a list of all rooms where the user is last admin (except homeroom and its subordinary rooms).\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.\n\n### Postcondition:\nList of rooms is returned. \n\n### Further Information:\nAn empty list is returned if no rooms were found where the user is last admin.","operationId":"requestLastAdminRoomsUsers","parameters":[{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LastAdminUserRoomList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/users/{user_id}/groups":{"get":{"tags":["users"],"summary":"Request groups that user is a member of or / and can become a member","description":"### Description:  \nRetrieves a list of groups a user is member of and / or can become a member.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.\n\n### Postcondition:\nList of groups is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isMember:eq:false|name:cn:searchString`  \nGet all groups that the user is **NOT** member of **AND** whose name is like `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `name` | Group name filter | `cn` | Group name contains value. | `search String` |\n| `isMember` | Filter the groups which the user is (not) member of | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n\n</details>","operationId":"requestUserGroups","parameters":[{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/ping":{"get":{"tags":["user"],"summary":"(authenticated) Ping","description":"### Description:\nTest connection to DRACOON Server (while authenticated).\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\n`200 OK` with principal information is returned if successful.\n\n### Further Information:\nNone.","operationId":"pingUser","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[text/plain]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}}},"/v4/user/oauth/authorizations":{"get":{"tags":["user"],"summary":"Request list of OAuth client authorizations","description":"### Description:  \nRetrieve information about all OAuth client authorizations.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of OAuth client authorizations is returned.\n\n### Further Information:\n\n### Filtering:\nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isStandard:eq:true`  \nGet standard OAuth clients.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `isStandard` | Standard client filter | `eq` |  | `true or false` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`clientName:desc`  \nSort by `clientName` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `clientName` | Client name |\n\n</details>","operationId":"requestOAuthAuthorizations","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OAuthAuthorization"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/oauth/approvals":{"get":{"tags":["user"],"summary":"Request list of OAuth client approvals","description":"### Functional Description:  \nRetrieve information about all OAuth client approvals.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nNone.\n\n### Further Information:\nNone.\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`clientName:desc`  \nSort by `clientName` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `clientName` | Client name |\n\n</details>","operationId":"requestOAuthApprovals","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OAuthApproval"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/notifications/config":{"get":{"tags":["user"],"summary":"Request list of notification configurations","description":"### Description:  \nRetrieve a list of notification configurations for current user. \n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of available notification configurations is returned.\n\n### Further Information:\nNone.","operationId":"requestListOfNotificationConfigs","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationConfigList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/account/mfa":{"get":{"tags":["user"],"summary":"Request information about the user's mfa status","description":"### Description:\nRequest information about the user's mfa status\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nNone.\n\n### Further Information:\nNone.","operationId":"getMfaStatusForUser","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMfaStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["user"],"summary":"Using emergency-code","description":"### Description:\nUsing emergency code for login\n\n### Precondition:\nUser has MFA enabled and is already logged in with account/pw (aka pre-Auth-Role)\n\n### Postcondition:\nAll MFA-setups for the user are deleted.\n\n### Further Information:\n\n\n","operationId":"useEmergencyCode","parameters":[{"name":"emergency_code","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10110":{"summary":"Second factor token not valid","description":"\n* [-10110] Second factor token not valid","value":{"code":400,"message":"Bad Request","debugInfo":"Second factor token not valid","errorCode":-10110}},"-10111":{"summary":"Could not find MFA setup","description":"\n* [-10111] Could not find MFA setup","value":{"code":400,"message":"Bad Request","debugInfo":"Could not find MFA setup","errorCode":-10111}},"-10113":{"summary":"Cannot delete last MFA setup when MFA is enforced","description":"\n* [-10113] Cannot delete last MFA setup when MFA is enforced","value":{"code":400,"message":"Bad Request","debugInfo":"Cannot delete last MFA setup when MFA is enforced","errorCode":-10113}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"204":{"description":"No Content"}}}},"/v4/user/account/customer/keypair":{"get":{"tags":["user"],"summary":"Request customer's key pair","description":"### Use `GET /settings/keypair` API\n\n### Description:  \nRetrieve the customer rescue key pair.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nKey pair is returned.\n\n### Further Information:\nThe private key is password-based encrypted with `AES256` / `PBKDF2`.","operationId":"requestCustomerKeyPair","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/system/config/storage/s3/tags/{id}":{"get":{"tags":["system-storage-config"],"summary":"Request S3 tag","description":"### Description:  \nRetrieve single S3 tag.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nS3 tag is returned.\n\n### Further Information:\nNone.","operationId":"requestS3Tag","parameters":[{"name":"id","in":"path","description":"S3 tag ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Tag"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90029":{"summary":"S3 tag not found","description":"\n* [-90029] S3 tag not found","value":{"code":404,"message":"Not Found","debugInfo":"S3 tag not found","errorCode":-90029}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}},"-90032":{"summary":"S3 tags are disabled","description":"\n* [-90032] S3 tags are disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 tags are disabled","errorCode":-90032}}}}}}}},"delete":{"tags":["system-storage-config"],"summary":"Remove S3 tag","description":"### Description:  \nDelete S3 tag.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nS3 tag gets deleted.\n\n### Further Information:\nNone.","operationId":"removeS3Tag","parameters":[{"name":"id","in":"path","description":"S3 tag ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90029":{"summary":"S3 tag not found","description":"\n* [-90029] S3 tag not found","value":{"code":404,"message":"Not Found","debugInfo":"S3 tag not found","errorCode":-90029}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}},"-90032":{"summary":"S3 tags are disabled","description":"\n* [-90032] S3 tags are disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 tags are disabled","errorCode":-90032}}}}}}}}},"/v4/system/config/settings/infrastructure":{"get":{"tags":["system-settings-config"],"summary":"Request infrastructure properties","description":"### Description:  \nDRACOON infrastructure properties entry point.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nReturns a list of read-only infrastructure properties.\n\n### Further Information:\nSource: `core-service.properties`\n\n### Read-only infrastructure properties:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| `smsConfigEnabled` | Determines whether sending of share passwords via SMS is **system-wide** enabled. | `true or false` |\n| `mediaServerConfigEnabled` | Determines whether media server is **system-wide** enabled. | `true or false` |\n| `s3DefaultRegion` | Suggested S3 region | `Region name` |\n| `s3EnforceDirectUpload` | Enforce direct upload to S3 | `true or false` |\n| `dracoonCloud` | Determines if the **DRACOON Core** is deployed in the cloud environment | `true or false` |\n| `tenantUuid` | Current tenant UUID | `UUID` |\n\n</details>","operationId":"requestInfrastructureProperties","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfrastructureProperties"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/system/config/policies/passwords/{password_type}":{"get":{"tags":["system-policies-config"],"summary":"Request password policies for a certain password type","description":"### Description:  \nRetrieve a list of configured password policies for a certain password type:  \n* `login`\n* `shares`\n* `encryption`\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nList of configured password policies is returned.\n\n### Further Information:\nNone.\n\n### Available password policies:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Name | Description | Value | Password Type |\n| :--- | :--- | :--- | :--- |\n| `mustContainCharacters` | Characters which a password must contain:<br><ul><li>`alpha` - at least one alphabetical character (`uppercase` **OR** `lowercase`)<pre>a b c d e f g h i j k l m n o p q r s t u v w x y z<br>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</pre></li><li>`uppercase` - at least one uppercase character<pre>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</pre></li><li>`lowercase` - at least one lowercase character<pre>a b c d e f g h i j k l m n o p q r s t u v w x y z</pre></li><li>`numeric` - at least one numeric character<pre>0 1 2 3 4 5 6 7 8 9</pre></li><li>`special` - at least one special character (letters and digits excluded)<pre>! \" # $ % ( ) * + , - . / : ; = ? @ [ \\ ] ^ _ { &#124; } ~</pre></li><li>`none` - none of the above</li></ul> | <ul><li>`alpha`</li><li>`uppercase`</li><li>`lowercase`</li><li>`numeric`</li><li>`special`</li><li>`none`</li></ul> | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `numberOfCharacteristicsToEnforce` | Number of characteristics to enforce.<br>e.g. from `[\"uppercase\", \"lowercase\", \"numeric\", \"special\"]`<br>all 4 character sets can be enforced; but also only 2 of them | `Integer between 0 and 4` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `minLength` | Minimum number of characters a password must contain. | `Integer between 1 and 1024` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `rejectDictionaryWords` | Determines whether a password must **NOT** contain word(s) from a dictionary.<br>In `core-service.properties` a path to directory with dictionary files (`*.txt`) can be defined<br>cf. `policies.passwords.dictionary.directory`.<br><br>If this rule gets enabled `policies.passwords.dictionary.directory` must be defined and contain dictionary files.<br>Otherwise, the rule will not have any effect on password validation process. | `true or false` | <ul><li>`login`</li><li>`shares`</li></ul> |\n| `rejectUserInfo` | Determines whether a password must **NOT** contain user info.<br>Affects user's **first name**, **last name**, **email** and **user name**. | `true or false` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `rejectKeyboardPatterns` | Determines whether a password must **NOT** contain keyboard patterns.<br>e.g. `qwertz`, `asdf` (min. 4 character pattern) | `true or false` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `numberOfArchivedPasswords` | Number of passwords to archive.<br>Value `0` means that password history is disabled. | `Integer between 0 and 10` | <ul><li>`login`</li></ul> |\n| `passwordExpiration.enabled` | Determines whether password expiration is enabled. | `true or false` | <ul><li>`login`</li></ul> |\n| `maxPasswordAge` | Maximum allowed password age (in **days**) | `positive Integer` | <ul><li>`login`</li></ul> |\n| `userLockout.enabled` | Determines whether user lockout is enabled. | `true or false` | <ul><li>`login`</li></ul> |\n| `maxNumberOfLoginFailures` | Maximum allowed number of failed login attempts. | `positive Integer` | <ul><li>`login`</li></ul> |\n| `lockoutPeriod` | Amount of **minutes** a user has to wait to make another login attempt<br>after `maxNumberOfLoginFailures` has been exceeded. | `positive Integer` | <ul><li>`login`</li></ul> |\n\n</details>","operationId":"requestPasswordPoliciesForPasswordType","parameters":[{"name":"password_type","in":"path","description":"Password type","required":true,"schema":{"type":"string","enum":["login","encryption","shares"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPoliciesConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80036":{"summary":"Invalid password type","description":"\n* [-80036] Invalid password type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid password type","errorCode":-80036}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/shares/uploads/{share_id}/qr":{"get":{"tags":["shares"],"summary":"Request Upload Share via QR Code","description":"### Description:  \nRetrieve detailed information about one Upload Share (aka File Request).\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span> permissions on target container.\n\n### Postcondition:\nUpload Share is returned.\n\n### Further Information:\nNone.","operationId":"requestUploadShareQr","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60500":{"summary":"Upload Share not found","description":"\n* [-60500] Upload Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Upload Share not found","errorCode":-60500}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/shares/downloads/{share_id}/qr":{"get":{"tags":["shares"],"summary":"Request Download Share via QR Code","description":"### Description:  \nRetrieve detailed information about one Download Share.\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span> permissions on target node.\n\n### Postcondition:\nDownload Share is returned\n\n### Further Information:\nNone.","operationId":"requestDownloadShareQr","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-60000":{"summary":"Download Share not found","description":"\n* [-60000] Download Share not found","value":{"code":404,"message":"Not Found","debugInfo":"Download Share not found","errorCode":-60000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/settings/webhooks/event_types":{"get":{"tags":["settings"],"summary":"Request list of event types","description":"### Description:  \nGet a list of available (for <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span>) event types.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.\n\n### Postcondition:\nList of available event types is returned.\n\n### Further Information:\nNone.\n","operationId":"requestListOfEventTypesForConfigManager","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/roles":{"get":{"tags":["roles"],"summary":"Request all roles with assigned rights","description":"### Description:  \nRetrieve a list of all roles with assigned rights.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.\n\n### Postcondition:\nList of roles with assigned rights is returned.\n\n### Further Information:\nNone.","operationId":"requestRoles","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/resources/users/{user_id}/avatar/{uuid}":{"get":{"tags":["resources"],"summary":"Request user avatar","description":"### Description:\nGet user avatar.\n\n### Precondition:\nValid user ID and avatar UUID\n\n### Postcondition:\nAvatar is returned.\n\n### Further Information:\nNone.","operationId":"requestUserAvatar","parameters":[{"name":"uuid","in":"path","description":"UUID of the avatar","required":true,"schema":{"type":"string"}},{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70028":{"summary":"Avatar not found","description":"\n* [-70028] Avatar not found","value":{"code":404,"message":"Not Found","debugInfo":"Avatar not found","errorCode":-70028}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/resources/user/notifications/scopes":{"get":{"tags":["resources"],"summary":"Request list of subscription scopes","description":"### Description:\nRetrieve a list of subscription scopes.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of scopes is returned.\n\n### Further Information:\nNone.","operationId":"requestSubscriptionScopes","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationScopeList"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/public/time":{"get":{"tags":["public"],"summary":"Request system time","description":"### Description:  \nRetrieve the actual server time.\n\n### Precondition:\nNone.\n\n### Postcondition:\nServer time is returned.\n\n### Further Information:\nNone.","operationId":"requestSystemTime","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SdsServerTime"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/public/system/info":{"get":{"tags":["public"],"summary":"Request system information","description":"### Description:  \nProvides information about system.\n\n### Precondition:\nNone.\n\n### Postcondition:\nSystem information is returned.\n\n### Further Information:\nAuthentication methods are sorted by **priority** attribute.  \nSmaller values have higher priority.  \nAuthentication method with the highest priority is considered as default.\n\n### System information:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting                 | Description                                             | Value            |\n|:------------------------|:--------------------------------------------------------|:-----------------|\n| `languageDefault`       | Defines which language should be default.               | `ISO 639-1 code` |\n| `hideLoginInputFields`  | Defines if login fields should be hidden.               | `true or false`  |\n| `s3Hosts`               | List of available S3 hosts.                             | `String array`   |\n| `s3EnforceDirectUpload` | Determines whether S3 direct upload is enforced or not. | `true or false`  |\n| `useS3Storage`          | Determines whether S3 Storage enabled and used.         | `true or false`  |\n\n</details>\n\n### Authentication methods:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Authentication Method  | Description                                                                                                                                                                         |\n|:-----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `basic`                | **Basic** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their credentials stored in the database.<br>Formerly known as `sql`. |\n| `active_directory`     | **Active Directory** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their Active Directory credentials.                        |\n| `openid`               | **OpenID Connect** authentication globally allowed.This option **MUST** be activated to allow users to log in with their OpenID Connect identity.                                   |\n| `hideLoginInputFields` | Determines whether input fields for login should be enabled                                                                                                                         |\n\n</details>","externalDocs":{"description":"Tags for Identifying Languages","url":"https://tools.ietf.org/html/rfc5646"},"operationId":"requestSystemInfo","parameters":[{"name":"is_enabled","in":"query","description":"Show only enabled authentication methods","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemInfo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/public/system/info/auth/openid":{"get":{"tags":["public"],"summary":"Request OpenID Connect provider authentication information","description":"### Description:  \nProvides information about OpenID Connect authentication options.\n\n### Precondition:\nNone.\n\n### Postcondition:\nOpenID Connect authentication options information is returned.\n\n### Further Information:\nNone.","operationId":"requestOpenIdAuthInfo","parameters":[{"name":"is_global_available","in":"query","description":"Show only global available items","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdAuthInfo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/public/system/info/auth/ad":{"get":{"tags":["public"],"summary":"Request Active Directory authentication information","description":"### Description:  \nProvides information about Active Directory authentication options.\n\n### Precondition:\nNone.\n\n### Postcondition:\nActive Directory authentication options information is returned.\n\n### Further Information:\nNone.","operationId":"requestActiveDirectoryAuthInfo","parameters":[{"name":"is_global_available","in":"query","description":"Show only global available items","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryAuthInfo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/public/software/version":{"get":{"tags":["public"],"summary":"Request software version information","description":"### Description:  \nPublic software version information.\n\n### Precondition:\nNone.\n\n### Postcondition:\nSofware version information is returned.\n\n### Further Information:\n\nNone.","operationId":"requestSoftwareVersion","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoftwareVersionData"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/public/software/third_party_dependencies":{"get":{"tags":["public"],"summary":"Request third-party software dependencies","description":"### Description:  \nProvides information about used third-party software dependencies.\n\n### Precondition:\nNone.\n\n### Postcondition:\nList of the third-party software dependencies used by **DRACOON Core** (referred to as _\"Server\"_) is returned.\n\n### Further Information:\nNone.\n\n","operationId":"requestThirdPartyDependencies","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ThirdPartyDependenciesData"}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"deprecated":true,"security":[]}},"/v4/provisioning/webhooks/event_types":{"get":{"tags":["provisioning"],"summary":"Request list of event types","description":"### Description:  \nGet a list of available event types.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.\n\n### Postcondition:\nList of available event types is returned.\n\n### Further Information:\nNone.","operationId":"requestListOfEventTypesForTenant","parameters":[{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-91000":{"summary":"Webhook not found","description":"\n* [-91000] Webhook not found","value":{"code":404,"message":"Not Found","debugInfo":"Webhook not found","errorCode":-91000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/provisioning/customers/{customer_id}/users":{"get":{"tags":["provisioning"],"summary":"Request list of customer users","description":"### Description:  \nReceive a list of users associated with a certain customer.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required.\n\n### Postcondition:\nList of customer users is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nExcept for `login`, `firstName` and  `lastName` - these are connected via logical disjunction (**OR**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`login:cn:searchString_1|firstName:cn:searchString_2|lockStatus:eq:2`  \nFilter users by login contains `searchString_1` **OR** firstName contains `searchString_2` **AND** those who are **NOT** locked.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `email` | Email filter | `eq`, `cn` | Email contains value. | `search String` |\n| `userName` | User name filter | `eq`, `cn` | UserName contains value. | `search String` |\n| `firstName` | User first name filter | `cn` | User first name contains value. | `search String` |\n| `lastName` | User last name filter | `cn` | User last name contains value. | `search String` |\n| `isLocked` | User lock status filter | `eq` |  | `true or false` |\n| `effectiveRoles` | Filter users with DIRECT or DIRECT **AND** EFFECTIVE roles<ul><li>`false`: DIRECT roles</li><li>`true`: DIRECT **AND** EFFECTIVE roles</li></ul>DIRECT means: e.g. user gets role **directly** granted from someone with _grant permission_ right.<br>EFFECTIVE means: e.g. user gets role through **group membership**. | `eq` |  | `true or false`<br>default: `false` |\n| `createdAt` | Creation date filter | `ge, le` | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| `phone` | Phone filter | `eq` | Phone equals value. | `search String` |\n| `isEncryptionEnabled` | Encryption status filter<ul><li>client-side encryption</li><li>private key possession</li></ul> | `eq` |  | `true or false` |\n| `hasRole` | (**`NEW`**) User role filter<br>Depends on **effectiveRoles**.<br>For more information about roles check **`GET /roles`** API | `eq`, `neq` | User role equals value. | <ul><li>`CONFIG_MANAGER` - Manages global configuration</li><li>`USER_MANAGER` - Manages users</li><li>`GROUP_MANAGER` - Manages user groups</li><li>`ROOM_MANAGER` - Manages top level rooms</li><li>`LOG_AUDITOR` - Reads audit logs</li><li>`NONMEMBER_VIEWER` - Views users and groups when having room _\"manage\"_ permission</li><li>`USER` - Regular User role</li><li>`GUEST_USER` - Guest User role</li></ul> |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`lockStatus`</del> | User lock status filter | `eq` | User lock status equals value. | <ul><li>`0` - Locked</li><li>`1` - Web access allowed</li><li>`2` - Web and mobile access allowed</li></ul> |\n| <del>`login`</del> |  User login filter | `cn` | User login contains value. | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`firstName:asc|lastLoginSuccessAt:desc`  \nSort by `firstName` ascending **AND** by `lastLoginSuccessAt` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `userName` | User name |\n| `email` | User email |\n| `firstName` | User first name |\n| `lastName` | User last name |\n| `isLocked` | User lock status |\n| `lastLoginSuccessAt` | Last successful login date |\n| `expireAt` | Expiration date |\n| `createdAt` | Creation date |\n\n</details>\n\n### Deprecated sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| <del>`gender`</del> | Gender |\n| <del>`lockStatus`</del> | User lock status |\n| <del>`login`</del> | User login |\n\n</details>","operationId":"requestCustomerUsers","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"customer_id","in":"path","description":"Customer ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"include_attributes","in":"query","description":"Include custom user attributes.","required":false,"schema":{"type":"boolean"}},{"name":"include_roles","in":"query","description":"Include roles","required":false,"schema":{"type":"boolean"}},{"name":"include_manageable_rooms","in":"query","description":"Include hasManageableRooms (deprecated)","required":false,"schema":{"type":"boolean"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90103":{"summary":"Customer not found","description":"\n* [-90103] Customer not found","value":{"code":404,"message":"Not Found","debugInfo":"Customer not found","errorCode":-90103}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/nodes":{"get":{"tags":["nodes"],"summary":"Request list of nodes","description":"### Description:  \nProvides a hierarchical list of file system nodes (rooms, folders or files) of a given parent that are accessible by the current user.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of nodes is returned.\n\n### Further Information:\n`EncryptionInfo` is **NOT** provided.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`type:eq:room:folder|perm:eq:read`  \nGet nodes where type equals (`room` **OR** `folder`) **AND** user has `read` permissions.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `type` | Node type filter | `eq` | Node type equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `type:eq:room:folder` | <ul><li>`room`</li><li>`folder`</li><li>`file`</li></ul> |\n| `perm` | Permission filter | `eq` | Permission equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `perm:eq:read:create:delete` | <ul><li>`manage`</li><li>`read`</li><li>`change`</li><li>`create`</li><li>`delete`</li><li>`manageDownloadShare`</li><li>`manageUploadShare`</li><li>`canReadRecycleBin`</li><li>`canRestoreRecycleBin`</li><li>`canDeleteRecycleBin`</li></ul> |\n| `childPerm` | Same as `perm`, but less restrictive (applies to child nodes only).<br>Child nodes of the parent node which do not meet the filter condition<br>are **NOT** returned. | `eq` | cf. `perm` | cf. `perm` |\n| `name` | Node name filter | `cn, eq` | Node name contains / equals value. | `search String` |\n| `encrypted` | Node encryption status filter | `eq` |  | `true or false` |\n| `branchVersion` | Node branch version filter | `ge, le` | Branch version is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `branchVersion:ge:1423280937404`&#124;`branchVersion:le:1523280937404` | `version number` |\n| `timestampCreation` | Creation timestamp filter | `ge, le` | Creation timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampCreation:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampCreation:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |\n| `timestampModification` | Modification timestamp filter | `ge, le` | Modification timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampModification:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampModification:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |\n| `referenceId`           | Reference ID filter               | `eq` | Reference ID equals value.   | `Integer ` |\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.  \nNodes are sorted by type first, then by sent sort string.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|fileType:asc`  \nSort by `name` descending **AND** `fileType` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Node name |\n| `createdAt` | Creation date |\n| `createdBy` | Creator first name, last name |\n| `updatedAt` | Last modification date |\n| `updatedBy` | Last modifier first name, last name |\n| `fileType` | File type (extension) |\n| `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |\n| `size` | Node size |\n| `cntDeletedVersions` | Number of deleted versions of this file / folder (**NOT** recursive; for files and folders only) |\n| `timestampCreation` | Creation timestamp |\n| `timestampModification` | Modification timestamp |\n\n</details>\n\n### Deprecated sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| <del>`cntChildren`</del> | Number of direct children (**NOT** recursive; for rooms and folders only) |\n\n</details>","operationId":"requestNodes","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"depth_level","in":"query","description":"* `0` - top level nodes only\n\n* `n` (any positive number) - include `n` levels starting from the current node","required":false,"deprecated":true,"schema":{"type":"integer","format":"int32"}},{"name":"parent_id","in":"query","description":"Parent node ID.\n\nOnly rooms and folders can be parents.\n\nParent ID `0` or empty is the root node.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"room_manager","in":"query","description":"Show all rooms for management perspective.\n\nOnly possible for _Rooms Managers_ / _Room Admins_.\n\nFor all other users, it will be ignored.","required":false,"schema":{"type":"boolean"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"show_subscription","in":"query","description":"Show subscription information (default: false)","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeList"}}}},"400":{"description":"Bad Request\n* [-80024] Invalid range parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["nodes"],"summary":"Remove nodes","description":"### Description:\nDelete nodes (room, folder or file).\n\n### Precondition:\nAuthenticated user with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; delete</span> permissions on supplied nodes (for folders or files) or on superordinated node (for rooms).\n\n### Postcondition:\nNodes are deleted.\n\n### Further Information:\nNodes **MUST** be in same parent.","operationId":"removeNodes","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteNodesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40009":{"summary":"Room which is defined as Home Room Parent cannot be deleted","description":"\n* [-40009] Room which is defined as Home Room Parent cannot be deleted","value":{"code":400,"message":"Bad Request","debugInfo":"Room which is defined as Home Room Parent cannot be deleted","errorCode":-40009}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-40764":{"summary":"Anti-virus scan still in progress","description":"\n* [-40764] Anti-virus scan still in progress","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan still in progress","errorCode":-40764}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}},"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":"{\n  \"code\": 403,\n  \"message\": \"Forbidden\",\n  \"debugInfo\": \"User is not authorized to perform this operation\",\n  \"errorCode\": -10006,\n  \"errorInfos\": {\n    \"conflictNodes\": [\n      {\n        \"nodeId\": #,\n        \"name\": \"null\",\n        \"errorCode\": null,\n        \"errorMessage\": null\n      }\n    ]\n  }\n}"},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/{node_id}":{"get":{"tags":["nodes"],"summary":"Request node","description":"### Description:  \nGet node (room, folder or file).\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in auth parent room.\n\n### Postcondition:\nRequested node is returned.\n\n### Further Information:\nNone.","operationId":"requestNode","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["nodes"],"summary":"Remove node","description":"### Description:\nDelete node (room, folder or file).\n\n### Precondition:\nAuthenticated user with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; delete</span> permissions on supplied nodes (for folders or files) or on superordinated node (for rooms).\n\n### Postcondition:\nNode gets deleted.\n\n### Further Information:\nNone.","operationId":"removeNode","parameters":[{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40009":{"summary":"Room which is defined as Home Room Parent cannot be deleted","description":"\n* [-40009] Room which is defined as Home Room Parent cannot be deleted","value":{"code":400,"message":"Bad Request","debugInfo":"Room which is defined as Home Room Parent cannot be deleted","errorCode":-40009}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-40764":{"summary":"Anti-virus scan still in progress","description":"\n* [-40764] Anti-virus scan still in progress","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan still in progress","errorCode":-40764}},"-40765":{"summary":"Anti-virus scan determined malicious file","description":"\n* [-40765] Anti-virus scan determined malicious file","value":{"code":403,"message":"Forbidden","debugInfo":"Anti-virus scan determined malicious file","errorCode":-40765}},"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":"{\n  \"code\": 403,\n  \"message\": \"Forbidden\",\n  \"debugInfo\": \"User is not authorized to perform this operation\",\n  \"errorCode\": -10006,\n  \"errorInfos\": {\n    \"conflictNodes\": [\n      {\n        \"nodeId\": #,\n        \"name\": \"null\",\n        \"errorCode\": null,\n        \"errorMessage\": null\n      }\n    ]\n  }\n}"},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/{node_id}/parents":{"get":{"tags":["nodes"],"summary":"Request list of parent nodes","description":"### Description:  \nRequests a list of node ancestors, sorted from root node to the node's direct parent node.\n\n### Precondition:\nUser is allowed to browse through the node tree until the requested node.\n\n### Postcondition:\nList of parent nodes is returned.\n\n### Further Information:\nNone.","operationId":"requestNodeParents","parameters":[{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeParentList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/{node_id}/deleted_nodes":{"get":{"tags":["nodes"],"summary":"Request list of deleted nodes","description":"### Description:  \nRetrieve a list of deleted nodes in a recycle bin.\n\n### Precondition:\nUser can access parent room and has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read recycle bin</span> permissions.\n\n### Postcondition:\nList of deleted nodes is returned.\n\n### Further Information:\nOnly room IDs are accepted as parent ID since only rooms may have a recycle bin.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`type:eq:file:folder|name:cn:searchString_1|parentPath:cn:searchString_2`  \nGet deleted nodes where type equals (`file` **OR** `folder`) **AND** deleted node name containing `searchString_1` **AND** deleted node parent path containing `searchString 2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `type` | Node type filter | `eq` | Node type equals value(s).<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `type:eq:folder:file` | <ul><li>`folder`</li><li>`file`</li></ul> |\n| `name` | Node name filter | `cn` | Node name contains value. | `search String` |\n| `parentPath` | Parent path filter | `cn` | Parent path contains value. | `search String` |\n| `timestampCreation` | Creation timestamp filter | `ge, le` | Creation timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampCreation:ge:2016-12-31`&#124;<br>`timestampCreation:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| `timestampModification` | Modification timestamp filter | `ge, le` | Modification timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampModification:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampModification:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.  \nNodes are sorted by type first, then by sent sort string.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|timestampCreation:asc`  \nSort by `name` descending **AND** `timestampCreation` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Node name |\n| `cntVersions` | Number of deleted versions of this file |\n| `firstDeletedAt` | First deleted version |\n| `lastDeletedAt` | Last deleted version |\n| `parentPath` | Parent path of deleted node |\n| `timestampCreation` | Creation timestamp |\n| `timestampModification` | Modification timestamp |\n\n</details>","operationId":"requestDeletedNodesSummary","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Parent ID (can only be a room ID)","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedNodeSummaryList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}},"-80065":{"summary":"Node must be a room","description":"\n* [-80065] Node must be a room","value":{"code":400,"message":"Bad Request","debugInfo":"Node must be a room","errorCode":-80065}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["nodes"],"summary":"Empty recycle bin","description":"### Description:  \nEmpty a recycle bin.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; delete recycle bin</span> permissions in parent room.\n\n### Postcondition:\nAll files in the recycle bin are permanently removed.\n\n### Further Information:\nActually removes the previously deleted files from the system.  \n**This action is irreversible.**","operationId":"emptyDeletedNodes","parameters":[{"name":"node_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80065":{"summary":"Node must be a room","description":"\n* [-80065] Node must be a room","value":{"code":400,"message":"Bad Request","debugInfo":"Node must be a room","errorCode":-80065}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}},"507":{"description":"Insufficient Storage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41401":{"summary":"Recycle bin could not be emptied completely","description":"\n* [-41401] Recycle bin could not be emptied completely","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Recycle bin could not be emptied completely","errorCode":-41401}}}}}}}}},"/v4/nodes/{node_id}/deleted_nodes/versions":{"get":{"tags":["nodes"],"summary":"Request deleted versions of nodes","description":"### Description:  \nRetrieve all deleted versions of a node.\n\n### Precondition:\nUser can access parent room and has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read recycle bin</span> permissions.\n\n### Postcondition:\nList of deleted versions of a node is returned.\n\n### Further Information:\nThe node is identified by three parameters:\n* parent ID\n* name\n* type (file, folder).\n\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`expireAt:desc|size:asc`  \nSort by `expireAt` descending **AND** `size` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `expireAt` | Expiration date |\n| `accessedAt` | Last access date |\n| `size` | Node size |\n| `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |\n| `createdAt` | Creation date |\n| `createdBy` | Creator first name, last name |\n| `updatedAt` | Last modification date |\n| `updatedBy` | Last modifier first name, last name |\n| `deletedAt` | Deleted date |\n| `deletedBy` | Deleter first name, last name |\n\n</details>","operationId":"requestDeletedNodeVersions","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Parent ID (room or folder ID)","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"type","in":"query","description":"Node type","required":true,"schema":{"type":"string"}},{"name":"name","in":"query","description":"Node name","required":true,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedNodeVersionsList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/search":{"get":{"tags":["nodes"],"summary":"Search nodes","description":"### Description:  \nProvides a flat list of file system nodes (rooms, folders or files) of a given parent that are accessible by the current user.\n\n### Precondition:\nAuthenticated user is allowed to <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128065; see</span> nodes (i.e. `isBrowsable = true`).\n\n### Postcondition:\nList of nodes is returned.\n\n### Further Information:  \nOutput is limited to **500** entries.  \nFor more results please use filter criteria and paging (`offset` + `limit`).  \n`EncryptionInfo` is **NOT** provided.  \nWildcard character is the asterisk character: `*`\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`type:eq:file|createdAt:ge:2015-01-01`  \nGet nodes where type equals `file` **AND** file creation date is **>=** `2015-01-01`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME`            | Filter Description                | `OPERATOR`  | Operator Description                                                                                                                                                                                                                                                                | `VALUE` |\n|:------------------------|:----------------------------------|:------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- |\n| `type`                  | Node type filter                  | `eq`        | Node type equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `type:eq:room:folder`                                                                                                                                        | <ul><li>`room`</li><li>`folder`</li><li>`file`</li></ul> |\n| `fileType`              | File type filter (file extension) | `cn, eq`    | File type contains / equals value.                                                                                                                                                                                                                                                  | `search String` |\n| `classification`        | Classification filter             | `eq`        | Classification equals value.                                                                                                                                                                                                                                                        | <ul><li>`1` - public</li><li>`2` - internal</li><li>`3` - confidential</li><li>`4` - strictly confidential</li></ul> |\n| `createdBy`             | Creator login filter              | `cn, eq`    | Creator login contains / equals value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`).                                                                                                                                                                             | `search String` |\n| `createdById`           | Creator ID filter                 | `eq`        | Creator ID equals value.                                                                                                                                                                                                                                                            | `positive Integer  or -1 for external user` |\n| `createdAt`             | Creation date filter              | `ge, le`    | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01`                                                                | `Date (yyyy-MM-dd)` |\n| `updatedBy`             | Last modifier login filter        | `cn, eq`    | Last modifier login contains / equals value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`).                                                                                                                                                                       | `search String` |\n| `updatedById`           | Last modifier ID filter           | `eq`, `neq` | Modifier ID equals value.                                                                                                                                                                                                                                                           | `positive Integer or -1 for external user` |\n| `updatedAt`             | Last modification date filter     | `ge, le`    | Last modification date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `updatedAt:ge:2016-12-31`&#124;`updatedAt:le:2018-01-01`                                                       | `Date (yyyy-MM-dd)` |\n| `expireAt`              | Expiration date filter            | `ge, le`    | Expiration date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `expireAt:ge:2016-12-31`&#124;`expireAt:le:2018-01-01`                                                                | `Date (yyyy-MM-dd)` |\n| `size`                  | Node size filter                  | `ge, le`    | Node size is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `size:ge:5`&#124;`size:le:10`                                                                                               | `size in bytes` |\n| `isFavorite`            | Favorite filter                   | `eq`        |                                                                                                                                                                                                                                                                                     | `true or false` |\n| `branchVersion`         | Node branch version filter        | `ge, le`    | Branch version is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `branchVersion:ge:1423280937404`&#124;`branchVersion:le:1523280937404`                                                 | `version number` |\n| `parentPath`            | Parent path                       | `cn, eq`    | Parent path contains / equals  value.                                                                                                                                                                                                                                               | `search String` |\n| `timestampCreation`     | Creation timestamp filter         | `ge, le`    | Creation timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampCreation:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampCreation:le:2018-01-01T11:00:00.540`             | `Date (yyyy-MM-dd)` |\n| `timestampModification` | Modification timestamp filter     | `ge, le`    | Modification timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampModification:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampModification:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |\n| `referenceId`           | Reference ID filter               | `eq`        | Reference ID equals value.                                                                                                                                                                                                                                                          | `Integer ` |\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|size:asc`  \nSort by `name` descending **AND** `size` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Node name |\n| `createdAt` | Creation date |\n| `createdBy` | Creator first name, last name |\n| `updatedAt` | Last modification date |\n| `updatedBy` | Last modifier first name, last name |\n| `fileType` | File type (extension) |\n| `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |\n| `size` | Node size |\n| `cntDeletedVersions` | Number of deleted versions of this file / folder (**NOT** recursive; for files and folders only) |\n| `type` | Node type (room, folder, file) |\n| `parentPath` | Parent path |\n| `timestampCreation` | Creation timestamp |\n| `timestampModification` | Modification timestamp |\n\n</details>\n\n### Deprecated sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| <del>`cntChildren`</del> | Number of direct children (**NOT** recursive; for rooms and folders only) |\n\n</details>","operationId":"searchNodes","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"search_string","in":"query","description":"Search string","required":true,"schema":{"type":"string"}},{"name":"depth_level","in":"query","description":"* `0` - top level nodes only (default)\n\n* `-1` - full tree\n\n* `n` (any positive number) - include `n` levels starting from the current node","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"parent_id","in":"query","description":"Parent node ID.\n\nOnly rooms and folders can be parents.\n\nParent ID `0` or empty is the root node.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"show_subscription","in":"query","description":"Show subscription information (default: false)","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/rooms/{room_id}/events":{"get":{"tags":["nodes"],"summary":"Request events of a room","description":"### Description:\nRetrieve syslog (audit log) events related to a room.\n\n### Precondition:\nRequires <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions on that room.\n\n### Postcondition:\nList of events is returned.\n\n### Further Information:\nOutput may be limited to a certain number of entries.  \nPlease use filter criteria and paging.\n\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`time:desc`  \nSort by `time` descending (default sort option).\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `time` | Event timestamp |\n\n</details>","operationId":"requestRoomActivitiesLogAsJson","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"date_start","in":"query","description":"Filter events from given date \n\ne.g. `2015-12-31T23:59:00`","required":false,"schema":{"type":"string"}},{"name":"date_end","in":"query","description":"Filter events until given date \n\ne.g. `2015-12-31T23:59:00`","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"Operation ID \n\ncf. `GET /eventlog/operations`","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"user_id","in":"query","description":"User ID","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"status","in":"query","description":"Operation status:\n\n* `0` - Success\n\n* `2` - Error","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEventList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}},"-80026":{"summary":"Invalid operation ID","description":"\n* [-80026] Invalid operation ID","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid operation ID","errorCode":-80026}},"-80027":{"summary":"Invalid operation status","description":"\n* [-80027] Invalid operation status","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid operation status","errorCode":-80027}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/missingFileKeys":{"get":{"tags":["nodes"],"summary":"Request files without user's file key","description":"### Description:  \nRequests a list of missing file keys that may be generated by the current user.  \n\n### Precondition:\nUser has a key pair.  \nOnly returns users that owns one of the following permissions: <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span>\n\n### Postcondition:\nNone.\n\n### Further Information:\nClients **SHOULD** regularly request missing file keys to provide access to files for other users.  \nThe returned list is ordered by priority (emergency passwords / rescue keys are returned first).\nThere is an enforced limit of **100** items per request.\nA total value greater than limit signals that there are more entries but does not necessarily reflect the precise\nnumber of total items.\n","operationId":"requestMissingFileKeys","parameters":[{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"room_id","in":"query","description":"Room ID","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"file_id","in":"query","description":"File ID","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"user_id","in":"query","description":"User ID","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"use_key","in":"query","description":"Determines which key should be used (NEW)","required":false,"schema":{"type":"string","enum":["room_rescue_key","system_rescue_key","previous_user_key","previous_room_rescue_key","previous_system_rescue_key"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissingKeysResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40001":{"summary":"(Target) room is not encrypted","description":"\n* [-40001] (Target) room is not encrypted","value":{"code":400,"message":"Bad Request","debugInfo":"(Target) room is not encrypted","errorCode":-40001}},"-40024":{"summary":"Room is not configured with Room Rescue Key","description":"\n* [-40024] Room is not configured with Room Rescue Key","value":{"code":400,"message":"Bad Request","debugInfo":"Room is not configured with Room Rescue Key","errorCode":-40024}},"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}},"-92001":{"summary":"Invalid parameter value","description":"\n* [-92001] Invalid parameter value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid parameter value","errorCode":-92001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}},"-70029":{"summary":"Illegal user ID","description":"\n* [-70029] Illegal user ID","value":{"code":403,"message":"Forbidden","debugInfo":"Illegal user ID","errorCode":-70029}},"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/files/{file_id}/user_file_key":{"get":{"tags":["nodes"],"summary":"Request user's file key","description":"### Description:  \nReturns the file key for the current user (if available).\n\n### Precondition:\nUser with one of the following permissions in parent room: <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span>\n\n### Postcondition:\nFile key is returned.\n\n### Further Information:\nThe symmetric file key is encrypted with the user's public key.  \nFile keys are generated with the workflow _\"Generate file keys\"_ that starts at `GET /nodes/missingFileKeys`.","operationId":"requestUserFileKey","parameters":[{"name":"file_id","in":"path","description":"File ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileKey"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-40761":{"summary":"File key not found","description":"\n* [-40761] File key not found","value":{"code":404,"message":"Not Found","debugInfo":"File key not found","errorCode":-40761}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/files/{file_id}/data_space_file_key":{"get":{"tags":["nodes"],"summary":"Request system rescue key","description":"### Description:  \nReturns the file key for the system emergency password / rescue key of a certain file (if available).\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in parent room.\n\n### Postcondition:\nFile key is returned.\n\n### Further Information:\nNone.","operationId":"requestSystemRescueKey","parameters":[{"name":"file_id","in":"path","description":"File ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileKey"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-40761":{"summary":"File key not found","description":"\n* [-40761] File key not found","value":{"code":404,"message":"Not Found","debugInfo":"File key not found","errorCode":-40761}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/nodes/files/{file_id}/data_room_file_key":{"get":{"tags":["nodes"],"summary":"Request room rescue key","description":"### Description:  \nReturns the file key for the room emergency password / rescue key of a certain file (if available).\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in parent room.\n\n### Postcondition:\nFile key is returned.\n\n### Further Information:\nNone.","operationId":"requestRoomRescueKey","parameters":[{"name":"file_id","in":"path","description":"File ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileKey"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70022":{"summary":"Invalid public key format","description":"\n* [-70022] Invalid public key format","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid public key format","errorCode":-70022}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-40761":{"summary":"File key not found","description":"\n* [-40761] File key not found","value":{"code":404,"message":"Not Found","debugInfo":"File key not found","errorCode":-40761}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/nodes/files/versions/{reference_id}":{"get":{"tags":["nodes"],"summary":"Request list of file versions","description":"### Description:  \nRequest a list of file versions. Both nodes and deleted nodes are included, depending on the user's permissions.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read/read recycle bin</span> permissions in parent room.\n\n### Postcondition:\nList of file versions is returned.\n\n### Further Information:\nMaximum number of file versions is 500. The list is sorted by ID DESC.\n","operationId":"requestFileVersionList","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"reference_id","in":"path","description":"Reference ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileVersionList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}}}}},"/v4/nodes/deleted_nodes/{deleted_node_id}":{"get":{"tags":["nodes"],"summary":"Request deleted node","description":"### Description:  \nGet metadata of a deleted node.\n\n### Precondition:\nUser can access parent room and has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read recycle bin</span> permissions.\n\n### Postcondition:\nRequested deleted node is returned.\n\n### Further Information:\nNone.","operationId":"requestDeletedNode","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"deleted_node_id","in":"path","description":"Deleted node ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedNode"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-41100":{"summary":"Deleted node not found","description":"\n* [-41100] Deleted node not found","value":{"code":404,"message":"Not Found","debugInfo":"Deleted node not found","errorCode":-41100}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/groups/{group_id}/rooms":{"get":{"tags":["groups"],"summary":"Request rooms granted to the group or / and rooms that can be granted","description":"### Description:  \nRetrieves a list of rooms granted to the group and / or that can be granted.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.\n\n### Postcondition: \nList of rooms is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isGranted:eq:false|name:cn:searchString`  \nGet all rooms where the group is **NOT** granted **AND** whose name is like `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `name` | Room name filter | `cn` | Room name contains value. | `search String` |\n| `isGranted` | Filter rooms which the group is (not) granted | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n| `effectivePerm` | Filter rooms with DIRECT or DIRECT **AND** EFFECTIVE permissions<ul><li>`false`: DIRECT permissions</li><li>`true`:  DIRECT **AND** EFFECTIVE permissions</li></ul>DIRECT means: e.g. room administrator grants `read` permissions to group of users **directly** on desired room.<br>EFFECTIVE means: e.g. group of users gets `read` permissions on desired room through **inheritance**. | `eq` |  | `true or false`<br>default: `true` |\n\n</details>","operationId":"requestGroupRooms","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomTreeDataList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/groups/{group_id}/roles":{"get":{"tags":["groups"],"summary":"Request list of roles assigned to the group","description":"### Description:  \nRetrieve a list of all roles granted to a group.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.\n\n### Postcondition: \nList of granted roles is returned.\n\n### Further Information:\nNone.","operationId":"requestGroupRoles","parameters":[{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/groups/{group_id}/last_admin_rooms":{"get":{"tags":["groups"],"summary":"Request rooms where the group is defined as last admin group","description":"### Description:  \nRetrieve a list of all rooms where the group is defined as last admin group.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.\n\n### Postcondition: \nList of rooms is returned. \n\n### Further Information:\nAn empty list is returned if no rooms were found where the group is defined as last admin group.","operationId":"requestLastAdminRoomsGroups","parameters":[{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LastAdminGroupRoomList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-30000":{"summary":"Group not found","description":"\n* [-30000] Group not found","value":{"code":404,"message":"Not Found","debugInfo":"Group not found","errorCode":-30000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/eventlog/operations":{"get":{"tags":["eventlog"],"summary":"Request allowed Log Operations","description":"### Description: \nRetrieve eventlog (audit log) operation IDs and the associated log operation description.\n\n### Precondition:\nRole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Log Auditor</span> required.\n\n### Postcondition:\nList of available log operations is returned.\n\n### Further Information:\nNone.","operationId":"requestLogOperations","parameters":[{"name":"is_deprecated","in":"query","description":"Show only deprecated operations","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogOperationList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80005":{"summary":"Invalid boolean value","description":"\n* [-80005] Invalid boolean value","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid boolean value","errorCode":-80005}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/eventlog/events":{"get":{"tags":["eventlog"],"summary":"Request system events","description":"### Description: \nRetrieve eventlog (audit log) events.\n\n### Precondition:\nRole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Log Auditor</span> required.\n\n### Postcondition:\nList of audit log events is returned.\n\n### Further Information:\nOutput is limited to **500** entries.  \nFor more results please use filter criteria and paging (`offset` + `limit`). \n\nAllowed `Accept-Header`:\n* `Accept: application/json`\n* `Accept: text/csv`  \n\n---\n\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`time:desc`  \nSort by `time` descending (default sort option).\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `time` | Event timestamp |\n\n</details>","operationId":"requestLogEventsAsJson","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"date_start","in":"query","description":"Filter events from given date \n\ne.g. `2015-12-31T23:59:00`","required":false,"schema":{"type":"string"}},{"name":"date_end","in":"query","description":"Filter events until given date \n\ne.g. `2015-12-31T23:59:00`","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"Operation ID \n\ncf. `GET /eventlog/operations`","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"user_id","in":"query","description":"User ID","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"status","in":"query","description":"Operation status:\n\n* `0` - Success\n\n* `2` - Error","required":false,"schema":{"type":"string","enum":["0","2"]}},{"name":"user_client","in":"query","description":"User client","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEventList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}},"-80026":{"summary":"Invalid operation ID","description":"\n* [-80026] Invalid operation ID","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid operation ID","errorCode":-80026}},"-80027":{"summary":"Invalid operation status","description":"\n* [-80027] Invalid operation status","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid operation status","errorCode":-80027}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-20502] Invalid (up-) download token","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json, text/csv]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/eventlog/audits/nodes":{"get":{"tags":["eventlog"],"summary":"Request node assigned users with permissions","description":"### Description: \nRetrieve a list of all nodes of type room, and the room assignment users with permissions.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read audit log</span> required.\n\n### Postcondition:\nList of rooms and their assigned users is returned.\n\n### Further Information:\n\nOutput is limited to **500** entries.  \nFor more results please use filter criteria and the `limit` parameter.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nExcept for `userName`, `userFirstName` and  `userLastName` - these are connected via logical disjunction (**OR**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`userName:cn:searchString_1|userFirstName:cn:searchString_2|nodeId:eq:2`  \nFilter by user login containing `searchString_1` **OR** first name containing `searchString_2` **AND** node ID equals `2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `nodeId` | Node ID filter | `eq` | Node ID equals value. | `positive Integer` |\n| `nodeName` | Node name filter | `cn, eq` | Node name contains / equals value. | `search String` |\n| `nodeParentId` | Node parent ID filter | `eq` | Parent ID equals value. | `positive Integer`<br>Parent ID `0` is the root node. |\n| `userId` | User ID filter | `eq` | User ID equals value. | `positive Integer` |\n| `userName` | Username (login) filter | `cn, eq` | Username contains / equals value. | `search String` |\n| `userFirstName` | User first name filter | `cn, eq` | User first name contains / equals value. | `search String` |\n| `userLastName` | User last name filter | `cn, eq` | User last name contains / equals value. | `search String` |\n| `permissionsManage` | Filter the users that do (not) have `manage` permissions in this room | `eq` |  | `true or false` |\n| `nodeIsEncrypted` | Encrypted node filter | `eq` |  | `true or false` |\n| `nodeHasActivitiesLog` | Activities log filter | `eq` |  | `true or false` |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`nodeHasRecycleBin`</del> | Recycle bin filter<br>**Filter has no effect!** | `eq` |  | `true or false` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`nodeName:asc`  \nSort by `nodeName` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `nodeId` | Node ID |\n| `nodeName` | Node name |\n| `nodeParentId` | Node parent ID |\n| `nodeSize` | Node size |\n| `nodeQuota` | Node quota |\n\n</details>","operationId":"requestAuditNodeUserData","parameters":[{"name":"X-Sds-Date-Format","in":"header","description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","schema":{"type":"string","enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AuditNodeResponse"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}},"deprecated":true}},"/v4/eventlog/audits/node_info":{"get":{"tags":["eventlog"],"summary":"Request nodes","description":"### Description: \nRetrieve a list of all nodes of type room under a certain parent.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read audit log</span> required.\n\n### Postcondition:\nList of rooms.\n\n### Further Information:\nFor rooms on root level, use parent_id = 0.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`nodeName:cn:searchString_1|nodeIsEncrypted:eq:true`  \nFilter by node name containing `searchString_1` **AND** node is encrypted .\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `nodeId` | Node ID filter | `eq` | Node ID equals value. | `positive Integer` |\n| `nodeName` | Node name filter | `cn, eq, sw` | Node name contains / equals / starts with value. | `search String` |\n| `nodeIsEncrypted` | Encrypted node filter | `eq` |  | `true or false` |\n\n</details>\n\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`nodeName:asc`  \nSort by `nodeName` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `nodeId` | Node ID |\n| `nodeName` | Node name |\n\n</details>\n","operationId":"requestAuditNodeInfo","parameters":[{"name":"parent_id","in":"query","description":"Parent node ID.\n\nOnly rooms can be parents.\n\nParent ID `0` or empty is the root node.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Range offset","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"filter","in":"query","description":"Filter string","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditNodeInfoResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80024":{"summary":"Invalid range parameters","description":"\n* [-80024] Invalid range parameters","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid range parameters","errorCode":-80024}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/downloads/zip/{token}":{"get":{"tags":["downloads"],"summary":"Download ZIP archive","description":"### Description:\nDownload multiple files in a ZIP archive.\n\n### Precondition:\nValid download token.\n\n### Postcondition:\nStream is returned.\n\n### Further Information:\nCreate a download token with `POST /nodes/zip` API.","operationId":"downloadZipArchiveViaToken","parameters":[{"name":"token","in":"path","description":"Download token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}}}}}},"401":{"description":"Unauthorized","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-20502":{"summary":"Invalid (up-) download token","description":"\n* [-20502] Invalid (up-) download token","value":{"code":401,"message":"Unauthorized","debugInfo":"Invalid (up-) download token","errorCode":-20502}}}}}},"403":{"description":"Forbidden","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-40751":{"summary":"File not found","description":"\n* [-40751] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-40751}},"-41000":{"summary":"Node not found","description":"\n* [-20502] Invalid (up-) download token","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/octet-stream]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/downloads/avatar/{user_id}/{uuid}":{"get":{"tags":["downloads"],"summary":"Download avatar","description":"### Description:\nDownload avatar for given user ID and UUID.\n\n### Precondition:\nValid UUID.\n\n### Postcondition:\nStream is returned.\n\n### Further Information:\nNone.","operationId":"downloadAvatar","parameters":[{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"uuid","in":"path","description":"UUID of the avatar","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/octet-stream":{"schema":{"type":"array","items":{"type":"string","format":"byte"}},"examples":{"0":{"summary":"Avatar response","description":"`application/octet-stream` is returned","value":"[... byte content ...]"}}}}},"400":{"description":"Bad Request","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"404":{"description":"Not Found","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70028":{"summary":"Avatar not found","description":"\n* [-70028] Avatar not found","value":{"code":404,"message":"Not Found","debugInfo":"Avatar not found","errorCode":-70028}}}}}},"406":{"description":"Not Acceptable","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/octet-stream]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/datev":{"get":{"tags":["datev"],"summary":"Request Datev sync configuration for room","description":"### Description:\n\nRetrieve a Datev sync configuration for a given room.\n\n### Precondition:\n\nAuthenticated user.\n\n### Postcondition:\n\nDatev DUO or MST sync configuration is returned.\n\n### Further Information:\n\nNone.\n\n### Possible errors:\n\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                 | Error Code | Description                 |\n|:----------------------------|:-----------|:----------------------------|\n| `401 Forbidden`             | `-90706`   | Datev authorization invalid |\n| `500 Internal Server Error` |            | System Error                |\n| `502 Bad Gateway`           | `-90701`   | Datev communication failed  |\n\n</details>","operationId":"requestDatevSyncConfigForRoom","parameters":[{"name":"room_id","in":"query","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80065":{"summary":"Node must be a room","description":"\n* [-80065] Node must be a room","value":{"code":400,"message":"Bad Request","debugInfo":"Node must be a room","errorCode":-80065}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/mst":{"get":{"tags":["datev"],"summary":"Request list of Datev MST sync configurations","description":"### Description:\n\nRetrieve a list of Datev MST sync configurations.\n\n### Precondition:\n\nAuthenticated user.\n\n### Postcondition:\n\nList of Datev MST sync configurations is returned.\n\n### Further Information:\n\nNone.\n\n### Possible errors:\n\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                 | Error Code | Description                 |\n|:----------------------------|:-----------|:----------------------------|\n| `401 Forbidden`             | `-90706`   | Datev authorization invalid |\n| `500 Internal Server Error` |            | System Error                |\n| `502 Bad Gateway`           | `-90701`   | Datev communication failed  |\n\n</details>","operationId":"requestDatevMstSyncConfigs","parameters":[{"name":"room_id","in":"query","description":"Room ID","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncConfigList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80065":{"summary":"Node must be a room","description":"\n* [-80065] Node must be a room","value":{"code":400,"message":"Bad Request","debugInfo":"Node must be a room","errorCode":-80065}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/mst/{config_id}":{"get":{"tags":["datev"],"summary":"Request Datev MST sync configuration","description":"### Description:\n\nRetrieve a Datev MST sync configuration.\n\n### Precondition:\n\nAuthenticated user.\n\n### Postcondition:\n\nDatev MST sync configurations is returned.\n\n### Further Information:\n\nNone.\n\n### Possible errors:\n\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                 | Error Code | Description                 |\n|:----------------------------|:-----------|:----------------------------|\n| `401 Forbidden`             | `-90706`   | Datev authorization invalid |\n| `500 Internal Server Error` |            | System Error                |\n| `502 Bad Gateway`           | `-90701`   | Datev communication failed  |\n\n</details>","operationId":"requestDatevMstSyncConfig","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90708":{"summary":"Datev sync configuration not found","description":"\n* [-90708] Datev sync configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Datev sync configuration not found","errorCode":-90708}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["datev"],"summary":"Remove Datev MST sync configuration","description":"### Description:\n\nRemove an existing Datev MST sync configuration.\n\n### Precondition:\n\nUser needs to be\na <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>\n&#128100; Room Administrator</span>.\n\n### Postcondition:\n\nDatev MST sync configurations is removed.\n\n### Further Information:\n\nNone.","operationId":"removeDatevMstSyncConfig","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90708":{"summary":"Datev sync configuration not found","description":"\n* [-90708] Datev sync configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Datev sync configuration not found","errorCode":-90708}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/mst/{config_id}/files":{"get":{"tags":["datev"],"summary":"Request information about Datev MST sync files","description":"### Description:\n\nRetrieve list of Datev MST sync files.\n\n### Precondition:\n\nAuthenticated user.\n\n### Postcondition:\n\nList of Datev MST sync files is returned.\n\n### Further Information:\n\nNone.\n\n### Possible errors:\n\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                 | Error Code | Description                                 |\n|:----------------------------|:-----------|:--------------------------------------------|\n| `400 Bad Request`           | `-90711`   | File extension not allowed for Datev upload |\n| `400 Bad Request`           | `-90712`   | File too large for Datev upload             |\n| `500 Internal Server Error` |            | System Error                                |\n\n</details>","operationId":"requestDatevMstSyncFiles","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncFileList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/mst/{config_id}/files/{file_id}":{"get":{"tags":["datev"],"summary":"Request information about a Datev MST sync file","description":"### Description:\n\nRetrieve a Datev MST sync file.\n\n### Precondition:\n\nAuthenticated user.\n\n### Postcondition:\n\nDatev MST sync file is returned.\n\n### Further Information:\n\nNone.\n\n### Possible errors:\n\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                 | Error Code | Description                                 |\n|:----------------------------|:-----------|:--------------------------------------------|\n| `400 Bad Request`           | `-90711`   | File extension not allowed for Datev upload |\n| `400 Bad Request`           | `-90712`   | File too large for Datev upload             |\n| `400 Bad Request`           | `-90713`   | Document type unknown by Datev              |\n| `400 Bad Request`           | `-90714`   | Document not parseable by Datev             |\n| `500 Internal Server Error` |            | System Error                                |\n\n</details>","operationId":"requestDatevMstSyncFile","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"file_id","in":"path","description":"File ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncFile"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80065":{"summary":"Node must be a room","description":"\n* [-80065] Node must be a room","value":{"code":400,"message":"Bad Request","debugInfo":"Node must be a room","errorCode":-80065}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90708":{"summary":"Datev sync configuration not found","description":"\n* [-90708] Datev sync configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Datev sync configuration not found","errorCode":-90708}},"-90710":{"summary":"File not found","description":"\n* [-90710] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-90710}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/duo":{"get":{"tags":["datev"],"summary":"Request list of Datev DUO sync configurations","description":"### Description:  \nRetrieve a list of Datev DUO sync configurations.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of Datev DUO sync configurations is returned.\n\n### Further Information:\nNone.\n\n### Possible errors:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                 | Error Code   | Description |\n|:---|:---|:---|\n| `401 Forbidden`             | `-90706`     | Datev authorization invalid |\n| `500 Internal Server Error` |              | System Error |\n| `502 Bad Gateway`           | `-90701`     | Datev communication failed |\n\n</details>","operationId":"requestDatevDuoSyncConfigs","parameters":[{"name":"room_id","in":"query","description":"Room ID","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncConfigList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80065":{"summary":"Node must be a room","description":"\n* [-80065] Node must be a room","value":{"code":400,"message":"Bad Request","debugInfo":"Node must be a room","errorCode":-80065}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/duo/{config_id}":{"get":{"tags":["datev"],"summary":"Request Datev DUO sync configuration","description":"### Description:  \nRetrieve a Datev DUO sync configuration.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nDatev DUO sync configurations is returned.\n\n### Further Information:\nNone.\n\n### Possible errors:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                 | Error Code   | Description |\n|:---|:---|:---|\n| `401 Forbidden`             | `-90706`     | Datev authorization invalid |\n| `500 Internal Server Error` |              | System Error |\n| `502 Bad Gateway`           | `-90701`     | Datev communication failed |\n\n</details>","operationId":"requestDatevDuoSyncConfig","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncConfig"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90708":{"summary":"Datev sync configuration not found","description":"\n* [-90708] Datev sync configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Datev sync configuration not found","errorCode":-90708}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}},"delete":{"tags":["datev"],"summary":"Remove Datev DUO sync configuration","description":"### Description:\nRemove an existing Datev DUO sync configuration.\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nDatev DUO sync configurations is removed.\n\n### Further Information:\nNone.","operationId":"removeDatevDuoSyncConfig","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90708":{"summary":"Datev sync configuration not found","description":"\n* [-90708] Datev sync configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Datev sync configuration not found","errorCode":-90708}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/duo/{config_id}/files":{"get":{"tags":["datev"],"summary":"Request information about Datev DUO sync files","description":"### Description:  \nRetrieve list of Datev DUO sync files.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of Datev DUO sync files is returned.\n\n### Further Information:\nNone.\n\n### Possible errors:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                  | Error Code   | Description                                 |\n|:---|:---|:---|\n| `400 Bad Request`            | `-90711`     | File extension not allowed for Datev upload |\n| `400 Bad Request`            | `-90712`     | File too large for Datev upload             |\n| `500 Internal Server Error`  |              | System Error                                |\n\n</details>","operationId":"requestDatevDuoSyncFiles","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncFileList"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/datev/duo/{config_id}/files/{file_id}":{"get":{"tags":["datev"],"summary":"Request information about a Datev DUO sync file","description":"### Description:  \nRetrieve a Datev DUO sync file.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nDatev DUO sync file is returned.\n\n### Further Information:\nNone.\n\n### Possible errors:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Http Status                  | Error Code | Description                                 |\n|:---|:-----------|:--------------------------------------------|\n| `400 Bad Request`            | `-90711`   | File extension not allowed for Datev upload |\n| `400 Bad Request`            | `-90712`   | File too large for Datev upload             |\n| `400 Bad Request`            | `-90713`   | Document type unknown by Datev              |\n| `400 Bad Request`            | `-90714`   | Document not parseable by Datev             |\n| `500 Internal Server Error`  |            | System Error                                |\n\n</details>","operationId":"requestDatevDuoSyncFile","parameters":[{"name":"config_id","in":"path","description":"Configuration ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"file_id","in":"path","description":"File ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatevSyncFile"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80065":{"summary":"Node must be a room","description":"\n* [-80065] Node must be a room","value":{"code":400,"message":"Bad Request","debugInfo":"Node must be a room","errorCode":-80065}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90708":{"summary":"Datev sync configuration not found","description":"\n* [-90708] Datev sync configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"Datev sync configuration not found","errorCode":-90708}},"-90710":{"summary":"File not found","description":"\n* [-90710] File not found","value":{"code":404,"message":"Not Found","debugInfo":"File not found","errorCode":-90710}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/config/info/s3_tags":{"get":{"tags":["config"],"summary":"Request list of configured S3 tags","description":"### Description:\nRetrieve all configured S3 tags.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of configured S3 tags is returned.\n\n### Further Information:\nAn empty list is returned if no S3 tags are found / configured.","operationId":"requestS3TagsInfo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}},"-90032":{"summary":"S3 tags are disabled","description":"\n* [-90032] S3 tags are disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 tags are disabled","errorCode":-90032}}}}}}}}},"/v4/config/info/product_packages":{"get":{"tags":["config"],"summary":"Request list of product packages","description":"### Description:  \nReturns a list of product packages.\n\n### Precondition:\nAuthenticated user\n\n### Postcondition:\nList of Product Packages is returned.\n\n### Further Information:\n","operationId":"requestProductPackages","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPackageResponseList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/config/info/product_packages/current":{"get":{"tags":["config"],"summary":"Request list of currently enabled product packages","description":"### Description:  \nReturns a list of currently enabled product packages.\n\n### Precondition:\nAuthenticated user\n\n### Postcondition:\nList of currently enabled Product Packages is returned.\n\n### Further Information:\n","operationId":"requestCurrentProductPackages","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPackageResponseList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/config/info/policies/virus_protection":{"get":{"tags":["config"],"summary":"Request virus protection","description":"### Description:\nRetrieve virus-protection policy.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nVirus-protection policy is returned.\n\n### Further Information:\nNone.","operationId":"requestVirusProtectionPolicyConfigInfo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirusProtectionPoliciesConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}}},"/v4/config/info/policies/passwords":{"get":{"tags":["config"],"summary":"Request password policies","description":"### Description:  \nRetrieve a list of configured password policies for all password types:  \n* `login`\n* `shares`\n* `encryption`\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of configured password policies is returned.\n\n### Further Information:\nNone.\n\n### Available password policies:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Name | Description | Value | Password Type |\n| :--- | :--- | :--- | :--- |\n| `mustContainCharacters` | Characters which a password must contain:<br><ul><li>`alpha` - at least one alphabetical character (`uppercase` **OR** `lowercase`)<pre>a b c d e f g h i j k l m n o p q r s t u v w x y z<br>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</pre></li><li>`uppercase` - at least one uppercase character<pre>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</pre></li><li>`lowercase` - at least one lowercase character<pre>a b c d e f g h i j k l m n o p q r s t u v w x y z</pre></li><li>`numeric` - at least one numeric character<pre>0 1 2 3 4 5 6 7 8 9</pre></li><li>`special` - at least one special character (letters and digits excluded)<pre>! \" # $ % ( ) * + , - . / : ; = ? @ [ \\ ] ^ _ { &#124; } ~</pre></li><li>`none` - none of the above</li></ul> | <ul><li>`alpha`</li><li>`uppercase`</li><li>`lowercase`</li><li>`numeric`</li><li>`special`</li><li>`none`</li></ul> | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `numberOfCharacteristicsToEnforce` | Number of characteristics to enforce.<br>e.g. from `[\"uppercase\", \"lowercase\", \"numeric\", \"special\"]`<br>all 4 character sets can be enforced; but also only 2 of them | `Integer between 0 and 4` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `minLength` | Minimum number of characters a password must contain. | `Integer between 1 and 1024` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `rejectDictionaryWords` | Determines whether a password must **NOT** contain word(s) from a dictionary.<br>In `core-service.properties` a path to directory with dictionary files (`*.txt`) can be defined<br>cf. `policies.passwords.dictionary.directory`.<br><br>If this rule gets enabled `policies.passwords.dictionary.directory` must be defined and contain dictionary files.<br>Otherwise, the rule will not have any effect on password validation process. | `true or false` | <ul><li>`login`</li><li>`shares`</li></ul> |\n| `rejectUserInfo` | Determines whether a password must **NOT** contain user info.<br>Affects user's **first name**, **last name**, **email** and **user name**. | `true or false` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `rejectKeyboardPatterns` | Determines whether a password must **NOT** contain keyboard patterns.<br>e.g. `qwertz`, `asdf` (min. 4 character pattern) | `true or false` | <ul><li>`login`</li><li>`shares`</li><li>`encryption`</li></ul> |\n| `numberOfArchivedPasswords` | Number of passwords to archive.<br>Value `0` means that password history is disabled. | `Integer between 0 and 10` | <ul><li>`login`</li></ul> |\n| `passwordExpiration.enabled` | Determines whether password expiration is enabled. | `true or false` | <ul><li>`login`</li></ul> |\n| `maxPasswordAge` | Maximum allowed password age (in **days**) | `positive Integer` | <ul><li>`login`</li></ul> |\n| `userLockout.enabled` | Determines whether user lockout is enabled. | `true or false` | <ul><li>`login`</li></ul> |\n| `maxNumberOfLoginFailures` | Maximum allowed number of failed login attempts. | `positive Integer` | <ul><li>`login`</li></ul> |\n| `lockoutPeriod` | Amount of **minutes** a user has to wait to make another login attempt<br>after `maxNumberOfLoginFailures` has been exceeded. | `positive Integer` | <ul><li>`login`</li></ul> |\n\n</details>","operationId":"requestPasswordPoliciesConfigInfo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPoliciesConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}}},"/v4/config/info/policies/guest_users":{"get":{"tags":["config"],"summary":"Request guest users policies","description":"### Description:\nRetrieve a list of guest users policies.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of configured guest users policies is returned.\n\n### Further Information:\nNone.","operationId":"requestGuestUsersPoliciesConfigInfo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestUsersPoliciesConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}}},"/v4/config/info/policies/classifications":{"get":{"tags":["config"],"summary":"Request classification policies","description":"### Description:\nRetrieve a list of classification policies:\n* `shareClassificationPolicies`\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of configured classification policies is returned.\n\n### Further Information:\n`classificationRequiresSharePassword`: When a node has this classification or higher, it cannot be shared without a password. If the node is an encrypted file this policy has no effect. `0` means no password will be enforced.\n","operationId":"requestClassificationPoliciesConfigInfo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassificationPoliciesConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}}},"/v4/config/info/policies/algorithms":{"get":{"tags":["config"],"summary":"Request algorithms","description":"### Description:\nRetrieve a list of available algorithms used for encryption.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of available algorithms is returned.\n\n### Further Information:\nNone.","operationId":"requestAlgorithms","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlgorithmVersionInfoList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/config/info/notifications/channels":{"get":{"tags":["config"],"summary":"Request list of notification channels","description":"### Description:\nRetrieve a list of configured notification channels.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of notification channels is returned.\n\n### Further Information:\nNone.","operationId":"requestNotificationChannelsInfo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/config/info/infrastructure":{"get":{"tags":["config"],"summary":"Request infrastructure properties","description":"### Description:  \nReturns a list of read-only infrastructure properties.  \n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of infrastructure properties is returned.\n\n### Further Information:\nSource: `core-service.properties`\n\n### Read-only infrastructure properties:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description | Value |\n| :--- | :--- | :--- |\n| `smsConfigEnabled` | Determines whether sending of share passwords via SMS is **system-wide** enabled. | `true or false` |\n| `mediaServerConfigEnabled` | Determines whether media server is **system-wide** enabled. | `true or false` |\n| `s3DefaultRegion` | Suggested S3 region | `Region name` |\n| `s3EnforceDirectUpload` | Enforce direct upload to S3 | `true or false` |\n| `isDracoonCloud` | Determines if the **DRACOON Core** is deployed in the cloud environment | `true or false` |\n| `tenantUuid` | Current tenant UUID | `UUID` |\n\n</details>\n","operationId":"requestInfrastructurePropertiesInfo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfrastructureProperties"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/config/info/general":{"get":{"tags":["config"],"summary":"Request general settings","description":"### Description:\nReturns a list of configurable general settings.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of configurable general settings is returned.\n\n### Further Information:\nNone.\n\n### Configurable general settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting                          | Description                                                                                                       | Value           |\n|:---------------------------------|:------------------------------------------------------------------------------------------------------------------|:----------------|\n| `sharePasswordSmsEnabled`        | Determines whether sending of share passwords via SMS is allowed.                                                 | `true or false` |\n| `cryptoEnabled`                  | Determines whether client-side encryption is enabled.<br>Can only be enabled once; disabling is **NOT** possible. | `true or false` |\n| `emailNotificationButtonEnabled` | Determines whether email notification button is enabled.                                                          | `true or false` |\n| `eulaEnabled`                    | Determines whether EULA is enabled.<br>Each user has to confirm the EULA at first login.                          | `true or false` |\n| `useS3Storage`                   | Defines if S3 is used as storage backend.<br>Can only be enabled once; disabling is **NOT** possible.             | `true or false` |\n| `s3TagsEnabled`                  | Determines whether S3 tags are enabled                                                                            | `true or false` |\n| `homeRoomsActive`                | Determines whether each AD user has a personal home room                                                          | `true or false` |\n| `homeRoomParentId`               | Defines a node under which all personal home rooms are located. **NULL** if `homeRoomsActive` is `false`          | `Long`          |\n| `subscriptionPlan`               | Subscription Plan. <br> 0 = Pro, 1 = Premium, 2 = Basic                                                           | `Integer`       |\n| `authTokenRestrictions`          | Determines auth token restrictions. (e.g. restricted access token validity)                                       | `object`        |\n\n</details>\n\n### Deprecated general settings:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting                           | Description                                                                                                                                          | Value           |\n|:----------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|\n| <del>`mediaServerEnabled`</del>   | Determines whether media server is enabled.<br>Returns boolean value dependent on conjunction of `mediaServerConfigEnabled` AND `mediaServerEnabled` | `true or false` |\n| <del>`weakPasswordEnabled`</del>  | Determines whether weak password is allowed.<br>Use `GET /system/config/policies/passwords` API to get configured password policies.                 | `true or false` |\n| <del>`hideLoginInputFields`</del> | Determines whether input fields for login should be enabled                                                                                          | `true or false` |\n\n</details>","operationId":"requestGeneralSettingsInfo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralSettingsInfo"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/config/info/defaults":{"get":{"tags":["config"],"summary":"Request default values","description":"### Description:  \nReturns a list of configurable system default values.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of configurable default settings is returned.\n\n### Further Information:\nNone.\n\n### Configurable default values:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting                                 | Description                                                      | Value |\n|:----------------------------------------|:-----------------------------------------------------------------| :--- |\n| `languageDefault`                       | Defines which language should be default.                        | `ISO 639-1 code` |\n| `downloadShareDefaultExpirationPeriod`  | Default expiration period for Download Shares in _days_.         | `Integer between 0 and 9999` |\n| `uploadShareDefaultExpirationPeriod`    | Default expiration period for Upload Shares in _days_.           | `Integer between 0 and 9999` |\n| `fileDefaultExpirationPeriod`           | Default expiration period for all uploaded files in _days_.      | `Integer between 0 and 9999` |\n| `globalRecycleBinRetentionPeriod`       | Global recycle bin retention period in _days_.                   | `Integer between 0 and 9999` |\n| `globalRecycleBinRetentionPeriodLegacy` | Legacy value for global recycle bin retention period in _days_.  | `Integer between 0 and 9999` |\n| `nonmemberViewerDefault`                | Defines if new users get the role _Non Member Viewer_ by default | `true or false` |\n\n</details>","externalDocs":{"description":"Tags for Identifying Languages","url":"https://tools.ietf.org/html/rfc5646"},"operationId":"requestSystemDefaultsInfo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemDefaults"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/users/{user_id}/userAttributes/{key}":{"delete":{"tags":["users"],"summary":"Remove custom user attribute","description":"### Description:\nDelete custom user attribute.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.\n\n### Postcondition:\nCustom user attribute is deleted.\n\n### Further Information:\n* Allowed characters for keys are: `[a-zA-Z0-9_-]`  \n* Characters are **case-insensitive**.","operationId":"removeUserAttribute","parameters":[{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"key","in":"path","description":"Key","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}},"-70550":{"summary":"Attribute not found","description":"\n* [-70550] Attribute not found","value":{"code":404,"message":"Not Found","debugInfo":"Attribute not found","errorCode":-70550}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/users/{user_id}/mfa":{"delete":{"tags":["users"],"summary":"Reset MFA for user","description":"### Description:  \nReset MFA for a specific user.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.\n\n### Postcondition:\nAll MFA-setups for the user are deleted and MFA is disabled.\n\n### Further Information:\n","operationId":"resetsMfaForUser","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-10111":{"summary":"Could not find MFA setup","description":"\n* [-10111] Could not find MFA setup","value":{"code":400,"message":"Bad Request","debugInfo":"Could not find MFA setup","errorCode":-10111}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/profileAttributes/{key}":{"delete":{"tags":["user"],"summary":"Remove user profile attribute","description":"### Description:  \nDelete custom user profile attribute.\n\n### Precondition:\nNone.\n\n### Postcondition:\nCustom user profile attribute is deleted.\n\n### Further Information:\nAllowed characters for keys are: `[a-zA-Z0-9_-]`","operationId":"removeProfileAttribute","parameters":[{"name":"key","in":"path","description":"Key","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70550":{"summary":"Attribute not found","description":"\n* [-70550] Attribute not found","value":{"code":404,"message":"Not Found","debugInfo":"Attribute not found","errorCode":-70550}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/oauth/authorizations/{client_id}":{"delete":{"tags":["user"],"summary":"Remove all OAuth authorizations of a client","description":"### Description:\nDelete all authorizations of a client.\n\n### Precondition:\nAuthenticated user and valid client ID\n\n### Postcondition:\nAll authorizations for the client are revoked.\n\n### Further Information:\nNone.","operationId":"removeOAuthAuthorizations","parameters":[{"name":"client_id","in":"path","description":"OAuth client ID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90082":{"summary":"OAuth client authorization not found","description":"\n* [-90082] OAuth client authorization not found","value":{"code":404,"message":"Not Found","debugInfo":"OAuth client authorization not found","errorCode":-90082}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/oauth/authorizations/{client_id}/{authorization_id}":{"delete":{"tags":["user"],"summary":"Remove a OAuth authorization","description":"### Description:\nDelete an authorization.\n\n### Precondition:\nAuthenticated user and valid client ID, authorization ID\n\n### Postcondition:\nAuthorization is revoked.\n\n### Further Information:\nNone.","operationId":"removeOAuthAuthorization","parameters":[{"name":"client_id","in":"path","description":"OAuth client ID","required":true,"schema":{"type":"string"}},{"name":"authorization_id","in":"path","description":"OAuth authorization ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90082":{"summary":"OAuth client authorization not found","description":"\n* [-90082] OAuth client authorization not found","value":{"code":404,"message":"Not Found","debugInfo":"OAuth client authorization not found","errorCode":-90082}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/oauth/approvals/{client_id}":{"delete":{"tags":["user"],"summary":"Remove OAuth client approval","description":"### Functional Description:\nDelete an OAuth client approval.\n\n### Precondition:\nAuthenticated user and valid client ID\n\n### Postcondition:\nOAuth Client approval is revoked.\n\n### Further Information:\nNone.","operationId":"removeOAuthApproval","parameters":[{"name":"client_id","in":"path","description":"OAuth client ID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90080":{"summary":"OAuth client not found","description":"\n* [-90080] OAuth client not found","value":{"code":404,"message":"Not Found","debugInfo":"OAuth client not found","errorCode":-90080}},"-90093":{"summary":"OAuth client approval not found","description":"\n* [-90093] OAuth client approval not found","value":{"code":404,"message":"Not Found","debugInfo":"OAuth client approval not found","errorCode":-90093}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/user/account/mfa/totp/{id}":{"delete":{"tags":["user"],"summary":"Disable a MFA TOTP setup with generated OTP","description":"### Description:  \nDelete multi-factor authentication TOTP setup with a valid OTP code.\n\n### Precondition:\nAuthenticated user  \nMulti-factor authentication is **NOT** enforced\n\n### Postcondition:\nSecond factor TOTP is disabled.\n\n### Further Information:\nNone.","operationId":"deleteMfaTotpSetup","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"valid_otp","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10110":{"summary":"Second factor token not valid","description":"\n* [-10110] Second factor token not valid","value":{"code":400,"message":"Bad Request","debugInfo":"Second factor token not valid","errorCode":-10110}},"-10111":{"summary":"Could not find MFA setup","description":"\n* [-10111] Could not find MFA setup","value":{"code":400,"message":"Bad Request","debugInfo":"Could not find MFA setup","errorCode":-10111}},"-10113":{"summary":"Cannot delete last MFA setup when MFA is enforced","description":"\n* [-10113] Cannot delete last MFA setup when MFA is enforced","value":{"code":400,"message":"Bad Request","debugInfo":"Cannot delete last MFA setup when MFA is enforced","errorCode":-10113}},"-80067":{"summary":"Invalid OTP","description":"\n* [-80067] Invalid OTP","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid OTP","errorCode":-80067}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/provisioning/customers/{customer_id}/customerAttributes/{key}":{"delete":{"tags":["provisioning"],"summary":"Remove customer attribute","description":"### Description:\nDelete a custom customer attribute.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> required.\n\n### Postcondition:\nCustom customer attribute gets deleted.\n\n### Further Information:\n* Allowed characters for keys are: `[a-zA-Z0-9_-]`  \n* Characters are **case-insensitive**.","operationId":"removeCustomerAttribute","parameters":[{"name":"customer_id","in":"path","description":"Customer ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"key","in":"path","description":"Key","required":true,"schema":{"type":"string"}},{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70550":{"summary":"Attribute not found","description":"\n* [-70550] Attribute not found","value":{"code":404,"message":"Not Found","debugInfo":"Attribute not found","errorCode":-70550}},"-90103":{"summary":"Customer not found","description":"\n* [-90103] Customer not found","value":{"code":404,"message":"Not Found","debugInfo":"Customer not found","errorCode":-90103}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}},"security":[]}},"/v4/nodes/{node_id}/node_attributes/{key}":{"delete":{"tags":["nodes"],"summary":"Remove custom node attribute","description":"### Description:\nDelete custom node attribute.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change</span> permissions in parent room (for folders or files) or needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span> (for rooms).\n\n### Postcondition:\nCustom node attribute is deleted.\n\n### Further Information:\n* Allowed characters for keys are: `[a-zA-Z0-9_-]`  \n* Characters are **case-insensitive**.","operationId":"removeNodeAttribute","parameters":[{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"key","in":"path","description":"Key","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}},"-80023":{"summary":"Input contains invalid characters","description":"\n* [-80023] Input contains invalid characters","value":{"code":400,"message":"Bad Request","debugInfo":"Input contains invalid characters","errorCode":-80023}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-70501":{"summary":"User not found","description":"\n* [-70501] User not found","value":{"code":404,"message":"Not Found","debugInfo":"User not found","errorCode":-70501}},"-70550":{"summary":"Attribute not found","description":"\n* [-70550] Attribute not found","value":{"code":404,"message":"Not Found","debugInfo":"Attribute not found","errorCode":-70550}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/malicious_files/{malicious_file_id}":{"delete":{"tags":["nodes"],"summary":"Remove malicious File","description":"### Description:\nPermanently delete a malicious file.\n\n### Precondition:\nAuthenticated user with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; delete</span> permissions on supplied nodes (for folders or files) or on superordinated node (for rooms).\n\n### Postcondition:\nMalicious file gets permanently deleted.\n\n### Further Information:\nNone.","operationId":"removeMaliciousFile","parameters":[{"name":"malicious_file_id","in":"path","description":"Malicious file ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41002":{"summary":"Invalid node type","description":"\n* [-41002] Invalid node type","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid node type","errorCode":-41002}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-41150":{"summary":"Malicious file not found","description":"\n* [-41150] Malicious file not found","value":{"code":404,"message":"Not Found","debugInfo":"Malicious file not found","errorCode":-41150}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}},"/v4/nodes/deleted_nodes":{"delete":{"tags":["nodes"],"summary":"Remove nodes from recycle bin","description":"### Description:\nPermanently remove a list of nodes from the recycle bin.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; delete recycle bin</span> permissions in parent room.\n\n### Postcondition:\nAll provided nodes are removed.\n\n### Further Information:\nThe removal of deleted nodes from the recycle bin is irreversible.","operationId":"removeDeletedNodes","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeletedNodesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-80000":{"summary":"Mandatory fields cannot be empty","description":"\n* [-80000] Mandatory fields cannot be empty","value":{"code":400,"message":"Bad Request","debugInfo":"Mandatory fields cannot be empty","errorCode":-80000}},"-80001":{"summary":"Invalid positive number","description":"\n* [-80001] Invalid positive number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid positive number","errorCode":-80001}},"-80002":{"summary":"Invalid number","description":"\n* [-80002] Invalid number","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid number","errorCode":-80002}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Forbidden","description":"Insufficient rights to perform the operation","value":{"code":403,"message":"Forbidden","debugInfo":"","errorCode":null}},"-70020":{"summary":"User does not have a keypair","description":"\n* [-70020] User does not have a keypair","value":{"code":403,"message":"Forbidden","debugInfo":"User does not have a keypair","errorCode":-70020}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-40000":{"summary":"Container not found","description":"\n* [-40000] Container not found","value":{"code":404,"message":"Not Found","debugInfo":"Container not found","errorCode":-40000}},"-41000":{"summary":"Node not found","description":"\n* [-41000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}},"-41100":{"summary":"Deleted node not found","description":"\n* [-41100] Deleted node not found","value":{"code":404,"message":"Not Found","debugInfo":"Deleted node not found","errorCode":-41100}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10103":{"summary":"EULA must be accepted","description":"\n* [-10103] EULA must be accepted","value":{"code":412,"message":"Precondition Failed","debugInfo":"EULA must be accepted","errorCode":-10103}},"-10104":{"summary":"Password must be changed","description":"\n* [-10104] Password must be changed","value":{"code":412,"message":"Precondition Failed","debugInfo":"Password must be changed","errorCode":-10104}},"-10109":{"summary":"E-Mail must be set","description":"\n* [-10109] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10109}}}}}}}}}},"components":{"schemas":{"ErrorResponse":{"required":["code","message"],"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","format":"int32"},"message":{"type":"string","description":"HTTP status code description"},"debugInfo":{"type":"string","description":"Debug information"},"errorCode":{"type":"integer","description":"Internal error code","format":"int32"}},"description":"Error information"},"KeyValueEntry":{"required":["key","value"],"type":"object","properties":{"key":{"type":"string","description":"Entry key"},"value":{"type":"string","description":"Entry value"}},"description":"Key-value pair"},"MfaConfig":{"type":"object","properties":{"mfaEnforced":{"type":"boolean"}},"description":"Multi-factor authentication configuration"},"ObjectExpiration":{"required":["enableExpiration"],"type":"object","properties":{"enableExpiration":{"type":"boolean","description":"enabled / disabled"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"}},"description":"Expiration information"},"UpdateUserRequest":{"type":"object","properties":{"firstName":{"type":"string","description":"User first name"},"lastName":{"type":"string","description":"User last name"},"userName":{"type":"string","description":"Username"},"email":{"type":"string","description":"Email "},"isLocked":{"type":"boolean","description":"User is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nUser is locked and can not login anymore.","default":false},"phone":{"type":"string","description":"Phone number"},"receiverLanguage":{"type":"string","description":"IETF language tag"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"authData":{"$ref":"#/components/schemas/UserAuthDataUpdateRequest"},"mfaConfig":{"$ref":"#/components/schemas/MfaConfig"},"title":{"type":"string","description":"Job title","deprecated":true},"lockStatus":{"type":"integer","description":"User lock status:\n\n* `0` - locked\n\n* `1` - Web access allowed\n\n* `2` - Web and mobile access allowed\n\n\n\nPlease use `isLocked` instead.","format":"int32","deprecated":true},"gender":{"type":"string","description":"Gender\n\nDo NOT use `gender`! It will be ignored.","deprecated":true,"default":"n"},"authMethods":{"type":"array","description":"Authentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/UserAuthMethod"}}},"description":"Request model for updating user's metadata"},"UserAuthDataUpdateRequest":{"type":"object","properties":{"method":{"type":"string","description":"Authentication method\n\n\n\nAuthentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `openid`"},"login":{"type":"string","description":"User login name"},"adConfigId":{"type":"integer","description":"ID of the user's Active Directory.","format":"int32"},"oidConfigId":{"type":"integer","description":"ID of the user's OIDC provider.","format":"int32"}},"description":"User Authentication Data Update Request"},"UserAuthMethod":{"required":["authId","isEnabled"],"type":"object","properties":{"authId":{"type":"string","description":"Authentication method\n\n\n\nAuthentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `openid`"},"isEnabled":{"type":"boolean","description":"Is enabled"},"options":{"type":"array","description":"Authentication method options","items":{"$ref":"#/components/schemas/KeyValueEntry"}}},"description":"Authentication method","deprecated":true},"PublicKeyContainer":{"required":["publicKey","version"],"type":"object","properties":{"version":{"type":"string","description":"Version"},"publicKey":{"type":"string","description":"Public key"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"createdBy":{"type":"integer","description":"Created by user","format":"int64"}},"description":"Public key container"},"Right":{"required":["description","id","name"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the right","format":"int32"},"name":{"type":"string","description":"Right (unique) name"},"description":{"type":"string","description":"Right description"}},"description":"Right information"},"Role":{"required":["description","id","name"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the role","format":"int32"},"name":{"type":"string","description":"Role (unique) name"},"description":{"type":"string","description":"Role description"},"items":{"type":"array","description":"List of reachable right over role","items":{"$ref":"#/components/schemas/Right"}}},"description":"Role information"},"RoleList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of roles","items":{"$ref":"#/components/schemas/Role"}}},"description":"List of roles"},"UserAttributes":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"}}},"description":"User custom attributes (list of key-value pairs)","deprecated":true},"UserAuthData":{"required":["method"],"type":"object","properties":{"method":{"type":"string","description":"Authentication method\n\n\n\nAuthentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `openid`"},"login":{"type":"string","description":"User login name"},"password":{"type":"string","description":"Password (only relevant for `basic` authentication type)\n\n*NOT* your Active Directory, OpenID password!"},"mustChangePassword":{"type":"boolean","description":"Determines whether user has to change his / her password\n\n* default: `true` for `basic` auth type\n\n* default: `false` for `active_directory`, `openid` auth types"},"adConfigId":{"type":"integer","description":"ID of the user's Active Directory.","format":"int32"},"oidConfigId":{"type":"integer","description":"ID of the user's OIDC provider.","format":"int32"}},"description":"User Authentication Data"},"UserData":{"required":["authData","avatarUuid","firstName","id","isLocked","lastName","lockStatus","userName"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"userName":{"type":"string","description":"Username"},"firstName":{"type":"string","description":"User first name"},"lastName":{"type":"string","description":"User last name"},"isLocked":{"type":"boolean","description":"User is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nUser is locked and can not login anymore.","default":false},"avatarUuid":{"type":"string","description":"Avatar UUID"},"authData":{"$ref":"#/components/schemas/UserAuthData"},"email":{"type":"string","description":"Email "},"phone":{"type":"string","description":"Phone number"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"hasManageableRooms":{"type":"boolean","description":"User has manageable rooms"},"isEncryptionEnabled":{"type":"boolean","description":"User has generated private key.\n\nPossible if client-side encryption is active for this customer"},"lastLoginSuccessAt":{"type":"string","description":"Last successful logon date","format":"date-time"},"homeRoomId":{"type":"integer","description":"Homeroom ID","format":"int64"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"},"userRoles":{"$ref":"#/components/schemas/RoleList"},"isMfaEnabled":{"type":"boolean","description":"Determines whether multi-factor authentication is enabled"},"isMfaEnforced":{"type":"boolean","description":"Determines whether multi-factor authentication is enforced"},"userAttributes":{"$ref":"#/components/schemas/UserAttributes"},"title":{"type":"string","description":"Job title","deprecated":true},"lockStatus":{"type":"integer","description":"User lock status:\n\n* `0` - locked\n\n* `1` - Web access allowed\n\n* `2` - Web and mobile access allowed\n\n\n\nPlease use `isLocked` instead.","format":"int32","deprecated":true},"login":{"type":"string","description":"User login name","deprecated":true},"authMethods":{"type":"array","description":"Authentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/UserAuthMethod"}},"gender":{"type":"string","description":"Gender","deprecated":true,"default":"n"}},"description":"User information"},"UpdateSubscriptionsBulkRequest":{"required":["isSubscribed","objectIds"],"type":"object","properties":{"isSubscribed":{"type":"boolean","description":"Creates or deletes a subscription on each item in an array of objects."},"objectIds":{"type":"array","description":"List of ids","items":{"type":"integer","description":"List of ids","format":"int64"}}},"description":"Request model for updating subscriptions"},"ProfileAttributesRequest":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"}}},"description":"Request model for setting user profile attributes"},"NotificationConfigChangeRequest":{"required":["channelIds"],"type":"object","properties":{"channelIds":{"type":"array","description":"List of notification channel IDs.\n\nLeave empty to disable notifications.","items":{"type":"integer","description":"List of notification channel IDs.\n\nLeave empty to disable notifications.","format":"int32"}}},"description":"Request model for updating notification configuration"},"NotificationConfig":{"required":["channelIds","eventTypeName","id","scopeId"],"type":"object","properties":{"id":{"type":"integer","description":"Notification configuration ID","format":"int64"},"scopeId":{"type":"integer","description":"Scope ID","format":"int32"},"eventTypeName":{"type":"string","description":"Event type name"},"channelIds":{"type":"array","description":"List of notification channel IDs","items":{"type":"integer","description":"List of notification channel IDs","format":"int32"}}},"description":"Notification configuration information"},"UpdateUserAccountRequest":{"type":"object","properties":{"userName":{"type":"string","description":"Username"},"acceptEULA":{"type":"boolean","description":"Accept EULA\n\nPresent, if EULA is system global active.\n\ncf. `GET system/config/settings/general` - `eulaEnabled`\n\nIf accepted can not be undone."},"firstName":{"type":"string","description":"User first name"},"lastName":{"type":"string","description":"User last name"},"email":{"type":"string","description":"Email "},"phone":{"type":"string","description":"Phone number"},"language":{"type":"string","description":"IETF language tag"},"automaticallySubscribeDatarooms":{"type":"boolean","description":"Automatically subscribe datarooms when getting permissions"},"title":{"type":"string","description":"Job title","deprecated":true},"login":{"type":"string","description":"User login name","deprecated":true},"gender":{"type":"string","description":"Gender\n\nDo NOT use `gender`! It will be ignored.","deprecated":true,"default":"n"}},"description":"Request model for updating user account information"},"UserAccount":{"required":["authData","firstName","hasManageableRooms","id","isLocked","language","lastName","lockStatus","needsToChangePassword","userName","userRoles"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"userName":{"type":"string","description":"Username"},"firstName":{"type":"string","description":"User first name"},"lastName":{"type":"string","description":"User last name"},"isLocked":{"type":"boolean","description":"User is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nUser is locked and can not login anymore.","default":false},"hasManageableRooms":{"type":"boolean","description":"User has manageable rooms"},"userRoles":{"$ref":"#/components/schemas/RoleList"},"language":{"type":"string","description":"IETF language tag"},"authData":{"$ref":"#/components/schemas/UserAuthData"},"mustSetEmail":{"type":"boolean","description":"If `true`, the user must set the `email` at the first login.","default":false},"needsToAcceptEULA":{"type":"boolean","description":"User has accepted EULA.\n\nPresent, if EULA is system global active.\n\ncf. `GET system/config/settings/general` - `eulaEnabled`"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"isEncryptionEnabled":{"type":"boolean","description":"User has generated private key.\n\nPossible if client-side encryption is active for this customer"},"lastLoginSuccessAt":{"type":"string","description":"Last successful logon date","format":"date-time"},"lastLoginFailAt":{"type":"string","description":"Last failed logon date","format":"date-time"},"email":{"type":"string","description":"Email "},"phone":{"type":"string","description":"Phone number"},"homeRoomId":{"type":"integer","description":"Homeroom ID","format":"int64"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"automaticallySubscribeDatarooms":{"type":"boolean","description":"Automatically subscribe datarooms when getting permissions"},"userGroups":{"type":"array","description":"All groups the user is member of","items":{"$ref":"#/components/schemas/UserGroup"}},"userAttributes":{"$ref":"#/components/schemas/UserAttributes"},"title":{"type":"string","description":"Job title","deprecated":true},"lastLoginSuccessIp":{"type":"string","description":"Last successful logon IP address","deprecated":true},"lastLoginFailIp":{"type":"string","description":"Last failed logon IP address","deprecated":true},"gender":{"type":"string","description":"Gender","deprecated":true,"default":"n"},"needsToChangeUserName":{"type":"boolean","description":"If `true`, the user must change the `userName` at the first login.","deprecated":true,"default":false},"authMethods":{"type":"array","description":"Authentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/UserAuthMethod"}},"login":{"type":"string","description":"User login name","deprecated":true},"lockStatus":{"type":"integer","description":"User lock status:\n\n* `0` - locked\n\n* `1` - Web access allowed\n\n* `2` - Web and mobile access allowed\n\n\n\nPlease use `isLocked` instead.","format":"int32","deprecated":true},"needsToChangePassword":{"type":"boolean","description":"Determines whether user has to change his / her password","deprecated":true}},"description":"User information"},"UserGroup":{"required":["id","isMember","name"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the group","format":"int64"},"isMember":{"type":"boolean","description":"Determines whether user is a member of the group or not"},"name":{"type":"string","description":"Group name"}},"description":"Group information"},"ChangeUserPasswordRequest":{"required":["newPassword","oldPassword"],"type":"object","properties":{"oldPassword":{"type":"string","description":"Old password"},"newPassword":{"type":"string","description":"New password"}},"description":"Request model for updating user's password"},"PasswordPolicyViolationResponse":{"required":["code","message"],"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","format":"int32"},"message":{"type":"string","description":"HTTP status code description"},"debugInfo":{"type":"string","description":"Debug information"},"errorCode":{"type":"integer","description":"Internal error code","format":"int32"},"violatedPasswordPolicies":{"type":"array","description":"List of violated password policies","items":{"$ref":"#/components/schemas/ViolatedPasswordPolicy"}}},"description":"List of violated password policies"},"ViolatedPasswordPolicy":{"type":"object","properties":{"name":{"type":"string","description":"Name of the violated password policy"},"message":{"type":"string","description":"Message from password validator"}},"description":"Violated password policy information"},"EnableCustomerEncryptionRequest":{"required":["dataSpaceRescueKey","enableCustomerEncryption"],"type":"object","properties":{"enableCustomerEncryption":{"type":"boolean","description":"Set `true` to enable encryption for this customer"},"dataSpaceRescueKey":{"$ref":"#/components/schemas/UserKeyPairContainer"}},"description":"Request model for enabling customer encryption"},"PrivateKeyContainer":{"required":["privateKey","version"],"type":"object","properties":{"version":{"type":"string","description":"Version"},"privateKey":{"type":"string","description":"Private key"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"createdBy":{"type":"integer","description":"Created by user","format":"int64"}},"description":"Private key container"},"UserKeyPairContainer":{"required":["privateKeyContainer","publicKeyContainer"],"type":"object","properties":{"privateKeyContainer":{"$ref":"#/components/schemas/PrivateKeyContainer"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"}},"description":"Key pair container"},"CustomerData":{"required":["accountsLimit","accountsUsed","cntGuestUser","cntInternalUser","customerEncryptionEnabled","id","isProviderCustomer","name","spaceLimit","spaceUsed"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the customer","format":"int64"},"name":{"type":"string","description":"Customer name"},"isProviderCustomer":{"type":"boolean","description":"Customer is Provider Customer"},"spaceLimit":{"type":"integer","description":"Space limit (in bytes). -1 for unlimited","format":"int64"},"spaceUsed":{"type":"integer","description":"Space used (in bytes)","format":"int64"},"accountsLimit":{"type":"integer","description":"User accounts limit","format":"int32"},"accountsUsed":{"type":"integer","description":"User accounts used","format":"int32"},"cntInternalUser":{"type":"integer","description":"Number of internal user accounts","format":"int32"},"cntGuestUser":{"type":"integer","description":"Number of guest user accounts","format":"int32"},"customerEncryptionEnabled":{"type":"boolean","description":"Clientside encryption for customer enabled"}},"description":"Customer information"},"CompleteUploadRequest":{"type":"object","properties":{"resolutionStrategy":{"type":"string","description":"Node conflict resolution strategy:\n\n* `autorename`\n\n* `overwrite`\n\n* `fail`","default":"autorename","enum":["autorename","overwrite","fail"]},"keepShareLinks":{"type":"boolean","description":"Preserve Download Share Links and point them to the new node.","default":false},"fileName":{"type":"string","description":"New file name to store with"},"fileKey":{"$ref":"#/components/schemas/FileKey"},"userFileKeyList":{"$ref":"#/components/schemas/UserFileKeyList"}},"description":"The body must be empty if public upload token is used.\n\nThe `resolutionStrategy` in that case will be always `autorename`"},"FileKey":{"required":["iv","key","tag","version"],"type":"object","properties":{"key":{"type":"string","description":"Encryption key"},"iv":{"type":"string","description":"Initial vector"},"version":{"type":"string","description":"Version"},"tag":{"type":"string","description":"Authentication tag\n\n(needed with authenticated encryption)"}},"description":"File key information"},"UserFileKey":{"required":["fileKey","userId"],"type":"object","properties":{"userId":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"fileKey":{"$ref":"#/components/schemas/FileKey"}},"description":"User file key"},"UserFileKeyList":{"type":"object","properties":{"items":{"type":"array","description":"List of user file keys","items":{"$ref":"#/components/schemas/UserFileKey"}}},"description":"Mandatory for encrypted shares","deprecated":true},"EncryptionInfo":{"required":["dataSpaceKeyState","roomKeyState","userKeyState"],"type":"object","properties":{"userKeyState":{"type":"string","description":"User key state","enum":["none","available","pending"]},"roomKeyState":{"type":"string","description":"Room key state","enum":["none","available","pending"]},"dataSpaceKeyState":{"type":"string","description":"DRACOON key state","enum":["none","available","pending"]}},"description":"Encryption states"},"Node":{"required":["id","name","type"],"type":"object","properties":{"id":{"type":"integer","description":"Node ID","format":"int64"},"referenceId":{"type":"integer","description":"Reference ID. Identical across all versions of a file","format":"int64"},"type":{"type":"string","description":"Node type","enum":["room","folder","file"]},"name":{"type":"string","description":"Name"},"timestampCreation":{"type":"string","description":"Time the node was created on external file system","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system","format":"date-time"},"parentId":{"type":"integer","description":"Parent node ID (room or folder)","format":"int64"},"parentPath":{"type":"string","description":"Parent node path\n\n`/` if node is a root node (room)"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"hash":{"type":"string","description":"MD5 hash of file"},"fileType":{"type":"string","description":"File type / extension (for files only)"},"mediaType":{"type":"string","description":"File media type (for files only)"},"size":{"type":"integer","description":"Node size in byte","format":"int64"},"classification":{"type":"integer","description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential","format":"int32","enum":[1,2,3,4]},"notes":{"maximum":255,"type":"string","description":"User notes"},"permissions":{"$ref":"#/components/schemas/NodePermissions"},"inheritPermissions":{"type":"boolean","description":"Inherit permissions from parent room\n\n(default: `false` if `parentId` is `0`; otherwise: `true`)"},"isEncrypted":{"type":"boolean","description":"Encryption state"},"encryptionInfo":{"$ref":"#/components/schemas/EncryptionInfo"},"cntDeletedVersions":{"type":"integer","description":"Number of deleted versions of this file / folder\n\n(for rooms / folders only)","format":"int32"},"cntComments":{"type":"integer","description":"Returns the number of comments of this node.","format":"int32"},"cntDownloadShares":{"type":"integer","description":"Returns the number of Download Shares of this node.","format":"int32"},"cntUploadShares":{"type":"integer","description":"Returns the number of Upload Shares of this node.","format":"int32"},"recycleBinRetentionPeriod":{"maximum":9999,"minimum":0,"type":"integer","description":"Retention period for deleted nodes in days","format":"int32"},"hasActivitiesLog":{"type":"boolean","description":"Is activities log active (for rooms only)","default":true},"quota":{"type":"integer","description":"Quota in byte","format":"int64"},"isFavorite":{"type":"boolean","description":"Node is marked as favorite (for rooms / folders only)"},"isSubscribed":{"type":"boolean","description":"Node is subscribed"},"branchVersion":{"type":"integer","description":"Version of last change in this node or a node further down the tree.","format":"int64"},"mediaToken":{"type":"string","description":"Media server media token"},"isBrowsable":{"type":"boolean","description":"Determines whether node is browsable by client (for rooms only)"},"cntRooms":{"type":"integer","description":"Amount of direct child rooms where this node is the parent node\n\n(no recursion; for rooms only)","format":"int32"},"cntFolders":{"type":"integer","description":"Amount of direct child folders where this node is the parent node\n\n(no recursion; for rooms / folders only)","format":"int32"},"cntFiles":{"type":"integer","description":"Amount of direct child files where this node is the parent node\n\n(no recursion; for rooms / folders only)","format":"int32"},"authParentId":{"type":"integer","description":"Auth parent room ID","format":"int64"},"cntChildren":{"type":"integer","description":"Number of direct children\n\n(no recursion; for rooms / folders only)","format":"int32","deprecated":true},"children":{"type":"array","description":"Child nodes list (if requested)\n\n(for rooms / folders only)","deprecated":true,"items":{"$ref":"#/components/schemas/Node"}},"virusProtectionInfo":{"$ref":"#/components/schemas/VirusProtectionInfo"}},"description":"Node information (Node can be a room, folder or file)"},"NodePermissions":{"required":["change","create","delete","deleteRecycleBin","manage","manageDownloadShare","manageUploadShare","read","readRecycleBin","restoreRecycleBin"],"type":"object","properties":{"manage":{"type":"boolean","description":"User / Group may grant all of the above permissions to other users and groups independently,\n\nmay update room metadata and create / update / delete subordinary rooms, has all permissions."},"read":{"type":"boolean","description":"User / Group may see all rooms, files and folders in the room and download everything, copy files from this room."},"create":{"type":"boolean","description":"User / Group may upload files, create folders and copy / move files to this room, overwriting is not possible."},"change":{"type":"boolean","description":"User / Group may update metadata of nodes: rename files and folders, change classification, etc."},"delete":{"type":"boolean","description":"User / Group may overwrite and remove files / folders, move files from this room."},"manageDownloadShare":{"type":"boolean","description":"User / Group may create Download Shares for files and containers view all previously created Download Shares in this room."},"manageUploadShare":{"type":"boolean","description":"User / Group may create Upload Shares for containers, view all previously created Upload Shares in this room."},"readRecycleBin":{"type":"boolean","description":"User / Group may look up files / folders in the recycle bin."},"restoreRecycleBin":{"type":"boolean","description":"User / Group may restore files / folders from recycle bin - room permissions required."},"deleteRecycleBin":{"type":"boolean","description":"User / Group may permanently remove files / folders from the recycle bin."}},"description":"Node permissions"},"UserInfo":{"required":["avatarUuid","firstName","id","lastName","userName","userType"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"userType":{"type":"string","description":"User type:\n\n* `internal` - ordinary DRACOON user\n\n* `external` - external user without DRACOON account\n\n* `system` - system user (non human &#128125;)\n\n* `deleted` - deleted DRACOON user","enum":["system","internal","external","deleted"]},"avatarUuid":{"type":"string","description":"Avatar UUID"},"userName":{"type":"string","description":"Username (only returned for `internal` users)"},"firstName":{"type":"string","description":"User first name (mandatory if `userType` is `internal`)"},"lastName":{"type":"string","description":"User last name (mandatory if `userType` is `internal`)"},"email":{"type":"string","description":"Email "},"title":{"type":"string","description":"Job title","deprecated":true},"displayName":{"type":"string","description":"Display name\n\nuse other fields from `UserInfo` instead to combine a display name","deprecated":true}},"description":"User information"},"VirusProtectionInfo":{"required":["verdict"],"type":"object","properties":{"verdict":{"type":"string","description":"The verdict for the node id. Either NO_SCANNING, IN_PROGRESS, CLEAN, MALICIOUS","enum":["NOT_SCANNING","IN_PROGRESS","CLEAN","MALICIOUS"]},"lastCheckedAt":{"type":"string","description":"The date the file was last scanned","format":"date-time"},"sha256":{"type":"string","description":"The hash of the file"}},"description":"Verdict information for a node"},"S3ConfigUpdateRequest":{"type":"object","properties":{"bucketUrl":{"type":"string","description":"S3 object storage bucket URL"},"accessKey":{"type":"string","description":"Access Key ID"},"secretKey":{"type":"string","description":"Secret Access Key"},"region":{"type":"string","description":"S3 region"}},"description":"Request model for updating a S3 configuration"},"S3Config":{"required":["accessKeyDefined","bucketUrl","secretKeyDefined"],"type":"object","properties":{"bucketUrl":{"type":"string","description":"S3 object storage bucket URL"},"accessKeyDefined":{"type":"boolean","description":"Determines whether Access Key ID is defined"},"secretKeyDefined":{"type":"boolean","description":"Determines whether Access Secret Key is defined"},"region":{"type":"string","description":"S3 region"}},"description":"S3 configuration"},"UpdateSyslogConfig":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Is syslog enabled?"},"host":{"type":"string","description":"Syslog server (IP or FQDN)"},"port":{"type":"integer","description":"Syslog server port","format":"int32"},"protocol":{"type":"string","description":"Protocol to connect to syslog server","enum":["TCP","UDP"]},"logIpEnabled":{"type":"boolean","description":"Determines whether user’s IP address is logged."}},"description":"Request model for updating syslog settings"},"SyslogConfig":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Is syslog enabled?"},"host":{"type":"string","description":"Syslog server (IP or FQDN)"},"port":{"type":"integer","description":"Syslog server port","format":"int32"},"protocol":{"type":"string","description":"Protocol to connect to syslog server","enum":["TCP","UDP"]},"logIpEnabled":{"type":"boolean","description":"Determines whether user’s IP address is logged."}},"description":"Syslog settings"},"UpdateAuthTokenRestrictions":{"required":["overwriteEnabled"],"type":"object","properties":{"overwriteEnabled":{"type":"boolean","description":"Defines if OAuth token restrictions are enabled"},"accessTokenValidity":{"type":"integer","description":"Restricted OAuth access token validity (in seconds)","format":"int32"},"refreshTokenValidity":{"type":"integer","description":"Restricted OAuth refresh token validity (in seconds)","format":"int32"}},"description":"Request model for updating auth token settings"},"UpdateGeneralSettings":{"type":"object","properties":{"sharePasswordSmsEnabled":{"type":"boolean","description":"Allow sending of share passwords via SMS"},"cryptoEnabled":{"type":"boolean","description":"Activation status of client-side encryption.\n\nCan only be enabled once; disabling is not possible."},"emailNotificationButtonEnabled":{"type":"boolean","description":"Enable email notification button"},"eulaEnabled":{"type":"boolean","description":"Each user has to confirm the EULA at first login."},"s3TagsEnabled":{"type":"boolean","description":"Defines if S3 tags are enabled"},"authTokenRestrictions":{"$ref":"#/components/schemas/UpdateAuthTokenRestrictions"},"hideLoginInputFields":{"type":"boolean","description":"Defines if login fields should be hidden","deprecated":true},"mediaServerEnabled":{"type":"boolean","description":"Determines if the media server is enabled","deprecated":true},"weakPasswordEnabled":{"type":"boolean","description":"Allow weak password\n\n* A weak password has to fulfill the following criteria:\n\n   * is at least 8 characters long\n\n   * contains letters and numbers\n\n* A strong password has to fulfill the following criteria in addition:\n\n   * contains at least one special character\n\n   * contains upper and lower case characters\n\nPlease use `PUT /system/config/policies/passwords` API to change configured password policies.","deprecated":true}},"description":"Request model for updating general settings"},"AuthTokenRestrictions":{"type":"object","properties":{"restrictionEnabled":{"type":"boolean","description":"Defines if OAuth token restrictions are enabled"},"accessTokenValidity":{"type":"integer","description":"Restricted OAuth access token validity (in seconds)","format":"int32"},"refreshTokenValidity":{"type":"integer","description":"Restricted OAuth refresh token validity (in seconds)","format":"int32"}},"description":"Auth token restrictions"},"GeneralSettings":{"type":"object","properties":{"sharePasswordSmsEnabled":{"type":"boolean","description":"Allow sending of share passwords via SMS"},"cryptoEnabled":{"type":"boolean","description":"Activation status of client-side encryption.\n\nCan only be enabled once; disabling is not possible."},"emailNotificationButtonEnabled":{"type":"boolean","description":"Enable email notification button"},"eulaEnabled":{"type":"boolean","description":"Each user has to confirm the EULA at first login."},"useS3Storage":{"type":"boolean","description":"Defines if S3 is used as storage backend"},"s3TagsEnabled":{"type":"boolean","description":"Defines if S3 tags are enabled"},"hideLoginInputFields":{"type":"boolean","description":"Defines if login fields should be hidden","deprecated":true},"authTokenRestrictions":{"$ref":"#/components/schemas/AuthTokenRestrictions"},"mediaServerEnabled":{"type":"boolean","description":"Determines if the media server is enabled","deprecated":true},"weakPasswordEnabled":{"type":"boolean","description":"Allow weak password\n\n* A weak password has to fulfill the following criteria:\n\n   * is at least 8 characters long\n\n   * contains letters and numbers\n\n* A strong password has to fulfill the following criteria in addition:\n\n   * contains at least one special character\n\n   * contains upper and lower case characters\n\nPlease use `GET /system/config/policies/passwords` API to get configured password policies.","deprecated":true}},"description":"General settings"},"UpdateEventlogConfig":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Is eventlog enabled?"},"retentionPeriod":{"type":"integer","description":"Retention period (in days) of event log entries.\n\nAfter that period, all entries are deleted.\n\nRecommended value: 7","format":"int32"},"logIpEnabled":{"type":"boolean","description":"Determines whether user’s IP address is logged."}},"description":"Request model for updating eventlog settings"},"EventlogConfig":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Is eventlog enabled?"},"retentionPeriod":{"type":"integer","description":"Retention period (in days) of event log entries.\n\nAfter that period, all entries are deleted.\n\nRecommended value: 7","format":"int32"},"logIpEnabled":{"type":"boolean","description":"Determines whether user’s IP address is logged."}},"description":"Eventlog settings"},"UpdateSystemDefaults":{"type":"object","properties":{"languageDefault":{"type":"string","description":"Define which language should be default."},"downloadShareDefaultExpirationPeriod":{"type":"integer","description":"Default expiration period for Download Shares in days.","format":"int32"},"uploadShareDefaultExpirationPeriod":{"type":"integer","description":"Default expiration period for Upload Shares in days.","format":"int32"},"fileDefaultExpirationPeriod":{"type":"integer","description":"Default expiration period for all uploaded files in days.","format":"int32"},"globalRecycleBinRetentionPeriod":{"type":"integer","description":"Global recycle bin retention period in days.","format":"int32"},"nonmemberViewerDefault":{"type":"boolean","description":"Defines if new users get the role Non Member Viewer by default"}},"description":"Request model for updating system defaults"},"SystemDefaults":{"type":"object","properties":{"languageDefault":{"type":"string","description":"Define which language should be default."},"downloadShareDefaultExpirationPeriod":{"type":"integer","description":"Default expiration period for Download Shares in days.","format":"int32"},"uploadShareDefaultExpirationPeriod":{"type":"integer","description":"Default expiration period for Upload Shares in days.","format":"int32"},"fileDefaultExpirationPeriod":{"type":"integer","description":"Default expiration period for all uploaded files in days.","format":"int32"},"globalRecycleBinRetentionPeriod":{"type":"integer","description":"Global recycle bin retention period in days.","format":"int32"},"globalRecycleBinRetentionPeriodLegacy":{"type":"integer","description":"Legacy value for global recycle bin retention period in days.","format":"int32"},"nonmemberViewerDefault":{"type":"boolean","description":"Defines if new users get the role Non Member Viewer by default"},"hideLoginInputFields":{"type":"boolean","description":"Defines if login fields should be hidden","deprecated":true}},"description":"System defaults"},"AuthConfig":{"required":["authMethods"],"type":"object","properties":{"authMethods":{"type":"array","description":"List of authentication methods","items":{"$ref":"#/components/schemas/AuthMethod"}}},"description":"Authentication settings"},"AuthMethod":{"required":["isEnabled","name","priority"],"type":"object","properties":{"name":{"type":"string","description":"Authentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `openid`"},"isEnabled":{"type":"boolean","description":"Is enabled"},"priority":{"type":"integer","description":"Priority (smaller values have higher priority)","format":"int32"}},"description":"Authentication method"},"UpdateVirusProtectionPoliciesConfig":{"type":"object","properties":{"isVirusProtectionEnabled":{"type":"boolean","description":"Determines whether virus protection is enabled for room. To be set by room admins"}},"description":"Set virus protection policies"},"VirusProtectionPoliciesConfig":{"required":["isVirusProtectionEnabled"],"type":"object","properties":{"isVirusProtectionEnabled":{"type":"boolean","description":"Determines whether virus protection is enabled for room. To be set by room admins"}},"description":"Set of virus protection policies"},"CharacterRules":{"required":["mustContainCharacters","numberOfCharacteristicsToEnforce"],"type":"object","properties":{"mustContainCharacters":{"type":"array","description":"Characters which a password must contain:\n\n* `alpha` - at least one alphabetical character (`uppercase` OR `lowercase`)\n\n* `uppercase` - at least one uppercase character\n\n* `lowercase` - at least one lowercase character\n\n* `numeric` - at least one numeric character\n\n* `special` - at least one special character (letters and digits excluded)\n\n* `all` - combination of `uppercase`, `lowercase`, `numeric` and `special` (available only in request models)\n\n* `none` - none of the above","items":{"type":"string","description":"Characters which a password must contain:\n\n* `alpha` - at least one alphabetical character (`uppercase` OR `lowercase`)\n\n* `uppercase` - at least one uppercase character\n\n* `lowercase` - at least one lowercase character\n\n* `numeric` - at least one numeric character\n\n* `special` - at least one special character (letters and digits excluded)\n\n* `all` - combination of `uppercase`, `lowercase`, `numeric` and `special` (available only in request models)\n\n* `none` - none of the above","enum":["alpha","uppercase","lowercase","numeric","special","all","none"]},"enum":["alpha","uppercase","lowercase","numeric","special","all","none"]},"numberOfCharacteristicsToEnforce":{"maximum":4,"minimum":0,"type":"integer","description":"Number of characteristics to enforce\n\ne.g. from `[\"uppercase\", \"lowercase\", \"numeric\", \"special\"]`\n\nall 4 character sets can be enforced; but also only 2 of them","format":"int32"}},"description":"Password character rules"},"PasswordExpiration":{"required":["enabled"],"type":"object","properties":{"enabled":{"type":"boolean","description":"Determines whether password expiration is enabled"},"maxPasswordAge":{"type":"integer","description":"Maximum allowed password age (in days)","format":"int32"}},"description":"Password expiration information"},"UpdateEncryptionPasswordPolicies":{"type":"object","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"maximum":1024,"minimum":1,"type":"integer","description":"Minimum number of characters a password must contain","format":"int32"},"rejectUserInfo":{"type":"boolean","description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)"},"rejectKeyboardPatterns":{"type":"boolean","description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)"}},"description":"Request model for updating encryption password policies"},"UpdateLoginPasswordPolicies":{"type":"object","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"maximum":1024,"minimum":1,"type":"integer","description":"Minimum number of characters a password must contain","format":"int32"},"rejectDictionaryWords":{"type":"boolean","description":"Determines whether a password must NOT contain word(s) from a dictionary"},"rejectUserInfo":{"type":"boolean","description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)"},"rejectKeyboardPatterns":{"type":"boolean","description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)"},"numberOfArchivedPasswords":{"maximum":10,"minimum":1,"type":"integer","description":"Number of passwords to archive\n\n(must be between `0` and `10`; `0` means that password history is disabled)","format":"int32"},"passwordExpiration":{"$ref":"#/components/schemas/PasswordExpiration"},"userLockout":{"$ref":"#/components/schemas/UserLockout"}},"description":"Request model for updating login password policies"},"UpdatePasswordPoliciesConfig":{"type":"object","properties":{"loginPasswordPolicies":{"$ref":"#/components/schemas/UpdateLoginPasswordPolicies"},"sharesPasswordPolicies":{"$ref":"#/components/schemas/UpdateSharesPasswordPolicies"},"encryptionPasswordPolicies":{"$ref":"#/components/schemas/UpdateEncryptionPasswordPolicies"}},"description":"Request model for updating a set of password policies"},"UpdateSharesPasswordPolicies":{"type":"object","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"maximum":1024,"minimum":1,"type":"integer","description":"Minimum number of characters a password must contain","format":"int32"},"rejectDictionaryWords":{"type":"boolean","description":"Determines whether a password must NOT contain word(s) from a dictionary"},"rejectUserInfo":{"type":"boolean","description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)"},"rejectKeyboardPatterns":{"type":"boolean","description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)"}},"description":"Request model for updating shares password policies"},"UserLockout":{"required":["enabled"],"type":"object","properties":{"enabled":{"type":"boolean","description":"Determines whether user lockout is enabled"},"maxNumberOfLoginFailures":{"type":"integer","description":"Maximum allowed number of failed login attempts","format":"int32"},"lockoutPeriod":{"type":"integer","description":"Amount of minutes a user has to wait to make another login attempt after `maxNumberOfLoginFailures` has been exceeded","format":"int32"}},"description":"User lockout information"},"BasicUserInfo":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"}},"description":"Basic user"},"EncryptionPasswordPolicies":{"type":"object","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"maximum":1024,"minimum":1,"type":"integer","description":"Minimum number of characters a password must contain","format":"int32"},"rejectUserInfo":{"type":"boolean","description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)"},"rejectKeyboardPatterns":{"type":"boolean","description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/BasicUserInfo"}},"description":"Encryption password policies"},"LoginPasswordPolicies":{"required":["characterRules","minLength","numberOfArchivedPasswords","passwordExpiration","rejectDictionaryWords","rejectKeyboardPatterns","rejectUserInfo","updatedAt","updatedBy","userLockout"],"type":"object","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"maximum":1024,"minimum":1,"type":"integer","description":"Minimum number of characters a password must contain","format":"int32"},"rejectDictionaryWords":{"type":"boolean","description":"Determines whether a password must NOT contain word(s) from a dictionary"},"rejectUserInfo":{"type":"boolean","description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)"},"rejectKeyboardPatterns":{"type":"boolean","description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)"},"numberOfArchivedPasswords":{"maximum":10,"minimum":1,"type":"integer","description":"Number of passwords to archive\n\n(must be between `0` and `10`; `0` means that password history is disabled)","format":"int32"},"passwordExpiration":{"$ref":"#/components/schemas/PasswordExpiration"},"userLockout":{"$ref":"#/components/schemas/UserLockout"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/BasicUserInfo"}},"description":"Login password policies"},"PasswordPoliciesConfig":{"type":"object","properties":{"loginPasswordPolicies":{"$ref":"#/components/schemas/LoginPasswordPolicies"},"sharesPasswordPolicies":{"$ref":"#/components/schemas/SharesPasswordPolicies"},"encryptionPasswordPolicies":{"$ref":"#/components/schemas/EncryptionPasswordPolicies"}},"description":"Set of password policies"},"SharesPasswordPolicies":{"type":"object","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"maximum":1024,"minimum":1,"type":"integer","description":"Minimum number of characters a password must contain","format":"int32"},"rejectDictionaryWords":{"type":"boolean","description":"Determines whether a password must NOT contain word(s) from a dictionary"},"rejectUserInfo":{"type":"boolean","description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)"},"rejectKeyboardPatterns":{"type":"boolean","description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/BasicUserInfo"}},"description":"Shares password policies"},"UpdateMfaPoliciesConfig":{"required":["isMfaEnforced"],"type":"object","properties":{"isMfaEnforced":{"type":"boolean","description":"Determines whether multi-factor authentication is enforced"}},"description":"Set of multi-factor authentication policies"},"MfaPoliciesConfig":{"required":["enforcedUserTypes","isMfaEnforced"],"type":"object","properties":{"isMfaEnforced":{"type":"boolean","description":"Determines whether multi-factor authentication is enforced"},"enforcedUserTypes":{"type":"array","description":"User types with MFA enforced active","items":{"type":"string","description":"User types with MFA enforced active","enum":["internal","guest"]},"enum":["internal","guest"]}},"description":"Set of multi-factor authentication policies"},"UpdateGuestUsersPoliciesConfig":{"required":["isInviteUsersEnabled"],"type":"object","properties":{"isInviteUsersEnabled":{"type":"boolean","description":"Determines whether the invite of users to rooms is enabled."}},"description":"Set of guest user policies"},"GuestUsersPoliciesConfig":{"required":["isInviteUsersEnabled"],"type":"object","properties":{"isInviteUsersEnabled":{"type":"boolean","description":"Determines whether the invite of users to rooms is enabled."}},"description":"Set of guest user policies"},"ShareClassificationPolicies":{"type":"object","properties":{"classificationRequiresSharePassword":{"type":"integer","description":"Minimum classification that causes download shares to require a password. `0` means no password will be enforced.","format":"int32","enum":[0,1,2,3,4]}},"description":"Shares classification policies"},"UpdateClassificationPoliciesConfig":{"type":"object","properties":{"shareClassificationPolicies":{"$ref":"#/components/schemas/ShareClassificationPolicies"}},"description":"Set of classification policies"},"ClassificationPoliciesConfig":{"type":"object","properties":{"shareClassificationPolicies":{"$ref":"#/components/schemas/ShareClassificationPolicies"}},"description":"Set of classification policies"},"UpdateOAuthClientRequest":{"required":["grantTypes"],"type":"object","properties":{"clientSecret":{"type":"string","description":"Secret, which client uses at authentication."},"clientName":{"type":"string","description":"Name, which is shown at the client configuration and authorization."},"clientType":{"type":"string","description":"Determines whether client is a confidential or public client.","enum":["confidential","public"]},"isEnabled":{"type":"boolean","description":"Determines whether client is enabled."},"grantTypes":{"type":"array","description":"Authorized grant types\n\n* `authorization_code`\n\n* `implicit`\n\n* `password`\n\n* `client_credentials`\n\n* `refresh_token`\n\n\n\ncf. [RFC 6749](https://tools.ietf.org/html/rfc6749)","items":{"type":"string","description":"Authorized grant types\n\n* `authorization_code`\n\n* `implicit`\n\n* `password`\n\n* `client_credentials`\n\n* `refresh_token`\n\n\n\ncf. [RFC 6749](https://tools.ietf.org/html/rfc6749)","enum":["authorization_code","client_credentials","implicit","password","refresh_token"]},"enum":["authorization_code","client_credentials","implicit","password","refresh_token"]},"redirectUris":{"type":"array","description":"URIs, to which a user is redirected after authorization.","items":{"type":"string","description":"URIs, to which a user is redirected after authorization."}},"accessTokenValidity":{"type":"integer","description":"Validity of the access token in seconds.","format":"int32"},"refreshTokenValidity":{"type":"integer","description":"Validity of the refresh token in seconds.","format":"int32"},"approvalValidity":{"type":"integer","description":"Validity of the approval interval in seconds.","format":"int32"}},"description":"Request model for updating an OAuth client"},"OAuthClient":{"required":["clientId","grantTypes"],"type":"object","properties":{"clientId":{"type":"string","description":"ID of the OAuth client"},"clientSecret":{"type":"string","description":"Secret, which client uses at authentication."},"clientName":{"type":"string","description":"Name, which is shown at the client configuration and authorization."},"clientType":{"type":"string","description":"Determines whether client is a confidential or public client.","enum":["confidential","public"]},"isStandard":{"type":"boolean","description":"Determines whether client is a standard client."},"isExternal":{"type":"boolean","description":"Determines whether client is an external client."},"isEnabled":{"type":"boolean","description":"Determines whether client is enabled."},"grantTypes":{"type":"array","description":"Authorized grant types\n\n* `authorization_code`\n\n* `implicit`\n\n* `password`\n\n* `client_credentials`\n\n* `refresh_token`\n\n\n\ncf. [RFC 6749](https://tools.ietf.org/html/rfc6749)","items":{"type":"string","description":"Authorized grant types\n\n* `authorization_code`\n\n* `implicit`\n\n* `password`\n\n* `client_credentials`\n\n* `refresh_token`\n\n\n\ncf. [RFC 6749](https://tools.ietf.org/html/rfc6749)","enum":["authorization_code","client_credentials","implicit","password","refresh_token"]},"enum":["authorization_code","client_credentials","implicit","password","refresh_token"]},"redirectUris":{"type":"array","description":"URIs, to which a user is redirected after authorization.","items":{"type":"string","description":"URIs, to which a user is redirected after authorization."}},"accessTokenValidity":{"type":"integer","description":"Validity of the access token in seconds.","format":"int32"},"refreshTokenValidity":{"type":"integer","description":"Validity of the refresh token in seconds.","format":"int32"},"approvalValidity":{"type":"integer","description":"Validity of the approval interval in seconds.","format":"int32"}},"description":"OAuth client information"},"UpdateOpenIdIdpConfigRequest":{"type":"object","properties":{"name":{"type":"string","description":"Name of the IDP"},"isEnabled":{"type":"boolean","description":"Determines whether client is enabled."},"issuer":{"type":"string","description":"Issuer identifier of the IDP\n\nThe value is a case sensitive URL."},"authorizationEndPointUrl":{"type":"string","description":"URL of the authorization endpoint"},"tokenEndPointUrl":{"type":"string","description":"URL of the token endpoint"},"userInfoEndPointUrl":{"type":"string","description":"URL of the user info endpoint"},"jwksEndPointUrl":{"type":"string","description":"URL of the JWKS endpoint"},"clientId":{"type":"string","description":"ID of the OpenID client"},"clientSecret":{"type":"string","description":"Secret, which client uses at authentication."},"flow":{"type":"string","description":"Flow, which is used at authentication","enum":["authorization_code","hybrid"]},"scopes":{"type":"array","description":"List of requested scopes\n\nUsually `openid` and the names of the requested claims.","items":{"type":"string","description":"List of requested scopes\n\nUsually `openid` and the names of the requested claims."}},"redirectUris":{"type":"array","description":"URIs, to which a user is redirected after authorization.","items":{"type":"string","description":"URIs, to which a user is redirected after authorization."}},"pkceEnabled":{"type":"boolean","description":"Determines whether PKCE is enabled.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)","default":false},"pkceChallengeMethod":{"type":"string","description":"PKCE code challenge method.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)"},"mappingClaim":{"type":"string","description":"Name of the claim which is used for the user mapping."},"fallbackMappingClaim":{"type":"string","description":"Name of the claim which is used for the user mapping fallback."},"resetFallbackMappingClaim":{"type":"boolean","description":"Set `true` to reset `fallbackMappingClaim`."},"userInfoSource":{"type":"string","description":"Source, which is used to get user information at the import or update of a user.","enum":["user_info_endpoint","id_token"]},"userImportEnabled":{"type":"boolean","description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account.","default":false},"userImportGroup":{"type":"integer","description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64"},"userUpdateEnabled":{"type":"boolean","description":"Determines if the DRACOON account is updated with data from AD / IDP.\n\nFor OpenID Connect, the scopes `email` and `profile` are needed.","default":false},"userManagementUrl":{"type":"string","description":"URL of the user management UI.\n\nUse empty string to remove."},"useAuthProxyEnabled":{"type":"boolean","description":"Determines if the IDP use the DRACOON Auth Proxy.\n\nFor OpenID Connect, the scopes `email` and `profile` are needed.","default":false}},"description":"Request model for updating an OpenID Connect IDP configuration"},"OpenIdIdpConfig":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int32"},"name":{"type":"string","description":"Name of the IDP"},"isStandard":{"type":"boolean","description":"Determines whether client is a standard client."},"isEnabled":{"type":"boolean","description":"Determines whether client is enabled."},"issuer":{"type":"string","description":"Issuer identifier of the IDP\n\nThe value is a case sensitive URL."},"authorizationEndPointUrl":{"type":"string","description":"URL of the authorization endpoint"},"tokenEndPointUrl":{"type":"string","description":"URL of the token endpoint"},"userInfoEndPointUrl":{"type":"string","description":"URL of the user info endpoint"},"jwksEndPointUrl":{"type":"string","description":"URL of the JWKS endpoint"},"clientId":{"type":"string","description":"ID of the OpenID client"},"clientSecret":{"type":"string","description":"Secret, which client uses at authentication."},"flow":{"type":"string","description":"Flow, which is used at authentication","enum":["authorization_code","hybrid"]},"scopes":{"type":"array","description":"List of requested scopes\n\nUsually `openid` and the names of the requested claims.","items":{"type":"string","description":"List of requested scopes\n\nUsually `openid` and the names of the requested claims."}},"redirectUris":{"type":"array","description":"URIs, to which a user is redirected after authorization.","items":{"type":"string","description":"URIs, to which a user is redirected after authorization."}},"pkceEnabled":{"type":"boolean","description":"Determines whether PKCE is enabled.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)","default":false},"pkceChallengeMethod":{"type":"string","description":"PKCE code challenge method.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)"},"mappingClaim":{"type":"string","description":"Name of the claim which is used for the user mapping."},"fallbackMappingClaim":{"type":"string","description":"Name of the claim which is used for the user mapping fallback."},"userInfoSource":{"type":"string","description":"Source, which is used to get user information at the import or update of a user.","enum":["user_info_endpoint","id_token"]},"userImportEnabled":{"type":"boolean","description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account.","default":false},"userImportGroup":{"type":"integer","description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64"},"userUpdateEnabled":{"type":"boolean","description":"Determines if the DRACOON account is updated with data from AD / IDP.\n\nFor OpenID Connect, the scopes `email` and `profile` are needed.","default":false},"userManagementUrl":{"type":"string","description":"URL of the user management UI.\n\nUse empty string to remove."},"useAuthProxyEnabled":{"type":"boolean","description":"Determines if the IDP use the DRACOON Auth Proxy.\n\nFor OpenID Connect, the scopes `email` and `profile` are needed.","default":false}},"description":"OpenID Connect IDP configuration"},"UpdateActiveDirectoryConfigRequest":{"type":"object","properties":{"alias":{"type":"string","description":"Unique name for an Active Directory configuration"},"serverIp":{"type":"string","description":"IPv4 or IPv6 address or host name"},"serverPort":{"type":"integer","description":"Port","format":"int32"},"serverAdminName":{"type":"string","description":"Distinguished Name (DN) of Active Directory administrative account"},"serverAdminPassword":{"type":"string","description":"Password of Active Directory administrative account"},"ldapUsersDomain":{"type":"string","description":"Search scope of Active Directory; only users below this node can log on."},"userFilter":{"type":"string","description":"Name of Active Directory attribute that is used as login name."},"userImport":{"type":"boolean","description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account."},"adExportGroup":{"type":"string","description":"If `userImport` is set to `true`,\n\nthe user must be member of this Active Directory group to receive a newly created DRACOON account."},"sdsImportGroup":{"type":"integer","description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64"},"createHomeFolder":{"type":"boolean","description":"DEPRECATED, will be ignored\n\nDetermines whether a room is created for each user that is created by automatic import (like a home folder).\n\nRoom's name will equal the user's login name.","default":false},"homeFolderParent":{"type":"integer","description":"DEPRECATED, will be ignored\n\nID of the room in which the individual rooms for users will be created.","format":"int64"},"useLdaps":{"type":"boolean","description":"Determines whether LDAPS should be used instead of plain LDAP."},"sslFingerPrint":{"type":"string","description":"SSL finger print of Active Directory server.\n\nMandatory for LDAPS connections.\n\nFormat: `Algorithm/Fingerprint`"}},"description":"Request model for updating an Active Directory configuration"},"ActiveDirectoryConfig":{"required":["adExportGroup","alias","id","ldapUsersDomain","serverAdminName","serverIp","serverPort","useLdaps","userFilter","userImport"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int32"},"alias":{"type":"string","description":"Unique name for an Active Directory configuration"},"serverIp":{"type":"string","description":"IPv4 or IPv6 address or host name"},"serverPort":{"maximum":65535,"minimum":0,"type":"integer","description":"Port","format":"int32"},"serverAdminName":{"type":"string","description":"Distinguished Name (DN) of Active Directory administrative account"},"ldapUsersDomain":{"type":"string","description":"Search scope of Active Directory; only users below this node can log on."},"userFilter":{"type":"string","description":"Name of Active Directory attribute that is used as login name."},"userImport":{"type":"boolean","description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account."},"adExportGroup":{"type":"string","description":"If `userImport` is set to `true`,\n\nthe user must be member of this Active Directory group to receive a newly created DRACOON account."},"useLdaps":{"type":"boolean","description":"Determines whether LDAPS should be used instead of plain LDAP."},"sdsImportGroup":{"type":"integer","description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64"},"sslFingerPrint":{"type":"string","description":"SSL finger print of Active Directory server.\n\nMandatory for LDAPS connections.\n\nFormat: `Algorithm/Fingerprint`"},"homeFolderParent":{"type":"integer","description":"DEPRECATED, will be ignored\n\nID of the room in which the individual rooms for users will be created.","format":"int64","deprecated":true},"createHomeFolder":{"type":"boolean","description":"DEPRECATED, will be ignored\n\nDetermines whether a room is created for each user that is created by automatic import (like a home folder).\n\nRoom's name will equal the user's login name.","deprecated":true,"default":false}},"description":"Active Directory configuration"},"UpdateUploadSharesBulkRequest":{"required":["objectIds"],"type":"object","properties":{"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"showCreatorName":{"type":"boolean","description":"Show creator first and last name."},"showCreatorUsername":{"type":"boolean","description":"Show creator email address."},"showUploadedFiles":{"type":"boolean","description":"Allow display of already uploaded files"},"maxSlots":{"type":"integer","description":"Maximal amount of files to upload","format":"int32"},"resetMaxSlots":{"type":"boolean","description":"Set 'true' to reset 'maxSlots' for Upload Share"},"maxSize":{"type":"integer","description":"Maximal total size of uploaded files (in bytes)","format":"int64"},"resetMaxSize":{"type":"boolean","description":"Set 'true' to reset 'maxSize' for Upload Share"},"filesExpiryPeriod":{"type":"integer","description":"Number of days after which uploaded files expire","format":"int32"},"resetFilesExpiryPeriod":{"type":"boolean","description":"Set 'true' to reset 'filesExpiryPeriod' for Upload Share"},"objectIds":{"type":"array","description":"List of ids","items":{"type":"integer","description":"List of ids","format":"int64"}}},"description":"Request model for updating a list of Download Shares"},"UpdateUploadShareRequest":{"type":"object","properties":{"name":{"type":"string","description":"Alias name"},"password":{"type":"string","description":"Password"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"filesExpiryPeriod":{"type":"integer","description":"Number of days after which uploaded files expire","format":"int32"},"notes":{"maximum":255,"type":"string","description":"User notes"},"internalNotes":{"maximum":255,"type":"string","description":"Internal notes"},"showCreatorName":{"type":"boolean","description":"Show creator first and last name."},"showCreatorUsername":{"type":"boolean","description":"Show creator email address."},"showUploadedFiles":{"type":"boolean","description":"Allow display of already uploaded files"},"maxSlots":{"type":"integer","description":"Maximal amount of files to upload","format":"int32"},"maxSize":{"type":"integer","description":"Maximal total size of uploaded files (in bytes)","format":"int64"},"textMessageRecipients":{"type":"array","description":"List of recipient FQTNs\n\nE.123 / E.164 Format","items":{"type":"string","description":"List of recipient FQTNs\n\nE.123 / E.164 Format"}},"receiverLanguage":{"type":"string","description":"Language tag for messages to receiver"},"defaultCountry":{"type":"string","description":"Country shorthand symbol (cf. ISO 3166-2)"},"resetPassword":{"type":"boolean","description":"Set 'true' to reset 'password' for Upload Share."},"resetFilesExpiryPeriod":{"type":"boolean","description":"Set 'true' to reset 'filesExpiryPeriod' for Upload Share"},"resetMaxSlots":{"type":"boolean","description":"Set 'true' to reset 'maxSlots' for Upload Share"},"resetMaxSize":{"type":"boolean","description":"Set 'true' to reset 'maxSize' for Upload Share"},"notifyCreator":{"type":"boolean","description":"Notify creator on every upload.","deprecated":true}},"description":"Request model for updating an Upload Share"},"UploadShare":{"required":["accessKey","createdAt","createdBy","id","isProtected","name","notifyCreator","targetId"],"type":"object","properties":{"id":{"type":"integer","description":"Share ID","format":"int64"},"name":{"type":"string","description":"Alias name"},"targetId":{"type":"integer","description":"Target room or folder ID","format":"int64"},"isProtected":{"type":"boolean","description":"Is share protected by password"},"accessKey":{"type":"string","description":"Share access key to generate secure link"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"targetPath":{"type":"string","description":"Path to shared upload node"},"isEncrypted":{"type":"boolean","description":"Encryption state"},"notes":{"maximum":255,"type":"string","description":"User notes"},"internalNotes":{"maximum":255,"type":"string","description":"Internal notes"},"filesExpiryPeriod":{"type":"integer","description":"Number of days after which uploaded files expire","format":"int32"},"cntFiles":{"type":"integer","description":"Total amount of existing files uploaded with this share.","format":"int32"},"cntUploads":{"type":"integer","description":"Total amount of uploads conducted with this share.","format":"int32"},"showUploadedFiles":{"type":"boolean","description":"Allow display of already uploaded files"},"dataUrl":{"type":"string","description":"Upload Share URL"},"maxSlots":{"type":"integer","description":"Maximal amount of files to upload","format":"int32"},"maxSize":{"type":"integer","description":"Maximal total size of uploaded files (in bytes)","format":"int64"},"targetType":{"type":"string","description":"Node type"},"showCreatorName":{"type":"boolean","description":"Show creator first and last name."},"showCreatorUsername":{"type":"boolean","description":"Show creator email address."},"notifyCreator":{"type":"boolean","description":"Notify creator on every upload.","deprecated":true},"recipients":{"type":"string","description":"CSV string of recipient email addresses","deprecated":true},"smsRecipients":{"type":"string","description":"CSV string of recipient MSISDNs","deprecated":true}},"description":"Upload Share information"},"UpdateDownloadSharesBulkRequest":{"required":["objectIds"],"type":"object","properties":{"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"showCreatorName":{"type":"boolean","description":"Show creator first and last name."},"showCreatorUsername":{"type":"boolean","description":"Show creator email address."},"maxDownloads":{"type":"integer","description":"Max allowed downloads","format":"int32"},"resetMaxDownloads":{"type":"boolean","description":"Set 'true' to reset 'maxDownloads' for Download Share."},"objectIds":{"type":"array","description":"List of ids","items":{"type":"integer","description":"List of ids","format":"int64"}}},"description":"Request model for updating a list of Download Shares"},"UpdateDownloadShareRequest":{"type":"object","properties":{"name":{"type":"string","description":"Alias name"},"password":{"type":"string","description":"Access password, not allowed for encrypted shares"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"notes":{"maximum":255,"type":"string","description":"User notes"},"internalNotes":{"maximum":255,"type":"string","description":"Internal notes"},"showCreatorName":{"type":"boolean","description":"Show creator first and last name."},"showCreatorUsername":{"type":"boolean","description":"Show creator email address."},"maxDownloads":{"type":"integer","description":"Max allowed downloads","format":"int32"},"textMessageRecipients":{"type":"array","description":"List of recipient FQTNs\n\nE.123 / E.164 Format","items":{"type":"string","description":"List of recipient FQTNs\n\nE.123 / E.164 Format"}},"receiverLanguage":{"type":"string","description":"Language tag for messages to receiver"},"defaultCountry":{"type":"string","description":"Country shorthand symbol (cf. ISO 3166-2)"},"resetPassword":{"type":"boolean","description":"Set 'true' to reset 'password' for Download Share."},"resetMaxDownloads":{"type":"boolean","description":"Set 'true' to reset 'maxDownloads' for Download Share."},"hideDownload":{"type":"boolean","description":"Whether or not the download is hidden on a public download share"},"notifyCreator":{"type":"boolean","description":"Notify creator on every download.","deprecated":true}},"description":"Request model for updating a Download Share"},"DownloadShare":{"required":["accessKey","cntDownloads","createdAt","createdBy","id","name","nodeId","notifyCreator"],"type":"object","properties":{"id":{"type":"integer","description":"Share ID","format":"int64"},"name":{"type":"string","description":"Alias name"},"nodeId":{"type":"integer","description":"Source node ID","format":"int64"},"accessKey":{"type":"string","description":"Share access key to generate secure link"},"cntDownloads":{"type":"integer","description":"Downloads counter (incremented on each download)","format":"int32"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"},"notes":{"maximum":255,"type":"string","description":"User notes"},"internalNotes":{"maximum":255,"type":"string","description":"Internal notes"},"showCreatorName":{"type":"boolean","description":"Show creator first and last name."},"showCreatorUsername":{"type":"boolean","description":"Show creator email address."},"isProtected":{"type":"boolean","description":"Is share protected by password"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"maxDownloads":{"type":"integer","description":"Max allowed downloads","format":"int32"},"nodePath":{"type":"string","description":"Path to shared download node"},"dataUrl":{"type":"string","description":"Path to shared download node"},"isEncrypted":{"type":"boolean","description":"Encrypted share\n\n(this only applies to shared files, not folders)"},"nodeType":{"type":"string","description":"Node type"},"hideDownload":{"type":"boolean","description":"Whether or not the download is hidden on a public download share"},"classification":{"type":"integer","description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential\n\n\n\n(default: classification from parent room)","format":"int32","enum":[1,2,3,4]},"notifyCreator":{"type":"boolean","description":"Notify creator on every download.","deprecated":true},"recipients":{"type":"string","description":"CSV string of recipient email addresses","deprecated":true},"smsRecipients":{"type":"string","description":"CSV string of recipient MSISDNs","deprecated":true}},"description":"Download Share information"},"CustomerSettingsRequest":{"type":"object","properties":{"homeRoomParentName":{"type":"string","description":"Homeroom Parent Name"},"homeRoomQuota":{"type":"integer","description":"Homeroom Quota in bytes","format":"int64"},"homeRoomsActive":{"type":"boolean","description":"Homerooms active"}},"description":"Request model for setting the customer settings"},"CustomerSettingsResponse":{"required":["homeRoomsActive"],"type":"object","properties":{"homeRoomsActive":{"type":"boolean","description":"Homerooms active"},"homeRoomParentId":{"type":"integer","description":"Homeroom Parent ID","format":"int64"},"homeRoomParentName":{"type":"string","description":"Homeroom Parent Name"},"homeRoomQuota":{"type":"integer","description":"Homeroom Quota in bytes","format":"int64"}},"description":"Customer settings"},"UpdateWebhookRequest":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"eventTypeNames":{"type":"array","description":"List of names of event types","items":{"type":"string","description":"List of names of event types"}},"url":{"type":"string","description":"URL (must begin with the `HTTPS` scheme)"},"secret":{"type":"string","description":"Secret; used for event message signatures"},"isEnabled":{"type":"boolean","description":"Is enabled"},"triggerExampleEvent":{"type":"boolean","description":"If set to true, an example event is being created"}},"description":"Request model for updating a webhook"},"Webhook":{"required":["createdAt","eventTypeNames","expireAt","id","isEnabled","name","updatedAt","url"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int64"},"name":{"type":"string","description":"Name"},"url":{"type":"string","description":"URL"},"secret":{"type":"string","description":"Secret; used for event message signatures"},"isEnabled":{"type":"boolean","description":"Is enabled"},"expireAt":{"type":"string","description":"Expiration date / time","format":"date-time"},"eventTypeNames":{"type":"array","description":"List of names of event types","items":{"type":"string","description":"List of names of event types"}},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"},"failStatus":{"type":"integer","description":"Last HTTP status code when a webhook is disabled due to delivery failures","format":"int32"}},"description":"Webhook information"},"NotificationChannelActivationRequest":{"required":["channelId","isEnabled"],"type":"object","properties":{"channelId":{"type":"integer","description":"Channel ID","format":"int32"},"isEnabled":{"type":"boolean","description":"Determines whether channel is enabled"}},"description":"Request model for switching notification channel status"},"NotificationChannel":{"required":["frequency","id","isEnabled","name","type"],"type":"object","properties":{"id":{"type":"integer","description":"Channel ID","format":"int32"},"name":{"type":"string","description":"Name"},"isEnabled":{"type":"boolean","description":"Determines whether channel is enabled"},"type":{"type":"string","description":"Channel type (only `EMAIL` available at the moment)"},"frequency":{"type":"integer","description":"Channel frequency (aggregation window size in minutes)","format":"int64"}},"description":"Notification channel information"},"NotificationChannelList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of notification channels","items":{"$ref":"#/components/schemas/NotificationChannel"}}},"description":"List of notification channels"},"PublicUploadedFileData":{"required":["createdAt","name","size"],"type":"object","properties":{"name":{"type":"string","description":"Name"},"size":{"type":"integer","description":"File size in byte","format":"int64"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"hash":{"type":"string","description":"Hash value of transferred file"}},"description":"File information"},"CompleteS3ShareUploadRequest":{"required":["parts"],"type":"object","properties":{"parts":{"type":"array","description":"List of S3 file upload parts","items":{"$ref":"#/components/schemas/S3FileUploadPart"}},"userFileKeyList":{"type":"array","description":"List of user file keys","items":{"$ref":"#/components/schemas/UserFileKey"}}},"description":"Request model for completing a S3 file upload"},"S3FileUploadPart":{"required":["partEtag","partNumber"],"type":"object","properties":{"partNumber":{"type":"integer","description":"Corresponding part number","format":"int32"},"partEtag":{"type":"string","description":"Corresponding part ETag"}},"description":"S3 file upload part information"},"UpdateCustomerRequest":{"required":["customerContractType"],"type":"object","properties":{"companyName":{"type":"string","description":"Company name"},"customerContractType":{"type":"string","description":"Customer type","enum":["demo","free","pay"]},"quotaMax":{"type":"integer","description":"Maximal disc space which can be allocated by customer in bytes. -1 for unlimited","format":"int64"},"userMax":{"type":"integer","description":"Maximal number of users","format":"int32"},"isLocked":{"type":"boolean","description":"Customer is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nAll users of this customer will be blocked and can not login anymore.","default":false},"providerCustomerId":{"type":"string","description":"Provider customer ID"},"webhooksMax":{"type":"integer","description":"Maximal number of webhooks","format":"int64"},"lockStatus":{"type":"boolean","description":"Customer lock status:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nPlease use `isLocked` instead.\n\nAll users of this customer will be blocked and can not login anymore.","deprecated":true,"default":false}},"description":"Request model for updating a customer"},"CustomerAttributes":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of customer attributes","items":{"$ref":"#/components/schemas/KeyValueEntry"}}},"description":"List of customer attributes"},"UpdateCustomerResponse":{"required":["companyName","customerContractType","customerUuid","id","lockStatus","quotaMax","userMax"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the customer","format":"int64"},"companyName":{"type":"string","description":"Company name"},"customerContractType":{"type":"string","description":"Customer type","enum":["demo","free","pay"]},"quotaMax":{"type":"integer","description":"Maximal disc space which can be allocated by customer in bytes. -1 for unlimited","format":"int64"},"userMax":{"type":"integer","description":"Maximal number of users","format":"int32"},"customerUuid":{"type":"string","description":"Customer UUID"},"isLocked":{"type":"boolean","description":"Customer is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nAll users of this customer will be blocked and can not login anymore.","default":false},"trialDays":{"type":"integer","description":"Number of days left for trial period (relevant only for type `demo`)\n\n(not used)","format":"int32"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"customerAttributes":{"$ref":"#/components/schemas/CustomerAttributes"},"providerCustomerId":{"type":"string","description":"Provider customer ID"},"webhooksMax":{"type":"integer","description":"Maximal number of webhooks","format":"int64"},"activationCode":{"type":"string","description":"Customer activation code string:\n\n* valid only for types `free` and `demo`\n\n* for `pay` customers it is empty","deprecated":true},"lockStatus":{"type":"boolean","description":"Customer lock status:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nPlease use `isLocked` instead.\n\nAll users of this customer will be blocked and can not login anymore.","deprecated":true,"default":false}},"description":"Customer information"},"NodeAttributes":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"}}},"description":"Node custom attributes (list of key-value pairs)"},"UpdateRoomRequest":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"quota":{"type":"integer","description":"Quota in byte","format":"int64"},"notes":{"type":"string","description":"User notes\n\nUse empty string to remove."},"timestampCreation":{"type":"string","description":"Time the node was created on external file system","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system","format":"date-time"}},"description":"Request model for updating room's metadata"},"RoomWebhookAssignment":{"required":["isAssigned","webhookId"],"type":"object","properties":{"webhookId":{"type":"integer","description":"Webhook ID","format":"int64"},"isAssigned":{"type":"boolean","description":"Determines whether webhook is assigned to the room."}},"description":"Request model for handling webhook assignments"},"UpdateRoomWebhookRequest":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"Assign a webhook to a room to use it for node actions within the room ","items":{"$ref":"#/components/schemas/RoomWebhookAssignment"}}},"description":"Request model for handling webhook assignments"},"Range":{"required":["limit","offset","total"],"type":"object","properties":{"offset":{"type":"integer","description":"Range offset","format":"int64"},"limit":{"type":"integer","description":"Range limit. Maximum 500.","format":"int64"},"total":{"type":"integer","description":"Total items available","format":"int64"}},"description":"Range information"},"RoomWebhook":{"required":["isAssigned","webhook"],"type":"object","properties":{"isAssigned":{"type":"boolean","description":"Determines whether webhook is assigned to the room."},"webhook":{"$ref":"#/components/schemas/Webhook"}},"description":"Webhook information"},"RoomWebhookList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of webhooks","items":{"$ref":"#/components/schemas/RoomWebhook"}}},"description":"List of webhooks"},"RoomUsersAddBatchRequest":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of room-user mappings","items":{"$ref":"#/components/schemas/RoomUsersAddBatchRequestItem"}}},"description":"Request model for granting user(s) to the room"},"RoomUsersAddBatchRequestItem":{"required":["id","permissions"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"permissions":{"$ref":"#/components/schemas/NodePermissions"}},"description":"Request item model for granting user to the room"},"RoomPoliciesRequest":{"type":"object","properties":{"defaultExpirationPeriod":{"type":"integer","description":"Default policy room expiration period in seconds.\n\nAll files in a room will have their expiration date set to this period after their respective upload. \n\n0 means no default expiration policy is set.","format":"int32"},"virusProtectionEnabled":{"type":"boolean","description":"Determines whether virus protection is enabled for room. To be set by room admins"}},"description":"Room Policies"},"RoomGuestUserAddRequest":{"required":["roomGuestInvitations"],"type":"object","properties":{"roomGuestInvitations":{"type":"array","description":"List of room-user mappings","items":{"$ref":"#/components/schemas/RoomGuestUserInvitation"}}},"description":"Request model for adding a guest user to the room"},"RoomGuestUserInvitation":{"required":["email","firstName","lastName"],"type":"object","properties":{"firstName":{"type":"string","description":"User first name"},"lastName":{"type":"string","description":"User last name"},"email":{"type":"string","description":"Email "}},"description":"Request item model for inviting a guest user to a room"},"RoomGroupsAddBatchRequest":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of room-group mappings","items":{"$ref":"#/components/schemas/RoomGroupsAddBatchRequestItem"}}},"description":"Request model for granting group(s) to the room"},"RoomGroupsAddBatchRequestItem":{"required":["id","permissions"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the group","format":"int64"},"permissions":{"$ref":"#/components/schemas/NodePermissions"},"newGroupMemberAcceptance":{"type":"string","description":"Behaviour when new users are added to the group:\n\n* `autoallow`\n\n* `pending`\n\n\n\nOnly relevant if `adminGroupIds` has items.","default":"autoallow","enum":["autoallow","pending"]}},"description":"Request item model for granting group to the room"},"EncryptRoomRequest":{"required":["isEncrypted"],"type":"object","properties":{"isEncrypted":{"type":"boolean","description":"Encryption state"},"useDataSpaceRescueKey":{"type":"boolean","description":"Use system emergency password (rescue key) for files in this room"},"dataRoomRescueKey":{"$ref":"#/components/schemas/UserKeyPairContainer"}},"description":"Request model for handling encryption settings for a room"},"ConfigRoomRequest":{"type":"object","properties":{"recycleBinRetentionPeriod":{"maximum":9999,"minimum":0,"type":"integer","description":"Retention period for deleted nodes in days","format":"int32"},"inheritPermissions":{"type":"boolean","description":"Inherit permissions from parent room\n\n(default: `false` if `parentId` is `0`; otherwise: `true`)"},"takeOverPermissions":{"type":"boolean","description":"Take over existing permissions"},"adminIds":{"type":"array","description":"List of user ids\n\nA room requires at least one admin (user or group)","items":{"type":"integer","description":"List of user ids\n\nA room requires at least one admin (user or group)","format":"int64"}},"adminGroupIds":{"type":"array","description":"List of group ids\n\nA room requires at least one admin (user or group)","items":{"type":"integer","description":"List of group ids\n\nA room requires at least one admin (user or group)","format":"int64"}},"newGroupMemberAcceptance":{"type":"string","description":"Behaviour when new users are added to the group:\n\n* `autoallow`\n\n* `pending`\n\n\n\nOnly relevant if `adminGroupIds` has items.","default":"autoallow","enum":["autoallow","pending"]},"hasActivitiesLog":{"type":"boolean","description":"Is activities log active (for rooms only)","default":true},"classification":{"type":"integer","description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential\n\n\n\nProvided (or default) classification is taken from room\n\nwhen file gets uploaded without any classification.","format":"int32","default":2,"enum":[1,2,3,4]}},"description":"Request model for configuring a room"},"PendingAssignment":{"required":["groupId","roomId","roomName","state","userId"],"type":"object","properties":{"userId":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"groupId":{"type":"integer","description":"Unique identifier for the group","format":"int64"},"roomId":{"type":"integer","description":"Room ID","format":"int64"},"roomName":{"type":"string","description":"Room name"},"state":{"type":"string","description":"Acceptance state:\n\n* `ACCEPTED`\n\n* `WAITING`\n\n* `DENIED`","enum":["ACCEPTED","DENIED","WAITING"]}},"description":"Pending assignment information"},"PendingAssignmentsRequest":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of pending assignments","items":{"$ref":"#/components/schemas/PendingAssignment"}}},"description":"Request model for handling pending assignments"},"UpdateFolderRequest":{"type":"object","properties":{"name":{"type":"string","description":"Folder name"},"notes":{"type":"string","description":"User notes\n\nUse empty string to remove."},"classification":{"type":"integer","description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential\n\n\n\nProvided (or default) classification is taken from room\n\nwhen file gets uploaded without any classification.","format":"int32","enum":[1,2,3,4]},"timestampCreation":{"type":"string","description":"Time the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"}},"description":"Request model for updating folder's metadata"},"UpdateFilesBulkRequest":{"required":["objectIds"],"type":"object","properties":{"classification":{"type":"integer","description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential","format":"int32"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"objectIds":{"type":"array","description":"List of ids","items":{"type":"integer","description":"List of ids","format":"int64"}}},"description":"Request model for updating files"},"UpdateFileRequest":{"type":"object","properties":{"name":{"type":"string","description":"File name"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"classification":{"type":"integer","description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential","format":"int32"},"notes":{"type":"string","description":"User notes\n\nUse empty string to remove."},"timestampCreation":{"type":"string","description":"Time the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"}},"description":"Request model for updating file's metadata"},"CompleteS3FileUploadRequest":{"required":["parts"],"type":"object","properties":{"parts":{"type":"array","description":"List of S3 file upload parts","items":{"$ref":"#/components/schemas/S3FileUploadPart"}},"resolutionStrategy":{"type":"string","description":"Node conflict resolution strategy:\n\n* `autorename`\n\n* `overwrite`\n\n* `fail`","default":"autorename","enum":["autorename","overwrite","fail"]},"keepShareLinks":{"type":"boolean","description":"Preserve Download Share Links and point them to the new node.","default":false},"fileName":{"type":"string","description":"New file name to store with"},"fileKey":{"$ref":"#/components/schemas/FileKey"},"isPrioritisedVirusScan":{"type":"boolean","description":"If true prioritises the virus-protection scan higher when in a scanning room and it comes from ms-teams or OAI","default":false}},"description":"Request model for completing a S3 file upload"},"UpdateFavoritesBulkRequest":{"required":["isFavorite","objectIds"],"type":"object","properties":{"isFavorite":{"type":"boolean","description":"Sets the favorite attribute to true or false on each file in an array of nodes."},"objectIds":{"type":"array","description":"List of ids","items":{"type":"integer","description":"List of ids","format":"int64"}}},"description":"Request model for updating favorites"},"ChangeNodeCommentRequest":{"required":["text"],"type":"object","properties":{"text":{"type":"string","description":"Comment text"}},"description":"Request model for updating a node comment"},"Comment":{"required":["createdAt","createdBy","id","isChanged","isDeleted","text","updatedAt","updatedBy"],"type":"object","properties":{"id":{"type":"integer","description":"Comment ID","format":"int64"},"text":{"type":"string","description":"Comment text"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"},"isChanged":{"type":"boolean","description":"Determines whether comment was edited or not"},"isDeleted":{"type":"boolean","description":"Determines whether comment was deleted or not"}},"description":"Node comment information"},"UpdateGroupRequest":{"type":"object","properties":{"name":{"type":"string","description":"Group name"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"}},"description":"Request model for updating group's metadata"},"Group":{"required":["cntUsers","createdAt","createdBy","id","name"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the group","format":"int64"},"name":{"type":"string","description":"Group name"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"cntUsers":{"type":"integer","description":"Amount of users","format":"int32"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"groupRoles":{"$ref":"#/components/schemas/RoleList"}},"description":"Group information"},"ConfigOptionList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"}}},"description":"List of key-value pairs"},"ResetPasswordWithTokenRequest":{"required":["password"],"type":"object","properties":{"password":{"type":"string","description":"New password"}},"description":"New password"},"CreateUserRequest":{"required":["firstName","lastName"],"type":"object","properties":{"firstName":{"type":"string","description":"User first name"},"lastName":{"type":"string","description":"User last name"},"userName":{"type":"string","description":"Username"},"phone":{"type":"string","description":"Phone number"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"receiverLanguage":{"type":"string","description":"IETF language tag"},"email":{"type":"string","description":"Email "},"notifyUser":{"type":"boolean","description":"Notify user about his new account\n\n* default: `true` for `basic` auth type\n\n* default: `false` for `active_directory`, `openid` auth types"},"authData":{"$ref":"#/components/schemas/UserAuthData"},"isNonmemberViewer":{"type":"boolean","description":"Determines whether user has the role NONMEMBER_VIEWER"},"mfaConfig":{"$ref":"#/components/schemas/MfaConfig"},"title":{"type":"string","description":"Job title","deprecated":true},"password":{"type":"string","description":"An initial password may be preset\n\nuse `authData` instead","deprecated":true},"login":{"type":"string","description":"User login name","deprecated":true},"authMethods":{"type":"array","description":"Authentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/UserAuthMethod"}},"needsToChangePassword":{"type":"boolean","description":"Determines whether user has to change his / her initial password.\n\nuse `authDate.mustChangePassword` instead","deprecated":true},"gender":{"type":"string","description":"Gender\n\nDo NOT use `gender`! It will be ignored.","deprecated":true,"default":"n"}},"description":"Request model for creating an user"},"EmergencyMfaCodeResponse":{"required":["code"],"type":"object","properties":{"code":{"type":"string","description":"Emergency TOTP code which can be used instead of standard TOTP code"}},"description":"Emergency TOTP code"},"SubscribedUploadShare":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","description":"Share ID","format":"int64"},"targetNodeId":{"type":"integer","description":"Target room or folder ID","format":"int64"}},"description":"Subscribed upload share information"},"SubscribedNode":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","description":"Node ID","format":"int64"},"type":{"type":"string","description":"Node type","enum":["room","folder","file"]},"authParentId":{"type":"integer","description":"Auth parent room ID","format":"int64"},"name":{"type":"string","description":"Name"},"parentPath":{"type":"string","description":"Parent node path\n\n`/` if node is a root node (room)"}},"description":"Subscribed node information"},"SubscribedDownloadShare":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","description":"Share ID","format":"int64"},"authParentId":{"type":"integer","description":"Auth parent room ID","format":"int64"}},"description":"Subscribed download share information"},"ProfileAttributes":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"}}},"description":"User profile attributes"},"MfaTotpConfirmationRequest":{"required":["id","otp"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int64"},"otp":{"type":"string","description":"Generated valid OTP"}}},"CreateKeyPairRequest":{"required":["previousPrivateKey","privateKeyContainer","publicKeyContainer"],"type":"object","properties":{"privateKeyContainer":{"$ref":"#/components/schemas/PrivateKeyContainer"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"},"previousPrivateKey":{"$ref":"#/components/schemas/PrivateKeyContainer"}},"description":"Request model for creating a key pair"},"Avatar":{"required":["avatarUri","avatarUuid","isCustomAvatar"],"type":"object","properties":{"avatarUri":{"type":"string","description":"Avatar URI"},"avatarUuid":{"type":"string","description":"Avatar UUID"},"isCustomAvatar":{"type":"boolean","description":"Determines whether user updated his / her avatar with own image"}},"description":"User avatar information"},"ChunkUploadResponse":{"required":["size"],"type":"object","properties":{"size":{"type":"integer","description":"Chunk size","format":"int64"},"hash":{"type":"string","description":"Hash value of transferred chunk"}},"description":"Chunk upload response"},"S3ConfigCreateRequest":{"required":["accessKey","secretKey"],"type":"object","properties":{"bucketUrl":{"type":"string","description":"S3 object storage bucket URL"},"accessKey":{"type":"string","description":"Access Key ID"},"secretKey":{"type":"string","description":"Secret Access Key"},"region":{"type":"string","description":"S3 region"}},"description":"Request model for creating a S3 configuration"},"S3TagCreateRequest":{"required":["key","value"],"type":"object","properties":{"key":{"type":"string","description":"S3 tag key"},"value":{"type":"string","description":"S3 tag value"},"isMandatory":{"type":"boolean","description":"Determines whether S3 is mandatory or not","default":false}},"description":"Request model for creating a S3 tag"},"S3Tag":{"type":"object","properties":{"id":{"type":"integer","description":"S3 tag ID","format":"int64"},"key":{"type":"string","description":"S3 tag key"},"value":{"type":"string","description":"S3 tag value"},"isMandatory":{"type":"boolean","description":"Determines whether S3 is mandatory or not","default":false}},"description":"S3 tag information"},"CreateOAuthClientRequest":{"required":["clientName","grantTypes","redirectUris"],"type":"object","properties":{"clientName":{"type":"string","description":"Name, which is shown at the client configuration and authorization."},"grantTypes":{"type":"array","description":"Authorized grant types\n\n* `authorization_code`\n\n* `implicit`\n\n* `password`\n\n* `client_credentials`\n\n* `refresh_token`\n\n\n\ncf. [RFC 6749](https://tools.ietf.org/html/rfc6749)","items":{"type":"string","description":"Authorized grant types\n\n* `authorization_code`\n\n* `implicit`\n\n* `password`\n\n* `client_credentials`\n\n* `refresh_token`\n\n\n\ncf. [RFC 6749](https://tools.ietf.org/html/rfc6749)","enum":["authorization_code","client_credentials","implicit","password","refresh_token"]},"enum":["authorization_code","client_credentials","implicit","password","refresh_token"]},"clientId":{"type":"string","description":"ID of the OAuth client"},"clientSecret":{"type":"string","description":"Secret, which client uses at authentication."},"clientType":{"type":"string","description":"Determines whether client is a confidential or public client.","default":"confidential","enum":["confidential","public"]},"redirectUris":{"type":"array","description":"URIs, to which a user is redirected after authorization.","items":{"type":"string","description":"URIs, to which a user is redirected after authorization."}},"accessTokenValidity":{"type":"integer","description":"Validity of the access token in seconds.","format":"int32"},"refreshTokenValidity":{"type":"integer","description":"Validity of the refresh token in seconds.","format":"int32"},"approvalValidity":{"type":"integer","description":"Validity of the approval interval in seconds.","format":"int32"}},"description":"Request model for creating an OAuth client"},"CreateOpenIdIdpConfigRequest":{"required":["authorizationEndPointUrl","clientId","clientSecret","issuer","jwksEndPointUrl","mappingClaim","name","redirectUris","scopes","tokenEndPointUrl","userInfoEndPointUrl"],"type":"object","properties":{"name":{"type":"string","description":"Name of the IDP"},"issuer":{"type":"string","description":"Issuer identifier of the IDP\n\nThe value is a case sensitive URL."},"authorizationEndPointUrl":{"type":"string","description":"URL of the authorization endpoint"},"tokenEndPointUrl":{"type":"string","description":"URL of the token endpoint"},"userInfoEndPointUrl":{"type":"string","description":"URL of the user info endpoint"},"jwksEndPointUrl":{"type":"string","description":"URL of the JWKS endpoint"},"clientId":{"type":"string","description":"ID of the OpenID client"},"clientSecret":{"type":"string","description":"Secret, which client uses at authentication."},"scopes":{"type":"array","description":"List of requested scopes","items":{"type":"string","description":"List of requested scopes"}},"redirectUris":{"type":"array","description":"URIs, to which a user is redirected after authorization.","items":{"type":"string","description":"URIs, to which a user is redirected after authorization."}},"mappingClaim":{"type":"string","description":"Name of the claim which is used for the user mapping."},"flow":{"type":"string","description":"Flow, which is used at authentication","enum":["authorization_code","hybrid"]},"pkceEnabled":{"type":"boolean","description":"Determines whether PKCE is enabled.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)","default":false},"pkceChallengeMethod":{"type":"string","description":"PKCE code challenge method.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)","default":"plain"},"fallbackMappingClaim":{"type":"string","description":"Name of the claim which is used for the user mapping fallback."},"userInfoSource":{"type":"string","description":"Source, which is used to get user information at the import or update of a user.","enum":["user_info_endpoint","id_token"]},"userImportEnabled":{"type":"boolean","description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account.","default":false},"userImportGroup":{"type":"integer","description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64"},"userUpdateEnabled":{"type":"boolean","description":"Determines if the DRACOON account is updated with data from AD / IDP.\n\nFor OpenID Connect, the scopes `email` and `profile` are needed.","default":false},"userManagementUrl":{"type":"string","description":"URL of the user management UI.\n\nUse empty string to remove."},"useAuthProxyEnabled":{"type":"boolean","description":"Determines if the IDP use the DRACOON Auth Proxy.\n\nFor OpenID Connect, the scopes `email` and `profile` are needed.","default":false}},"description":"Request model for creating an OpenID Connect IDP configuration"},"CreateActiveDirectoryConfigRequest":{"required":["alias","ldapUsersDomain","serverAdminName","serverAdminPassword","serverIp","serverPort","userFilter"],"type":"object","properties":{"alias":{"type":"string","description":"Unique name for an Active Directory configuration"},"serverIp":{"type":"string","description":"IPv4 or IPv6 address or host name"},"serverPort":{"type":"integer","description":"Port","format":"int32"},"serverAdminName":{"type":"string","description":"Distinguished Name (DN) of Active Directory administrative account"},"serverAdminPassword":{"type":"string","description":"Password of Active Directory administrative account"},"ldapUsersDomain":{"type":"string","description":"Search scope of Active Directory; only users below this node can log on."},"userFilter":{"type":"string","description":"Name of Active Directory attribute that is used as login name."},"userImport":{"type":"boolean","description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account.","default":false},"useLdaps":{"type":"boolean","description":"Determines whether LDAPS should be used instead of plain LDAP.","default":false},"adExportGroup":{"type":"string","description":"If `userImport` is set to `true`,\n\nthe user must be member of this Active Directory group to receive a newly created DRACOON account."},"sdsImportGroup":{"type":"integer","description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64"},"createHomeFolder":{"type":"boolean","description":"DEPRECATED, will be ignored\n\nDetermines whether a room is created for each user that is created by automatic import (like a home folder).\n\nRoom's name will equal the user's login name.","default":false},"homeFolderParent":{"type":"integer","description":"DEPRECATED, will be ignored\n\nID of the room in which the individual rooms for users will be created.","format":"int64"},"sslFingerPrint":{"type":"string","description":"SSL finger print of Active Directory server.\n\nMandatory for LDAPS connections.\n\nFormat: `Algorithm/Fingerprint`"}},"description":"Request model for creating an Active Directory configuration"},"TestActiveDirectoryConfigRequest":{"required":["ldapUsersDomain","serverAdminName","serverAdminPassword","serverIp","serverPort"],"type":"object","properties":{"serverIp":{"type":"string","description":"IPv4 or IPv6 address or host name"},"serverPort":{"type":"integer","description":"Port","format":"int32"},"serverAdminName":{"type":"string","description":"Distinguished Name (DN) of Active Directory administrative account"},"serverAdminPassword":{"type":"string","description":"Password of Active Directory administrative account"},"ldapUsersDomain":{"type":"string","description":"Search scope of Active Directory; only users below this node can log on."},"useLdaps":{"type":"boolean","description":"Determines whether LDAPS should be used instead of plain LDAP.","default":false},"sslFingerPrint":{"type":"string","description":"SSL finger print of Active Directory server.\n\nMandatory for LDAPS connections.\n\nFormat: `Algorithm/Fingerprint`"}},"description":"Request model for testing connection for Active Directory configuration"},"TestActiveDirectoryConfigResponse":{"required":["ldapUsersDomain","serverAdminName","serverIp","serverPort","useLdaps"],"type":"object","properties":{"serverIp":{"type":"string","description":"IPv4 or IPv6 address or host name"},"serverPort":{"type":"integer","description":"Port","format":"int32"},"serverAdminName":{"type":"string","description":"Distinguished Name (DN) of Active Directory administrative account"},"ldapUsersDomain":{"type":"string","description":"Search scope of Active Directory; only users below this node can log on."},"useLdaps":{"type":"boolean","description":"Determines whether LDAPS should be used instead of plain LDAP."},"sslFingerPrint":{"type":"string","description":"SSL finger print of Active Directory server.\n\nMandatory for LDAPS connections.\n\nFormat: `Algorithm/Fingerprint`"}},"description":"Response model for testing connection for Active Directory configuration"},"CreateUploadShareRequest":{"required":["targetId"],"type":"object","properties":{"targetId":{"type":"integer","description":"Target room or folder ID","format":"int64"},"name":{"type":"string","description":"Alias name\n\n(default: name of the shared node)"},"password":{"type":"string","description":"Password"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"filesExpiryPeriod":{"type":"integer","description":"Number of days after which uploaded files expire","format":"int32"},"notes":{"maximum":255,"type":"string","description":"User notes"},"internalNotes":{"maximum":255,"type":"string","description":"Internal notes"},"showUploadedFiles":{"type":"boolean","description":"Allow display of already uploaded files","default":false},"maxSlots":{"type":"integer","description":"Maximal amount of files to upload","format":"int32"},"maxSize":{"type":"integer","description":"Maximal total size of uploaded files (in bytes)","format":"int64"},"receiverLanguage":{"type":"string","description":"Language tag for messages to receiver"},"textMessageRecipients":{"type":"array","description":"List of recipient FQTNs\n\nE.123 / E.164 Format","items":{"type":"string","description":"List of recipient FQTNs\n\nE.123 / E.164 Format"}},"showCreatorName":{"type":"boolean","description":"Show creator first and last name.","default":false},"showCreatorUsername":{"type":"boolean","description":"Show creator email address.","default":false},"notifyCreator":{"type":"boolean","description":"Notify creator on every upload.","deprecated":true,"default":false},"creatorLanguage":{"type":"string","description":"Language tag for messages to creator","deprecated":true},"sendMail":{"type":"boolean","description":"Notify recipients via email\n\nPlease use `POST /shares/uploads/{share_id}/email` API instead.","deprecated":true,"default":false},"mailRecipients":{"type":"string","description":"CSV string of recipient email addresses","deprecated":true},"mailSubject":{"type":"string","description":"Notification email subject","deprecated":true},"mailBody":{"type":"string","description":"Notification email content","deprecated":true},"sendSms":{"type":"boolean","description":"Send share password via SMS\n\nPlease use `textMessageRecipients` attribute instead.","deprecated":true,"default":false},"smsRecipients":{"type":"string","description":"CSV string of recipient MSISDNs","deprecated":true}},"description":"Request model for creating an Upload Share"},"UploadShareLinkEmail":{"required":["body","recipients"],"type":"object","properties":{"recipients":{"type":"array","description":"List of recipient email addresses","items":{"type":"string","description":"List of recipient email addresses"}},"body":{"type":"string","description":"Notification email content"},"receiverLanguage":{"type":"string","description":"Language tag for messages to receiver"}},"description":"Request model for sending an email of an Upload Share link"},"CreateDownloadShareRequest":{"required":["nodeId"],"type":"object","properties":{"nodeId":{"type":"integer","description":"Source node ID","format":"int64"},"name":{"type":"string","description":"Alias name\n\n(default: name of the shared node)"},"password":{"type":"string","description":"Access password, not allowed for encrypted shares"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"notes":{"maximum":255,"type":"string","description":"User notes"},"internalNotes":{"maximum":255,"type":"string","description":"Internal notes"},"showCreatorName":{"type":"boolean","description":"Show creator first and last name.","default":false},"showCreatorUsername":{"type":"boolean","description":"Show creator email address.","default":false},"maxDownloads":{"type":"integer","description":"Max allowed downloads","format":"int32"},"keyPair":{"$ref":"#/components/schemas/UserKeyPairContainer"},"fileKey":{"$ref":"#/components/schemas/FileKey"},"receiverLanguage":{"type":"string","description":"Language tag for messages to receiver"},"textMessageRecipients":{"type":"array","description":"List of recipient FQTNs\n\nE.123 / E.164 Format","items":{"type":"string","description":"List of recipient FQTNs\n\nE.123 / E.164 Format"}},"hideDownload":{"type":"boolean","description":"Whether or not the download is hidden on a public download share","default":false},"notifyCreator":{"type":"boolean","description":"Notify creator on every download.","deprecated":true,"default":false},"creatorLanguage":{"type":"string","description":"Language tag for messages to creator","deprecated":true},"sendMail":{"type":"boolean","description":"Notify recipients via email\n\nPlease use `POST /shares/downloads/{share_id}/email` API instead.","deprecated":true,"default":false},"mailRecipients":{"type":"string","description":"CSV string of recipient email addresses","deprecated":true},"mailSubject":{"type":"string","description":"Notification email subject","deprecated":true},"mailBody":{"type":"string","description":"Notification email content","deprecated":true},"sendSms":{"type":"boolean","description":"Send share password via SMS\n\nPlease use `textMessageRecipients` attribute instead.","deprecated":true,"default":false},"smsRecipients":{"type":"string","description":"CSV string of recipient MSISDNs","deprecated":true}},"description":"Request model for creating a Download Share"},"DownloadShareLinkEmail":{"required":["body","recipients"],"type":"object","properties":{"recipients":{"type":"array","description":"List of recipient email addresses","items":{"type":"string","description":"List of recipient email addresses"}},"body":{"type":"string","description":"Notification email content"},"receiverLanguage":{"type":"string","description":"Language tag for messages to receiver"}},"description":"Request model for sending an email of a Download Share link"},"CreateWebhookRequest":{"required":["eventTypeNames","name","url"],"type":"object","properties":{"name":{"type":"string","description":"Name"},"eventTypeNames":{"type":"array","description":"List of names of event types","items":{"type":"string","description":"List of names of event types"}},"url":{"type":"string","description":"URL (must begin with the `HTTPS` scheme)"},"secret":{"type":"string","description":"Secret; used for event message signatures"},"isEnabled":{"type":"boolean","description":"Is enabled"},"triggerExampleEvent":{"type":"boolean","description":"If set to true, an example event is being created"}},"description":"Request model for creating a webhook"},"UserIds":{"required":["ids"],"type":"object","properties":{"ids":{"type":"array","description":"List of user IDs","items":{"type":"integer","description":"List of user IDs","format":"int64"}}},"description":"User IDs"},"RoleUser":{"required":["displayName","id","isMember","userInfo"],"type":"object","properties":{"userInfo":{"$ref":"#/components/schemas/UserInfo"},"isMember":{"type":"boolean","description":"Is user member of the role"},"id":{"type":"integer","description":"Unique identifier for the user\n\nuse `id` from `UserInfo` instead","format":"int64","deprecated":true},"displayName":{"type":"string","description":"Display name\n\nuse information from `UserInfo` instead to combine a display name","deprecated":true}},"description":"User information"},"RoleUserList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of role-user mappings","items":{"$ref":"#/components/schemas/RoleUser"}}},"description":"List of users with assigned role"},"GroupIds":{"required":["ids"],"type":"object","properties":{"ids":{"type":"array","description":"List of group IDs","items":{"type":"integer","description":"List of group IDs","format":"int64"}}},"description":"Group IDs"},"RoleGroup":{"required":["id","isMember","name"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the group","format":"int64"},"isMember":{"type":"boolean","description":"Is group member of the role"},"name":{"type":"string","description":"Group name"}},"description":"Group information"},"RoleGroupList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of role-group mappings","items":{"$ref":"#/components/schemas/RoleGroup"}}},"description":"List of groups with assigned role"},"CreateShareUploadChannelRequest":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"File name"},"size":{"type":"integer","description":"File size in byte","format":"int64"},"password":{"type":"string","description":"Password"},"directS3Upload":{"type":"boolean","description":"Upload direct to S3","default":false},"timestampCreation":{"type":"string","description":"Time the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"}},"description":"Request model for creating an upload channel"},"CreateShareUploadChannelResponse":{"required":["uploadId","uploadUrl"],"type":"object","properties":{"uploadId":{"type":"string","description":"Upload (channel) ID"},"uploadUrl":{"type":"string","description":"(public) Upload URL"}},"description":"Upload channel information"},"GeneratePresignedUrlsRequest":{"required":["firstPartNumber","lastPartNumber","size"],"type":"object","properties":{"size":{"type":"integer","description":"`Content-Length` header size for each presigned URL (in bytes)\n\n*MUST* be >= 5 MB except the last part.","format":"int64"},"firstPartNumber":{"type":"integer","description":"First part number of a range of requested presigned URLs (for S3 it is: `1`)","format":"int32"},"lastPartNumber":{"type":"integer","description":"Last part number of a range of requested presigned URLs","format":"int32"}},"description":"Request model for generating presigned URLs"},"PresignedUrl":{"required":["partNumber","url"],"type":"object","properties":{"url":{"type":"string","description":"S3 presigned URL"},"partNumber":{"type":"integer","description":"Corresponding part number","format":"int32"}},"description":"Presigned URL information"},"PresignedUrlList":{"required":["urls"],"type":"object","properties":{"urls":{"type":"array","description":"List of S3 presigned URLs","items":{"$ref":"#/components/schemas/PresignedUrl"}}},"description":"List of generated presigned URLs"},"PublicDownloadTokenGenerateRequest":{"type":"object","properties":{"password":{"type":"string","description":"Password (only for password-protected shares)"}},"description":"Request model for generating download URL"},"PublicDownloadTokenGenerateResponse":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL"}},"description":"Download URL"},"FirstAdminUser":{"required":["firstName","lastName"],"type":"object","properties":{"firstName":{"type":"string","description":"User first name"},"lastName":{"type":"string","description":"User last name"},"userName":{"type":"string","description":"Username"},"authData":{"$ref":"#/components/schemas/UserAuthData"},"receiverLanguage":{"type":"string","description":"IETF language tag"},"notifyUser":{"type":"boolean","description":"Notify user about his new account\n\n* default: `true` for `basic` auth type\n\n* default: `false` for `active_directory`, `openid` auth types"},"email":{"type":"string","description":"Email "},"phone":{"type":"string","description":"Phone number"},"title":{"type":"string","description":"Job title","deprecated":true},"language":{"type":"string","description":"Language ID or ISO 639-1 code","deprecated":true},"authMethods":{"type":"array","description":"Authentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/UserAuthMethod"}},"needsToChangeUserName":{"type":"boolean","description":"If `true`, the user must change the `userName` at the first login.","deprecated":true,"default":false},"password":{"type":"string","description":"An initial password may be preset\n\nuse `authData` instead","deprecated":true},"needsToChangePassword":{"type":"boolean","description":"Determines whether user has to change his / her initial password.\n\nuse `authDate.mustChangePassword` instead","deprecated":true},"login":{"type":"string","description":"User login name","deprecated":true},"gender":{"type":"string","description":"Gender","deprecated":true,"default":"n"}},"description":"First administrator user"},"NewCustomerRequest":{"required":["customerContractType","firstAdminUser","quotaMax","userMax"],"type":"object","properties":{"customerContractType":{"type":"string","description":"Customer type","enum":["demo","free","pay"]},"quotaMax":{"type":"integer","description":"Maximal disc space which can be allocated by customer in bytes. -1 for unlimited","format":"int64"},"userMax":{"type":"integer","description":"Maximal number of users","format":"int32"},"firstAdminUser":{"$ref":"#/components/schemas/FirstAdminUser"},"companyName":{"type":"string","description":"Company name"},"trialDays":{"type":"integer","description":"Number of days left for trial period (relevant only for type `demo`)\n\n(not used)","format":"int32"},"isLocked":{"type":"boolean","description":"Customer is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nAll users of this customer will be blocked and can not login anymore.","default":false},"customerAttributes":{"$ref":"#/components/schemas/CustomerAttributes"},"providerCustomerId":{"type":"string","description":"Provider customer ID"},"webhooksMax":{"type":"integer","description":"Maximal number of webhooks","format":"int64"},"lockStatus":{"type":"boolean","description":"Customer lock status:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nPlease use `isLocked` instead.\n\nAll users of this customer will be blocked and can not login anymore.","deprecated":true,"default":false},"activationCode":{"type":"string","description":"Customer activation code string:\n\n* valid only for types `free` and `demo`\n\n* for `pay` customers it is empty","deprecated":true}},"description":"Request model for creating a customer"},"NewCustomerResponse":{"required":["companyName","customerContractType","customerUuid","firstAdminUser","lockStatus","quotaMax","userMax"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the customer","format":"int64"},"companyName":{"type":"string","description":"Company name"},"customerContractType":{"type":"string","description":"Customer type","enum":["demo","free","pay"]},"quotaMax":{"type":"integer","description":"Maximal disc space which can be allocated by customer in bytes. -1 for unlimited","format":"int64"},"userMax":{"type":"integer","description":"Maximal number of users","format":"int32"},"isLocked":{"type":"boolean","description":"Customer is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nAll users of this customer will be blocked and can not login anymore.","default":false},"trialDays":{"type":"integer","description":"Number of days left for trial period (relevant only for type `demo`)\n\n(not used)","format":"int32"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"firstAdminUser":{"$ref":"#/components/schemas/FirstAdminUser"},"customerAttributes":{"$ref":"#/components/schemas/CustomerAttributes"},"providerCustomerId":{"type":"string","description":"Provider customer ID"},"webhooksMax":{"type":"integer","description":"Maximal number of webhooks","format":"int64"},"customerUuid":{"type":"string","description":"Customer UUID"},"activationCode":{"type":"string","description":"Customer activation code string:\n\n* valid only for types `free` and `demo`\n\n* for `pay` customers it is empty","deprecated":true},"lockStatus":{"type":"boolean","description":"Customer lock status:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nPlease use `isLocked` instead.\n\nAll users of this customer will be blocked and can not login anymore.","deprecated":true,"default":false}},"description":"Customer information"},"Customer":{"required":["cntGuestUser","cntInternalUser","companyName","createdAt","customerContractType","customerUuid","id","lockStatus","quotaMax","quotaUsed","userMax","userUsed"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the customer","format":"int64"},"companyName":{"type":"string","description":"Company name"},"customerContractType":{"type":"string","description":"Customer type","enum":["demo","free","pay"]},"quotaMax":{"type":"integer","description":"Maximal disc space which can be allocated by customer in bytes. -1 for unlimited","format":"int64"},"quotaUsed":{"type":"integer","description":"Used amount of disc space in bytes","format":"int64"},"userMax":{"type":"integer","description":"Maximal number of users","format":"int32"},"userUsed":{"type":"integer","description":"Number of users which are already allocated.","format":"int32"},"cntInternalUser":{"type":"integer","description":"Number of internal user accounts","format":"int32"},"cntGuestUser":{"type":"integer","description":"Number of guest user accounts","format":"int32"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"isLocked":{"type":"boolean","description":"Customer is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nAll users of this customer will be blocked and can not login anymore.","default":false},"trialDaysLeft":{"type":"integer","description":"Number of days left for trial period (relevant only for type `demo`)\n\n(not used)","format":"int32"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"lastLoginAt":{"type":"string","description":"Date of last seen login for the customer","format":"date-time"},"customerAttributes":{"$ref":"#/components/schemas/CustomerAttributes"},"providerCustomerId":{"type":"string","description":"Provider customer ID"},"webhooksMax":{"type":"integer","description":"Maximal number of webhooks","format":"int64"},"activationCode":{"type":"string","description":"Customer activation code string:\n\n* valid only for types `free` and `demo`\n\n* for `pay` customers it is empty","deprecated":true},"lockStatus":{"type":"boolean","description":"Customer lock status:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nPlease use `isLocked` instead.\n\nAll users of this customer will be blocked and can not login anymore.","deprecated":true,"default":false},"customerUuid":{"type":"string","description":"Customer UUID"}},"description":"Customer information"},"MoveNode":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","description":"Source node ID","format":"int64"},"name":{"type":"string","description":"New node name"},"timestampCreation":{"type":"string","description":"Time the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"}},"description":"Moved node information"},"MoveNodesRequest":{"type":"object","properties":{"items":{"type":"array","description":"List of nodes to be moved","items":{"$ref":"#/components/schemas/MoveNode"}},"resolutionStrategy":{"type":"string","description":"Node conflict resolution strategy:\n\n* `autorename`\n\n* `overwrite`\n\n* `fail`","default":"autorename","enum":["autorename","overwrite","fail"]},"keepShareLinks":{"type":"boolean","description":"Preserve Download Share Links and point them to the new node.","default":false},"nodeIds":{"type":"array","description":"Node IDs\n\nPlease use `items` instead.","deprecated":true,"items":{"type":"integer","description":"Node IDs\n\nPlease use `items` instead.","format":"int64","deprecated":true}}},"description":"Request model for moving nodes"},"CopyNode":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","description":"Source node ID","format":"int64"},"name":{"type":"string","description":"New node name"},"timestampCreation":{"type":"string","description":"Time the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"}},"description":"Copied node information"},"CopyNodesRequest":{"type":"object","properties":{"items":{"type":"array","description":"List of nodes to be copied","items":{"$ref":"#/components/schemas/CopyNode"}},"resolutionStrategy":{"type":"string","description":"Node conflict resolution strategy:\n\n* `autorename`\n\n* `overwrite`\n\n* `fail`","default":"autorename","enum":["autorename","overwrite","fail"]},"keepShareLinks":{"type":"boolean","description":"Preserve Download Share Links and point them to the new node.","default":false},"nodeIds":{"type":"array","description":"Node IDs\n\nPlease use `items` instead.","deprecated":true,"items":{"type":"integer","description":"Node IDs\n\nPlease use `items` instead.","format":"int64","deprecated":true}}},"description":"Request model for copying nodes"},"CreateNodeCommentRequest":{"required":["text"],"type":"object","properties":{"text":{"type":"string","description":"Comment text"}},"description":"Request model for creating a node comment"},"ZipDownloadRequest":{"required":["nodeIds"],"type":"object","properties":{"nodeIds":{"type":"array","description":"List of node IDs","items":{"type":"integer","description":"List of node IDs","format":"int64"}}},"description":"Request model for ZIP download"},"DownloadTokenGenerateResponse":{"required":["downloadUrl"],"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL"}},"description":"Download URL"},"CreateRoomRequest":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Name"},"parentId":{"type":"integer","description":"Parent room ID or `null` (not 0) to create a top level room","format":"int64"},"recycleBinRetentionPeriod":{"maximum":9999,"minimum":0,"type":"integer","description":"Retention period for deleted nodes in days","format":"int32"},"quota":{"type":"integer","description":"Quota in byte","format":"int64"},"inheritPermissions":{"type":"boolean","description":"Inherit permissions from parent room\n\n(default: `false` if `parentId` is `0`; otherwise: `true`)"},"adminIds":{"type":"array","description":"List of user ids\n\nA room requires at least one admin (user or group)","items":{"type":"integer","description":"List of user ids\n\nA room requires at least one admin (user or group)","format":"int64"}},"adminGroupIds":{"type":"array","description":"List of group ids\n\nA room requires at least one admin (user or group)","items":{"type":"integer","description":"List of group ids\n\nA room requires at least one admin (user or group)","format":"int64"}},"newGroupMemberAcceptance":{"type":"string","description":"Behaviour when new users are added to the group:\n\n* `autoallow`\n\n* `pending`\n\n\n\nOnly relevant if `adminGroupIds` has items.","default":"autoallow","enum":["autoallow","pending"]},"notes":{"type":"string","description":"User notes\n\nUse empty string to remove."},"hasActivitiesLog":{"type":"boolean","description":"Is activities log active (for rooms only)","default":true},"classification":{"type":"integer","description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential\n\n\n\nProvided (or default) classification is taken from room\n\nwhen file gets uploaded without any classification.","format":"int32","default":2,"enum":[1,2,3,4]},"timestampCreation":{"type":"string","description":"Time the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"hasRecycleBin":{"type":"boolean","description":"Is recycle bin active (for rooms only)\n\nRecycle bin is always on (disabling is not possible).","deprecated":true}},"description":"Request model for creating a room"},"S3TagIds":{"required":["ids"],"type":"object","properties":{"ids":{"type":"array","description":"List of S3 tag IDs","items":{"type":"integer","description":"List of S3 tag IDs","format":"int64"}}},"description":"List of S3 tag IDs"},"S3TagList":{"type":"object","properties":{"items":{"type":"array","description":"List of configured S3 tags","items":{"$ref":"#/components/schemas/S3Tag"}}},"description":"List of S3 tags"},"CreateFolderRequest":{"required":["name","parentId"],"type":"object","properties":{"parentId":{"type":"integer","description":"Parent node ID (room or folder)","format":"int64"},"name":{"type":"string","description":"Name"},"notes":{"type":"string","description":"User notes\n\nUse empty string to remove."},"classification":{"type":"integer","description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential\n\n\n\nProvided (or default) classification is taken from room\n\nwhen file gets uploaded without any classification.","format":"int32","enum":[1,2,3,4]},"timestampCreation":{"type":"string","description":"Time the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"}},"description":"Request model for creating a folder"},"CreateFileUploadRequest":{"required":["name","parentId"],"type":"object","properties":{"parentId":{"type":"integer","description":"Parent node ID (room or folder)","format":"int64"},"name":{"type":"string","description":"File name"},"classification":{"type":"integer","description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential\n\n\n\n(default: classification from parent room)","format":"int32","enum":[1,2,3,4]},"size":{"type":"integer","description":"File size in byte","format":"int64"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"notes":{"type":"string","description":"User notes\n\nUse empty string to remove."},"directS3Upload":{"type":"boolean","description":"Upload direct to S3","default":false},"timestampCreation":{"type":"string","description":"Time the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"}},"description":"Request model for creating an upload channel"},"CreateFileUploadResponse":{"required":["token","uploadId","uploadUrl"],"type":"object","properties":{"uploadUrl":{"type":"string","description":"(public) Upload URL"},"uploadId":{"type":"string","description":"Upload (channel) ID"},"token":{"type":"string","description":"Upload token"}},"description":"Upload channel information"},"UserFileKeySetBatchRequest":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of user file keys","items":{"$ref":"#/components/schemas/UserFileKeySetRequest"}}},"description":"List of request models for setting a user file key(s)"},"UserFileKeySetRequest":{"required":["fileId","fileKey","userId"],"type":"object","properties":{"fileId":{"type":"integer","description":"File ID","format":"int64"},"userId":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"fileKey":{"$ref":"#/components/schemas/FileKey"}},"description":"Request model for setting a user file key"},"VirusProtectionVerdictRequest":{"required":["nodeIds"],"type":"object","properties":{"nodeIds":{"type":"array","description":"List of node IDs","items":{"type":"integer","description":"List of node IDs","format":"int64"}}},"description":"Request to generate the virus-protection verdict information for nodes"},"NodeVirusProtectionInfo":{"required":["nodeId","verdict"],"type":"object","properties":{"verdict":{"type":"string","description":"The verdict for the node id. Either NO_SCANNING, IN_PROGRESS, CLEAN, MALICIOUS","enum":["NOT_SCANNING","IN_PROGRESS","CLEAN","MALICIOUS"]},"lastCheckedAt":{"type":"string","description":"The date the file was last scanned","format":"date-time"},"sha256":{"type":"string","description":"The hash of the file"},"nodeId":{"type":"integer","description":"Node ID","format":"int64"}},"description":"Verdict information for a node"},"RestoreDeletedNodesRequest":{"required":["deletedNodeIds"],"type":"object","properties":{"deletedNodeIds":{"type":"array","description":"List of deleted node IDs","items":{"type":"integer","description":"List of deleted node IDs","format":"int64"}},"resolutionStrategy":{"type":"string","description":"Node conflict resolution strategy:\n\n* `autorename`\n\n* `overwrite`\n\n* `fail`","default":"autorename","enum":["autorename","overwrite","fail"]},"keepShareLinks":{"type":"boolean","description":"Preserve Download Share Links and point them to the new node.","default":false},"parentId":{"type":"integer","description":"Node parent ID\n\n(default: previous parent ID)","format":"int64"}},"description":"Request model for restoring deleted nodes"},"CreateGroupRequest":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Group name"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"}},"description":"Request model for creating a group"},"ChangeGroupMembersRequest":{"required":["ids"],"type":"object","properties":{"ids":{"type":"array","description":"List of user IDs","items":{"type":"integer","description":"List of user IDs","format":"int64"}}},"description":"List of user IDs"},"DatevMstCreateTaxYearRequest":{"required":["taxYear"],"type":"object","properties":{"taxYear":{"type":"string","description":"Datev tax year"}},"description":"Request model for creating a MST tax year"},"DatevMstAuthorizationStartRequest":{"required":["baseId","clientId","consultantId","roomId"],"type":"object","properties":{"roomId":{"type":"integer","description":"Room ID","format":"int64"},"consultantId":{"type":"integer","description":"Datev Consultant ID","format":"int64"},"clientId":{"type":"integer","description":"Datev Client ID","format":"int64"},"baseId":{"type":"integer","description":"Datev Base ID","format":"int64"}},"description":"Request model for starting a Datev MST authorization"},"DatevAuthorizationUrl":{"required":["url"],"type":"object","properties":{"url":{"type":"string","description":"OAuth Authorization URL"}},"description":"Datev authorization URL"},"DatevAuthorizationCompleteRequest":{"required":["code","state"],"type":"object","properties":{"state":{"type":"string","description":"OAuth State"},"code":{"type":"string","description":"OAuth Code"}},"description":"Request model for completing a Datev authorization"},"DatevSyncConfig":{"required":["authorizingUserId","authorizingUserName","id","refreshTokenExpireAt","roomId"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int64"},"datevIntegration":{"type":"integer","description":"Type of the Datev integration","format":"int32"},"roomId":{"type":"integer","description":"Room ID","format":"int64"},"consultantId":{"type":"integer","description":"Datev Consultant ID","format":"int64"},"clientId":{"type":"integer","description":"Datev Client ID","format":"int64"},"baseId":{"type":"integer","description":"Datev Base ID","format":"int64"},"authorizingUserId":{"type":"integer","description":"ID of the user that authorized the connection","format":"int64"},"authorizingUserName":{"type":"string","description":"Full name of the user that authorized the connection"},"refreshTokenExpireAt":{"type":"string","description":"Expiry Date of the refresh token","format":"date-time"},"errorDetails":{"$ref":"#/components/schemas/ErrorResponse"}},"description":"Datev sync configuration"},"DatevAuthorizationStartRequest":{"required":["clientId","consultantId","roomId"],"type":"object","properties":{"roomId":{"type":"integer","description":"Room ID","format":"int64"},"consultantId":{"type":"integer","description":"Datev Consultant ID","format":"int64"},"clientId":{"type":"integer","description":"Datev Client ID","format":"int64"}},"description":"Request model for starting a Datev authorization"},"ResetPasswordRequest":{"type":"object","properties":{"userName":{"type":"string","description":"Username"},"creatorLanguage":{"type":"string","description":"IETF language tag"},"language":{"type":"string","description":"Language ID or ISO 639-1 code","deprecated":true},"login":{"type":"string","description":"User login name","deprecated":true}},"description":"Request model for resetting user's login password"},"RecoverUserNameRequest":{"required":["email"],"type":"object","properties":{"email":{"type":"string","description":"Email "},"creatorLanguage":{"type":"string","description":"IETF language tag"}},"description":"Recover usernames for email"},"UserItem":{"required":["avatarUuid","firstName","id","isLocked","lastName","lockStatus","login","userName"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"userName":{"type":"string","description":"Username"},"firstName":{"type":"string","description":"User first name"},"lastName":{"type":"string","description":"User last name"},"isLocked":{"type":"boolean","description":"User is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nUser is locked and can not login anymore.","default":false},"hasManageableRooms":{"type":"boolean","description":"User has manageable rooms","deprecated":true},"avatarUuid":{"type":"string","description":"Avatar UUID"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"lastLoginSuccessAt":{"type":"string","description":"Last successful logon date","format":"date-time"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"isEncryptionEnabled":{"type":"boolean","description":"User has generated private key.\n\nPossible if client-side encryption is active for this customer"},"email":{"type":"string","description":"Email "},"phone":{"type":"string","description":"Phone number"},"homeRoomId":{"type":"integer","description":"Homeroom ID","format":"int64"},"automaticallySubscribeDatarooms":{"type":"boolean","description":"Automatically subscribe datarooms when getting permissions"},"userRoles":{"$ref":"#/components/schemas/RoleList"},"userAttributes":{"$ref":"#/components/schemas/UserAttributes"},"lockStatus":{"type":"integer","description":"User lock status:\n\n* `0` - locked\n\n* `1` - Web access allowed\n\n* `2` - Web and mobile access allowed\n\n\n\nPlease use `isLocked` instead.","format":"int32","deprecated":true},"login":{"type":"string","description":"User login name","deprecated":true},"title":{"type":"string","description":"Job title","deprecated":true},"gender":{"type":"string","description":"Gender","deprecated":true,"default":"n"}},"description":"User information"},"UserList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of users","items":{"$ref":"#/components/schemas/UserItem"}}},"description":"List of users"},"AttributesResponse":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"}}},"description":"Ranged list of attributes"},"RoomData":{"required":["hasRecycleBin","id","isEncrypted","isGranted","name","recycleBinRetentionPeriod"],"type":"object","properties":{"type":{"type":"string","description":"Node type","enum":["room"]},"id":{"type":"integer","description":"Room ID","format":"int64"},"isGranted":{"type":"boolean","description":"Is user granted room permissions"},"name":{"type":"string","description":"Name"},"isEncrypted":{"type":"boolean","description":"Encryption state"},"recycleBinRetentionPeriod":{"maximum":9999,"minimum":0,"type":"integer","description":"Retention period for deleted nodes in days","format":"int32"},"parentId":{"type":"integer","description":"Parent node ID (room or folder)","format":"int64"},"size":{"type":"integer","description":"Room size","format":"int64"},"permissions":{"$ref":"#/components/schemas/NodePermissions"},"createdAt":{"type":"string","description":"Expiration date","format":"date-time"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"},"quota":{"type":"integer","description":"Quota in byte","format":"int64"},"cntDownloadShares":{"type":"integer","description":"Returns the number of Download Shares of this node.","format":"int32"},"cntUploadShares":{"type":"integer","description":"Returns the number of Upload Shares of this node.","format":"int32"},"isFavorite":{"type":"boolean","description":"Node is marked as favorite (for rooms / folders only)"},"hasRecycleBin":{"type":"boolean","description":"Is recycle bin active (for rooms only)\n\nRecycle bin is always on (disabling is not possible).","deprecated":true},"children":{"type":"array","description":"List of rooms, where this room is a parent (if exist)","deprecated":true,"items":{"$ref":"#/components/schemas/RoomData"}}},"description":"Room information"},"RoomTreeDataList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of room data information","items":{"$ref":"#/components/schemas/RoomData"}}},"description":"List of rooms"},"LastAdminUserRoom":{"required":["id","lastAdminInGroup","name","parentPath"],"type":"object","properties":{"id":{"type":"integer","description":"Room ID","format":"int64"},"name":{"type":"string","description":"Room name"},"parentPath":{"type":"string","description":"Parent node path\n\n`/` if node is a root node (room)"},"lastAdminInGroup":{"type":"boolean","description":"Determines whether user is last admin of a room due to being the last member of last admin group"},"parentId":{"type":"integer","description":"Parent room ID","format":"int64"},"lastAdminInGroupId":{"type":"integer","description":"ID of the last admin group where the user is the only remaining member\n\n(returned only if `lastAdminInGroup` is `true`)","format":"int64"}},"description":"Room information"},"LastAdminUserRoomList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of last admin rooms","items":{"$ref":"#/components/schemas/LastAdminUserRoom"}}},"description":"List of (last admin user) rooms"},"UserGroupList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of user-group mappings","items":{"$ref":"#/components/schemas/UserGroup"}}},"description":"List of groups"},"SubscribedUploadShareList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of subscribed upload shares","items":{"$ref":"#/components/schemas/SubscribedUploadShare"}}},"description":"List of subscribed upload shares"},"SubscribedNodeList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of subscribed nodes","items":{"$ref":"#/components/schemas/SubscribedNode"}}},"description":"List of subscribed nodes"},"SubscribedDownloadShareList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of subscribed download shares","items":{"$ref":"#/components/schemas/SubscribedDownloadShare"}}},"description":"List of subscribed download shares"},"OAuthAuthorization":{"required":["clientId","clientName","userAgentCategory"],"type":"object","properties":{"clientId":{"type":"string","description":"ID of the OAuth client"},"clientName":{"type":"string","description":"Name, which is shown at the client configuration and authorization."},"userAgentCategory":{"type":"string","description":"User agent category.","enum":["browser","native","unknown"]},"id":{"type":"integer","description":"ID of the OAuth authorization","format":"int64"},"isStandard":{"type":"boolean","description":"Determines whether client is a standard client."},"createdAt":{"type":"string","description":"Creation date of the authorization","format":"date-time"},"usedAt":{"type":"string","description":"Usage date of the authorization\n\n(Time of last usage.)","format":"date-time"},"expiresAt":{"type":"string","description":"Expiration date of the authorization","format":"date-time"},"userAgentType":{"type":"string","description":"User agent type."},"userAgentOs":{"type":"string","description":"User agent OS."},"userAgentInfo":{"type":"string","description":"User agent info."},"isCurrentAuthorization":{"type":"boolean","description":"Determines whether authorization matches the one from Authorization Header"}},"description":"OAuth authorization"},"OAuthApproval":{"required":["clientId","clientName"],"type":"object","properties":{"clientId":{"type":"string","description":"ID of the OAuth client"},"clientName":{"type":"string","description":"Name, which is shown at the client configuration and authorization."},"expiresAt":{"type":"string","description":"Expiration date of the approval","format":"date-time"}},"description":"OAuth client approval information"},"NotificationConfigList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of notification configurations","items":{"$ref":"#/components/schemas/NotificationConfig"}}},"description":"List of notification configurations"},"MfaSetupStatus":{"required":["createdAt","id","mfaType","name"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int64"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"mfaType":{"type":"string","description":"Type of second factor authentication","enum":["TOTP","EMERGENCY","U2F"]},"name":{"type":"string","description":"A name to identify the MFA setup by the user. Default is MFA-type followed by a number"}},"description":"Contains the save-to-send-out information of a MFA-setup"},"UserMfaStatusResponse":{"required":["mfaEnforced","mfaSetups"],"type":"object","properties":{"mfaEnforced":{"type":"boolean","description":"Determines whether multi-factor authentication is enforced"},"mfaSetups":{"type":"array","description":"Information about the second factor authentication method setup by the user","items":{"$ref":"#/components/schemas/MfaSetupStatus"}}},"description":"Contains information about the user's MFA status"},"TotpSetupResponse":{"required":["id","otpUri","qrCode","secret"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int64"},"qrCode":{"type":"string","description":"TOTP data URL (QR Code)"},"otpUri":{"type":"string","description":"URI containing secret key, issuer and account information"},"secret":{"type":"string","description":"Secret key used for setup of TOTP authentication"}},"description":"Contains QR code URL and OTP URI for TOTP setup"},"InfrastructureProperties":{"type":"object","properties":{"smsConfigEnabled":{"type":"boolean","description":"Allow sending of share passwords via SMS"},"mediaServerConfigEnabled":{"type":"boolean","description":"Determines if the media server is enabled"},"s3DefaultRegion":{"type":"string","description":"Suggested S3 Region"},"s3EnforceDirectUpload":{"type":"boolean","description":"Enforce direct upload to S3"},"isDracoonCloud":{"type":"boolean","description":"Determines if the DRACOON Core is deployed in the cloud environment"},"tenantUuid":{"type":"string","description":"Current tenant UUID"}},"description":"Infrastructure properties"},"ActiveDirectoryConfigList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of Active Directory configurations","items":{"$ref":"#/components/schemas/ActiveDirectoryConfig"}}},"description":"List of Active Directory configurations"},"UploadShareList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of Upload Shares","items":{"$ref":"#/components/schemas/UploadShare"}}},"description":"List of Upload Shares"},"DownloadShareList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of Download Shares","items":{"$ref":"#/components/schemas/DownloadShare"}}},"description":"List of Download Shares"},"WebhookList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of webhooks","items":{"$ref":"#/components/schemas/Webhook"}}},"description":"List of webhooks"},"EventType":{"required":["id","name","usableCustomerAdminWebhook","usableNodeWebhook","usablePushNotification","usableTenantWebhook"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int32"},"name":{"type":"string","description":"Name"},"usableTenantWebhook":{"type":"boolean","description":"Usable as tenant webhook"},"usableCustomerAdminWebhook":{"type":"boolean","description":"Usable as customer admin webhook"},"usableNodeWebhook":{"type":"boolean","description":"Usable as node webhook"},"usablePushNotification":{"type":"boolean","description":"Usable as push notification"}},"description":"Event type information"},"EventTypeList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of event types","items":{"$ref":"#/components/schemas/EventType"}}},"description":"List of event types"},"NotificationScope":{"required":["id","name"],"type":"object","properties":{"id":{"type":"integer","description":"Scope ID","format":"int32"},"name":{"type":"string","description":"Name"}},"description":"Notification scope information"},"NotificationScopeList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of notification scopes","items":{"$ref":"#/components/schemas/NotificationScope"}}},"description":"List of notification scopes"},"SdsServerTime":{"type":"object","properties":{"time":{"type":"string","description":"DRACOON server time","format":"date-time"}},"description":"DRACOON server time"},"SystemInfo":{"required":["authMethods","hideLoginInputFields","languageDefault","s3EnforceDirectUpload","s3Hosts","useS3Storage"],"type":"object","properties":{"languageDefault":{"type":"string","description":"System default language\n\ncf. [RFC 5646](https://tools.ietf.org/html/rfc5646)"},"hideLoginInputFields":{"type":"boolean","description":"Defines if login fields should be hidden","deprecated":true},"s3Hosts":{"type":"array","description":"List of S3 Hosts for CSP header","items":{"type":"string","description":"List of S3 Hosts for CSP header"}},"s3EnforceDirectUpload":{"type":"boolean","description":"Determines whether S3 direct upload is enforced or not"},"useS3Storage":{"type":"boolean","description":"Defines if S3 is used as storage backend"},"authMethods":{"type":"array","description":"Authentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/AuthMethod"}}},"description":"System information (default language and authentication methods)"},"OpenIdAuthInfo":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of available OpenID Connect identity providers","items":{"$ref":"#/components/schemas/OpenIdProvider"}}},"description":"List of OpenID Connect providers"},"OpenIdProvider":{"required":["id","isGlobalAvailable","issuer","mappingClaim","name"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int32"},"name":{"type":"string","description":"Name of the IDP"},"isStandard":{"type":"boolean","description":"Determines whether client is a standard client."},"isEnabled":{"type":"boolean","description":"Determines whether client is enabled."},"issuer":{"type":"string","description":"Issuer identifier of the IDP\n\nThe value is a case sensitive URL."},"mappingClaim":{"type":"string","description":"Name of the claim which is used for the user mapping."},"isGlobalAvailable":{"type":"boolean","description":"Is available for all customers"},"userManagementUrl":{"type":"string","description":"URL of the user management UI.\n\nUse empty string to remove."}},"description":"OpenID Connect provider information"},"ActiveDirectory":{"required":["alias","id","isGlobalAvailable"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int32"},"alias":{"type":"string","description":"Unique name for an Active Directory configuration"},"isGlobalAvailable":{"type":"boolean","description":"Is available for all customers"}},"description":"Active Directory information"},"ActiveDirectoryAuthInfo":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of available Active Directories","items":{"$ref":"#/components/schemas/ActiveDirectory"}}},"description":"List of Active Directories"},"SoftwareVersionData":{"required":["buildDate","restApiVersion","scmRevisionNumber","sdsServerVersion","version"],"type":"object","properties":{"restApiVersion":{"type":"string","description":"REST API version","deprecated":true},"sdsServerVersion":{"type":"string","description":"DRACOON server version","deprecated":true},"version":{"type":"string","description":"Software version"},"buildDate":{"type":"string","description":"Build date","format":"date-time"},"scmRevisionNumber":{"type":"string","description":"Revision number"},"isDracoonCloud":{"type":"boolean","description":"Determines if the DRACOON Core is deployed in the cloud environment"}},"description":"Software version information"},"ThirdPartyDependenciesData":{"required":["artifactId","description","groupId","id","licenses","name","type","url","version"],"type":"object","properties":{"id":{"type":"string","description":"Third party dependencies id"},"name":{"type":"string","description":"Third party dependencies name"},"url":{"type":"string","description":"Third party dependencies url"},"description":{"type":"string","description":"Third party dependencies description"},"groupId":{"type":"string","description":"Third party dependencies groupId"},"artifactId":{"type":"string","description":"Third party dependencies artifactId"},"version":{"type":"string","description":"Third party dependencies version"},"type":{"type":"string","description":"Third party dependencies type"},"licenses":{"type":"array","description":"Third party dependencies licenses type","items":{"type":"string","description":"Third party dependencies licenses type"}}},"description":"Third-party dependency information"},"PublicUploadShare":{"required":["createdAt","creatorName","isProtected"],"type":"object","properties":{"isProtected":{"type":"boolean","description":"Is share protected by password"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"name":{"type":"string","description":"Share display name (alias name)"},"isEncrypted":{"type":"boolean","description":"Encryption state"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"notes":{"maximum":255,"type":"string","description":"User notes"},"uploadedFiles":{"type":"array","description":"List of (public) uploaded files","items":{"$ref":"#/components/schemas/PublicUploadedFileData"}},"userUserPublicKeyList":{"$ref":"#/components/schemas/UserUserPublicKeyList"},"showUploadedFiles":{"type":"boolean","description":"Allow display of already uploaded files"},"remainingSize":{"type":"integer","description":"Remaining size","format":"int64"},"remainingSlots":{"type":"integer","description":"Remaining slots","format":"int32"},"creatorName":{"type":"string","description":"Creator name"},"creatorUsername":{"type":"string","description":"Creator username"}},"description":"Upload Share information"},"UserUserPublicKey":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"}},"description":"Public key information"},"UserUserPublicKeyList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of user public keys","items":{"$ref":"#/components/schemas/UserUserPublicKey"}}},"description":"List of user public keys"},"S3ShareUploadStatus":{"required":["fileName","status"],"type":"object","properties":{"status":{"type":"string","description":"S3 file upload status:\n\n* `transfer` - upload in progress\n\n* `finishing` - completing file upload\n\n* `done` - file upload successully done\n\n* `error` - an error occurred while file upload"},"fileName":{"type":"string","description":"File name"},"size":{"type":"integer","description":"File size in byte","format":"int64"},"errorDetails":{"$ref":"#/components/schemas/ErrorResponse"}},"description":"S3 file upload status information"},"PublicDownloadShare":{"required":["createdAt","creatorName","fileName","hasDownloadLimit","isProtected","limitReached","mediaType","size"],"type":"object","properties":{"isProtected":{"type":"boolean","description":"Is share protected by password"},"fileName":{"type":"string","description":"File name"},"size":{"type":"integer","description":"File size or container size not compressed (in bytes)","format":"int64"},"limitReached":{"type":"boolean","description":"Downloads limit reached"},"creatorName":{"type":"string","description":"Creator name"},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"hasDownloadLimit":{"type":"boolean","description":"Determines whether Download Share has a limit for amount of downloads"},"mediaType":{"type":"string","description":"* `application/zip` (for folders and rooms)\n\n* actual file media type (for files only)"},"name":{"type":"string","description":"Share display name (alias name)"},"creatorUsername":{"type":"string","description":"Creator username"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"notes":{"maximum":255,"type":"string","description":"User notes"},"isEncrypted":{"type":"boolean","description":"Encryption state"},"fileKey":{"$ref":"#/components/schemas/FileKey"},"privateKeyContainer":{"$ref":"#/components/schemas/PrivateKeyContainer"},"virusProtectionInfo":{"$ref":"#/components/schemas/VirusProtectionInfo"},"hideDownload":{"type":"boolean","description":"Whether or not the download is hidden on a public download share"}},"description":"Download Share information"},"CustomerList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of customers","items":{"$ref":"#/components/schemas/Customer"}}},"description":"List of customers"},"NodeList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of nodes","items":{"$ref":"#/components/schemas/Node"}}},"description":"List of nodes"},"NodeParent":{"required":["id","name","type"],"type":"object","properties":{"id":{"type":"integer","description":"Node ID","format":"int64"},"name":{"type":"string","description":"Node name"},"type":{"type":"string","description":"Node type"},"parentId":{"type":"integer","description":"Parent node ID (room or folder)","format":"int64"}},"description":"Parent node"},"NodeParentList":{"type":"object","properties":{"items":{"type":"array","description":"List of node parents","items":{"$ref":"#/components/schemas/NodeParent"}}},"description":"List of parent nodes"},"DeletedNodeSummary":{"required":["cntVersions","firstDeletedAt","lastDeletedAt","lastDeletedNodeId","name","parentId","parentPath","type"],"type":"object","properties":{"parentId":{"type":"integer","description":"Parent node ID (room or folder)","format":"int64"},"referenceId":{"type":"integer","description":"Reference ID. Identical across all versions of a file","format":"int64"},"parentPath":{"type":"string","description":"Parent node path\n\n`/` if node is a root node (room)"},"name":{"type":"string","description":"Node name"},"type":{"type":"string","description":"Node type","enum":["folder","file"]},"cntVersions":{"type":"integer","description":"Number of deleted versions of this file","format":"int32"},"firstDeletedAt":{"type":"string","description":"First deleted version","format":"date-time"},"lastDeletedAt":{"type":"string","description":"Last deleted version","format":"date-time"},"lastDeletedNodeId":{"type":"integer","description":"Node ID of last deleted version","format":"int64"},"timestampCreation":{"type":"string","description":"Time the node was created on external file system","format":"date-time"},"timestampModification":{"type":"string","description":"Time the content of a node was last modified on external file system","format":"date-time"}},"description":"Deleted node information (Deleted node can be a folder or file)"},"DeletedNodeSummaryList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of deleted nodes (summary)","items":{"$ref":"#/components/schemas/DeletedNodeSummary"}}},"description":"List of deleted nodes"},"DeletedNode":{"required":["name","parentId","parentPath","type"],"type":"object","properties":{"id":{"type":"integer","description":"Node ID","format":"int64"},"referenceId":{"type":"integer","description":"Reference ID. Identical across all versions of a file","format":"int64"},"parentId":{"type":"integer","description":"Parent node ID (room or folder)","format":"int64"},"parentPath":{"type":"string","description":"Parent node path\n\n`/` if node is a root node (room)"},"type":{"type":"string","description":"Node type","enum":["folder","file"]},"name":{"type":"string","description":"Node name"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"accessedAt":{"type":"string","description":"Last access date","format":"date-time"},"isEncrypted":{"type":"boolean","description":"Encryption state"},"notes":{"maximum":255,"type":"string","description":"User notes"},"size":{"type":"integer","description":"Node size in byte","format":"int64"},"classification":{"type":"integer","description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential\n\n\n\n(default: classification from parent room)","format":"int32","enum":[1,2,3,4]},"createdAt":{"type":"string","description":"Creation date","format":"date-time"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"updatedAt":{"type":"string","description":"Modification date","format":"date-time"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"},"deletedAt":{"type":"string","description":"Deletion date","format":"date-time"},"deletedBy":{"$ref":"#/components/schemas/UserInfo"}},"description":"Deleted node information (Deleted node can be a folder or file)"},"DeletedNodeVersionsList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of deleted nodes","items":{"$ref":"#/components/schemas/DeletedNode"}}},"description":"List of deleted versions of nodes"},"CommentList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of node comments","items":{"$ref":"#/components/schemas/Comment"}}},"description":"List of node comments"},"RoomUser":{"required":["displayName","email","id","isGranted","login","userInfo"],"type":"object","properties":{"userInfo":{"$ref":"#/components/schemas/UserInfo"},"isGranted":{"type":"boolean","description":"Is user granted room permissions"},"permissions":{"$ref":"#/components/schemas/NodePermissions"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"},"id":{"type":"integer","description":"Unique identifier for the user\n\nuse `id` from `UserInfo` instead","format":"int64","deprecated":true},"login":{"type":"string","description":"User login name","deprecated":true},"displayName":{"type":"string","description":"Display name\n\nuse information from `UserInfo` instead to combine a display name","deprecated":true},"email":{"type":"string","description":"Email \n\nuse `email` from `UserInfo` instead","deprecated":true}},"description":"User information"},"RoomUserList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of room-user mappings","items":{"$ref":"#/components/schemas/RoomUser"}}},"description":"List of users"},"RoomPolicies":{"required":["defaultExpirationPeriod","isVirusProtectionEnabled"],"type":"object","properties":{"defaultExpirationPeriod":{"type":"integer","description":"Default policy room expiration period in seconds.\n\nAll files in a room will have their expiration date set to this period after their respective upload. \n\n0 means no default expiration policy is set.","format":"int32"},"isVirusProtectionEnabled":{"type":"boolean","description":"Determines whether virus protection is enabled for room. To be set by room admins"}},"description":"Room Polices"},"RoomGroup":{"required":["id","isGranted","name"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the group","format":"int64"},"isGranted":{"type":"boolean","description":"Is user granted room permissions"},"name":{"type":"string","description":"Group name"},"newGroupMemberAcceptance":{"type":"string","description":"Behaviour when new users are added to the group:\n\n* `autoallow`\n\n* `pending`\n\n\n\nOnly relevant if `adminGroupIds` has items.","default":"autoallow","enum":["autoallow","pending"]},"permissions":{"$ref":"#/components/schemas/NodePermissions"}},"description":"Group information"},"RoomGroupList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of room-group mappings","items":{"$ref":"#/components/schemas/RoomGroup"}}},"description":"List of groups"},"LogEvent":{"required":["id","message","time","userId"],"type":"object","properties":{"id":{"type":"integer","description":"Event ID","format":"int64"},"time":{"type":"string","description":"Event timestamp","format":"date-time"},"userId":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"message":{"type":"string","description":"Event description"},"operationId":{"type":"integer","description":"Operation type ID","format":"int32"},"operationName":{"type":"string","description":"Operation name"},"status":{"type":"integer","description":"Operation status:\n\n* `0` - Success\n\n* `2` - Error","format":"int32","enum":[0,2]},"userClient":{"type":"string","description":"Client"},"customerId":{"type":"integer","description":"Unique identifier for the customer","format":"int64"},"userName":{"type":"string","description":"Username"},"userIp":{"type":"string","description":"User IP"},"authParentSource":{"type":"string","description":"Auth parent source ID"},"authParentTarget":{"type":"string","description":"Auth parent target ID"},"objectId1":{"type":"integer","description":"Object ID 1","format":"int64"},"objectType1":{"type":"integer","description":"Object type 1","format":"int32"},"objectName1":{"type":"string","description":"Object name 1"},"objectId2":{"type":"integer","description":"Object ID 2","format":"int64"},"objectType2":{"type":"integer","description":"Object type 2","format":"int32"},"objectName2":{"type":"string","description":"Object name 2"},"attribute1":{"type":"string","description":"Attribute 1"},"attribute2":{"type":"string","description":"Attribute 2"},"attribute3":{"type":"string","description":"Attribute 3"}},"description":"Log event information"},"LogEventList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of log events","items":{"$ref":"#/components/schemas/LogEvent"}}},"description":"List of log events"},"GroupInfo":{"required":["id","name"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the group","format":"int64"},"name":{"type":"string","description":"Group name"}},"description":"Group information"},"PendingAssignmentData":{"required":["groupInfo","pendingGroupData","pendingUserData","roomId","roomName","state","userInfo"],"type":"object","properties":{"roomId":{"type":"integer","description":"Room ID","format":"int64"},"roomName":{"type":"string","description":"Room name"},"state":{"type":"string","description":"Acceptance state:\n\n* `ACCEPTED`\n\n* `WAITING`\n\n* `DENIED`","enum":["ACCEPTED","DENIED","WAITING"]},"userInfo":{"$ref":"#/components/schemas/UserInfo"},"groupInfo":{"$ref":"#/components/schemas/GroupInfo"},"pendingUserData":{"$ref":"#/components/schemas/PendingUserData"},"pendingGroupData":{"$ref":"#/components/schemas/PendingGroupData"}},"description":"Pending assignment information"},"PendingAssignmentList":{"required":["items"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of pending assignment information","items":{"$ref":"#/components/schemas/PendingAssignmentData"}}},"description":"List of pending assignments"},"PendingGroupData":{"required":["id","name"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the group\n\nuse `id` from `GroupInfo` instead","format":"int64"},"name":{"type":"string","description":"Group name\n\nuse `name` from `GroupInfo` instead"}},"description":"Pending group information","deprecated":true},"PendingUserData":{"required":["displayName","email","id","login"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"login":{"type":"string","description":"User login name"},"displayName":{"type":"string","description":"Display name\n\nuse information from `UserInfo` instead to combine a display name"},"email":{"type":"string","description":"Email \n\nuse `email` from `UserInfo` instead"}},"description":"Pending user information","deprecated":true},"FileFileKeys":{"type":"object","properties":{"id":{"type":"integer","description":"File ID","format":"int64"},"fileKeyContainer":{"$ref":"#/components/schemas/FileKeyContainer"}},"description":"File key information"},"FileKeyContainer":{"required":["iv","key","version"],"type":"object","properties":{"key":{"type":"string","description":"Encryption key"},"iv":{"type":"string","description":"Initial vector"},"version":{"type":"string","description":"Version"},"tag":{"type":"string","description":"Authentication tag\n\n(needed with authenticated encryption)"}},"description":"File key container"},"MissingKeysResponse":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of user ID and file ID mappings","items":{"$ref":"#/components/schemas/UserIdFileIdItem"}},"users":{"type":"array","description":"List of user public keys","items":{"$ref":"#/components/schemas/UserUserPublicKey"}},"files":{"type":"array","description":"List of file keys","items":{"$ref":"#/components/schemas/FileFileKeys"}}},"description":"Missing keys information"},"UserIdFileIdItem":{"type":"object","properties":{"userId":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"fileId":{"type":"integer","description":"File ID","format":"int64"}},"description":"User ID and file ID mapping"},"FileVersion":{"required":["id","name","referenceId"],"type":"object","properties":{"id":{"type":"integer","description":"Node ID","format":"int64"},"referenceId":{"type":"integer","description":"Reference ID. Identical across all versions of a file","format":"int64"},"name":{"type":"string","description":"Name"},"parentId":{"type":"integer","description":"Parent node ID (room or folder)","format":"int64"},"deleted":{"type":"boolean"}},"description":"List of File Versions"},"FileVersionList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of file versions","items":{"$ref":"#/components/schemas/FileVersion"}}},"description":"List of File Versions"},"S3FileUploadStatus":{"required":["status"],"type":"object","properties":{"status":{"type":"string","description":"S3 file upload status:\n\n* `transfer` - upload in progress\n\n* `finishing` - completing file upload\n\n* `done` - file upload successully done\n\n* `error` - an error occurred while file upload"},"node":{"$ref":"#/components/schemas/Node"},"errorDetails":{"$ref":"#/components/schemas/ErrorResponse"}},"description":"S3 file upload status information"},"GroupList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of groups","items":{"$ref":"#/components/schemas/Group"}}},"description":"List of groups"},"GroupUser":{"required":["displayName","email","id","isMember","login","userInfo"],"type":"object","properties":{"userInfo":{"$ref":"#/components/schemas/UserInfo"},"isMember":{"type":"boolean","description":"Determines whether user is a member of the group or not"},"id":{"type":"integer","description":"Unique identifier for the user\n\nuse `id` from `UserInfo` instead","format":"int64","deprecated":true},"login":{"type":"string","description":"User login name","deprecated":true},"displayName":{"type":"string","description":"Display name\n\nuse information from `UserInfo` instead to combine a display name","deprecated":true},"email":{"type":"string","description":"Email \n\nuse `email` from `UserInfo` instead","deprecated":true}},"description":"User information"},"GroupUserList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of group-user mappings","items":{"$ref":"#/components/schemas/GroupUser"}}},"description":"List of users"},"LastAdminGroupRoom":{"required":["id","name","parentPath"],"type":"object","properties":{"id":{"type":"integer","description":"Room ID","format":"int64"},"name":{"type":"string","description":"Room name"},"parentPath":{"type":"string","description":"Parent node path\n\n`/` if node is a root node (room)"},"parentId":{"type":"integer","description":"Parent room ID","format":"int64"}},"description":"Room information"},"LastAdminGroupRoomList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of last admin rooms","items":{"$ref":"#/components/schemas/LastAdminGroupRoom"}}},"description":"List of (last admin group) rooms"},"LogOperation":{"required":["id","isDeprecated","name"],"type":"object","properties":{"id":{"type":"integer","description":"Operation type ID","format":"int32"},"name":{"type":"string","description":"Operation name"},"isDeprecated":{"type":"boolean","description":"Determines whether log operation is deprecated or not"}},"description":"Log operation"},"LogOperationList":{"required":["operationList"],"type":"object","properties":{"operationList":{"type":"array","description":"List of all log operations","items":{"$ref":"#/components/schemas/LogOperation"}}},"description":"List of log operations"},"AuditNodeResponse":{"required":["auditUserPermissionList","nodeCntChildren","nodeId","nodeName","nodeParentPath"],"type":"object","properties":{"nodeId":{"type":"integer","description":"Node ID","format":"int64"},"nodeName":{"type":"string","description":"Node name"},"nodeParentPath":{"type":"string","description":"Parent node path\n\n`/` if node is a root node (room)"},"nodeCntChildren":{"type":"integer","description":"Number of direct children\n\n(no recursion; for rooms only)","format":"int32"},"auditUserPermissionList":{"type":"array","description":"List of assigned users with permissions","items":{"$ref":"#/components/schemas/AuditUserPermission"}},"nodeParentId":{"type":"integer","description":"Parent node ID (room or folder)","format":"int64"},"nodeSize":{"type":"integer","description":"Node size in byte","format":"int64"},"nodeRecycleBinRetentionPeriod":{"maximum":9999,"minimum":0,"type":"integer","description":"Retention period for deleted nodes in days","format":"int32"},"nodeQuota":{"type":"integer","description":"Quota in byte","format":"int64"},"nodeIsEncrypted":{"type":"boolean","description":"Encryption state"},"nodeHasActivitiesLog":{"type":"boolean","description":"Is activities log active (for rooms only)","default":true},"nodeCreatedAt":{"type":"string","description":"Creation date","format":"date-time"},"nodeCreatedBy":{"$ref":"#/components/schemas/UserInfo"},"nodeUpdatedAt":{"type":"string","description":"Modification date","format":"date-time"},"nodeUpdatedBy":{"$ref":"#/components/schemas/UserInfo"},"nodeHasRecycleBin":{"type":"boolean","description":"Is recycle bin active (for rooms only)\n\nRecycle bin is always on (disabling is not possible).","deprecated":true}},"description":"Audit node report"},"AuditUserPermission":{"required":["permissions","userFirstName","userId","userLastName","userLogin"],"type":"object","properties":{"userId":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"userLogin":{"type":"string","description":"User login name"},"userFirstName":{"type":"string","description":"User first name"},"userLastName":{"type":"string","description":"User last name"},"permissions":{"$ref":"#/components/schemas/NodePermissions"}},"description":"Audit user permissions report"},"AuditNodeInfo":{"required":["nodeId","nodeName","nodeParentPath"],"type":"object","properties":{"nodeId":{"type":"integer","description":"Node ID","format":"int64"},"nodeName":{"type":"string","description":"Node name"},"nodeParentPath":{"type":"string","description":"Parent node path\n\n`/` if node is a root node (room)"},"nodeParentId":{"type":"integer","description":"Parent room ID","format":"int64"},"nodeIsEncrypted":{"type":"boolean","description":"Encryption state"},"countChildren":{"type":"integer","description":"Number of direct children\n\n(no recursion; for rooms only)","format":"int64"}},"description":"Audit node info"},"AuditNodeInfoResponse":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of audit node info items","items":{"$ref":"#/components/schemas/AuditNodeInfo"}}}},"DatevSyncConfigList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of Datev sync configurations","items":{"$ref":"#/components/schemas/DatevSyncConfig"}}},"description":"List of Datev sync configurations"},"DatevMstAddableTaxYears":{"required":["years"],"type":"object","properties":{"years":{"type":"array","description":"List of addable Datev tax years","items":{"type":"string","description":"List of addable Datev tax years"}}},"description":"List of addable Datev MST tax years"},"DatevSyncFile":{"required":["datevFileId","fileId","syncConfigId","uploadStatus"],"type":"object","properties":{"syncConfigId":{"type":"integer","description":"Datev configuration ID","format":"int64"},"fileId":{"type":"integer","description":"File ID","format":"int64"},"datevFileId":{"type":"string","description":"Datev file ID"},"uploadStatus":{"type":"string","description":"Datev upload status"},"uploadStartedAt":{"type":"string","description":"Datev upload start date","format":"date-time"},"uploadCompletedAt":{"type":"string","description":"Datev upload completion date","format":"date-time"},"uploadErrorDetails":{"$ref":"#/components/schemas/ErrorResponse"}},"description":"Datev DUO sync file information"},"DatevSyncFileList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of Datev sync files","items":{"$ref":"#/components/schemas/DatevSyncFile"}}},"description":"List of Datev DUO sync files"},"Feature":{"required":["featureId","featureName","isAvailable"],"type":"object","properties":{"featureId":{"type":"integer","description":"ID","format":"int32"},"featureName":{"type":"string","description":"Name"},"isAvailable":{"type":"boolean","description":"Is Available"}},"description":"Feature"},"FeaturedOAuthClient":{"required":["isAvailable"],"type":"object","properties":{"isAvailable":{"type":"boolean","description":"Is Available"},"oauthClientName":{"type":"string"}},"description":"OAuthClientInfo"},"ProductPackageResponse":{"required":["clients","features","productPackageId","productPackageName"],"type":"object","properties":{"productPackageId":{"type":"integer","description":"ID","format":"int64"},"productPackageName":{"type":"string","description":"Name"},"features":{"type":"array","description":"Features","items":{"$ref":"#/components/schemas/Feature"}},"clients":{"type":"array","description":"OAuth Client Information","items":{"$ref":"#/components/schemas/FeaturedOAuthClient"}}},"description":"ProductPackageResponse"},"ProductPackageResponseList":{"required":["packages"],"type":"object","properties":{"packages":{"type":"array","description":"Packages","items":{"$ref":"#/components/schemas/ProductPackageResponse"}}},"description":"ProductPackageResponseList"},"AlgorithmVersionInfo":{"required":["description","status","version"],"type":"object","properties":{"version":{"type":"string","description":"Algorithm version"},"description":{"type":"string","description":"Algorithm description"},"status":{"type":"string","description":"Algorithm status\n\nDerived from preference value and threshold","enum":["REQUIRED","DISCOURAGED"]}},"description":"Algorithm information"},"AlgorithmVersionInfoList":{"required":["fileKeyAlgorithms","keyPairAlgorithms"],"type":"object","properties":{"fileKeyAlgorithms":{"type":"array","description":"List of file key algorithms","items":{"$ref":"#/components/schemas/AlgorithmVersionInfo"}},"keyPairAlgorithms":{"type":"array","description":"List of key pair algorithms","items":{"$ref":"#/components/schemas/AlgorithmVersionInfo"}}},"description":"Information of all available algorithms"},"GeneralSettingsInfo":{"required":["homeRoomsActive","subscriptionPlan"],"type":"object","properties":{"sharePasswordSmsEnabled":{"type":"boolean","description":"Allow sending of share passwords via SMS"},"cryptoEnabled":{"type":"boolean","description":"Activation status of client-side encryption.\n\nCan only be enabled once; disabling is not possible."},"emailNotificationButtonEnabled":{"type":"boolean","description":"Enable email notification button"},"eulaEnabled":{"type":"boolean","description":"Each user has to confirm the EULA at first login."},"useS3Storage":{"type":"boolean","description":"Defines if S3 is used as storage backend"},"s3TagsEnabled":{"type":"boolean","description":"Defines if S3 tags are enabled"},"hideLoginInputFields":{"type":"boolean","description":"Defines if login fields should be hidden","deprecated":true},"authTokenRestrictions":{"$ref":"#/components/schemas/AuthTokenRestrictions"},"mediaServerEnabled":{"type":"boolean","description":"Determines if the media server is enabled","deprecated":true},"weakPasswordEnabled":{"type":"boolean","description":"Allow weak password\n\n* A weak password has to fulfill the following criteria:\n\n   * is at least 8 characters long\n\n   * contains letters and numbers\n\n* A strong password has to fulfill the following criteria in addition:\n\n   * contains at least one special character\n\n   * contains upper and lower case characters\n\nPlease use `GET /system/config/policies/passwords` API to get configured password policies.","deprecated":true},"homeRoomsActive":{"type":"boolean","description":"Homerooms active","readOnly":true},"homeRoomParentId":{"type":"integer","description":"Homeroom Parent ID","format":"int64","readOnly":true},"subscriptionPlan":{"type":"integer","description":"Subscription Plan","format":"int32","readOnly":true}},"description":"General settings"},"ResetPasswordTokenValidateResponse":{"required":["firstName","lastName"],"type":"object","properties":{"firstName":{"type":"string","description":"User first name"},"lastName":{"type":"string","description":"User last name"},"loginPasswordPolicies":{"$ref":"#/components/schemas/LoginPasswordPolicies"},"title":{"type":"string","description":"Job title","deprecated":true},"gender":{"type":"string","description":"Gender","deprecated":true,"default":"n"},"allowSystemGlobalWeakPassword":{"type":"boolean","description":"Allow weak password\n\nPlease use `loginPasswordPolicies` instead","deprecated":true}},"description":"Password reset information"},"DeleteUploadSharesRequest":{"required":["shareIds"],"type":"object","properties":{"shareIds":{"type":"array","description":"List of share IDs","items":{"type":"integer","description":"List of share IDs","format":"int64"}}},"description":"Request model for deleting Upload Shares"},"DeleteDownloadSharesRequest":{"required":["shareIds"],"type":"object","properties":{"shareIds":{"type":"array","description":"List of share IDs","items":{"type":"integer","description":"List of share IDs","format":"int64"}}},"description":"Request model for deleting Download Shares"},"DeleteNodesRequest":{"required":["nodeIds"],"type":"object","properties":{"nodeIds":{"type":"array","description":"List of node IDs","items":{"type":"integer","description":"List of node IDs","format":"int64"}}},"description":"Request model for deleting nodes"},"RoomUsersDeleteBatchRequest":{"required":["ids"],"type":"object","properties":{"ids":{"type":"array","description":"List of user IDs","items":{"type":"integer","description":"List of user IDs","format":"int64"}}},"description":"Request model for revoking user(s) from the room"},"RoomGroupsDeleteBatchRequest":{"required":["ids"],"type":"object","properties":{"ids":{"type":"array","description":"List of group IDs","items":{"type":"integer","description":"List of group IDs","format":"int64"}}},"description":"Request model for revoking group(s) from the room"},"DeleteDeletedNodesRequest":{"required":["deletedNodeIds"],"type":"object","properties":{"deletedNodeIds":{"type":"array","description":"List of deleted node IDs","items":{"type":"integer","description":"List of deleted node IDs","format":"int64"}}},"description":"Request model for deleting nodes from recycle bin"}},"securitySchemes":{"oauth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"/oauth/authorize","tokenUrl":"/oauth/token","scopes":{"all":"every operation is allowed"}}}}}}}