internal/autorest/Dracoon-SRV-spec_v4.json

{"openapi":"3.0.1","info":{"title":"DRACOON API","description":"REST Web Services for DRACOON<br>built at: 1970-01-01 00:00:00.000<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":"4.26.7"},"servers":[{"url":"/api"}],"security":[{"oauth2":[]}],"tags":[{"name":"system-policies-config","description":"System settings (policies)"},{"name":"downloads","description":"File download without authentication headers"},{"name":"public","description":"Public API (upload / download shares, software information)"},{"name":"nodes","description":"File system objects (rooms, folders, files)"},{"name":"system-auth-config","description":"System settings (authentication methods)"},{"name":"eventlog","description":"System events log"},{"name":"auth","description":"Authentication"},{"name":"system-settings-config","description":"System settings (mail server, logging, branding, default values etc.)"},{"name":"system-storage-config","description":"System settings (storage)"},{"name":"resources","description":"Client resources"},{"name":"settings","description":"Customer settings"},{"name":"shares","description":"Upload and Download Shares"},{"name":"syslog","description":"System events log"},{"name":"uploads","description":"File upload without authentication headers"},{"name":"config","description":"Configuration"},{"name":"provisioning","description":"Provisioning"},{"name":"groups","description":"User groups"},{"name":"users","description":"User management"},{"name":"roles","description":"Role user management"},{"name":"user","description":"User operations"}],"paths":{"/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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string"}}}},"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/logout":{"post":{"tags":["user"],"summary":"Invalidate authentication token","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.12.0</h3>\n\n### Description: \nLog out a user.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\n* User is logged out \n* Authentication token gets invalidated.\n\n### Further Information:\nNone.","operationId":"logout","parameters":[{"name":"everywhere","in":"query","description":"Invalidate all tokens","required":false,"schema":{"type":"boolean"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"/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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerData"}}}}}},"put":{"tags":["user"],"summary":"Activate client-side encryption for customer","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.24.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableCustomerEncryptionRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerData"}}}}},"deprecated":true}},"/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 has been removed. 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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccount"}}}}}},"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* **All** characters are allowed. \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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserAccountRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-70562":{"summary":"User with provided RADIUS login already exists","description":"\n* [-70562] User with provided RADIUS login already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided RADIUS login already exists","errorCode":-70562}},"-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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccount"}}}}}}},"/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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeUserPasswordRequest"}}},"required":true},"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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}}}},"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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"required":true},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}},"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, 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"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}}}}}}}}},"/v4/user/account/keypairs":{"get":{"tags":["user"],"summary":"Request all user key pairs","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}}}}},"post":{"tags":["user"],"summary":"Create key pair and preserve copy of old private key","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyPairRequest"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/keypair":{"get":{"tags":["user"],"summary":"Request customer's key pair","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.24.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}}},"deprecated":true}},"/v4/user/oauth/approvals":{"get":{"tags":["user"],"summary":"Request list of OAuth client approvals","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.22.0</h3>\n\n### 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 fields are **NOT** supported. \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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"sort","in":"query","description":"Sort string","required":false,"schema":{"type":"string"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OAuthApproval"}}}}}}}},"/v4/user/oauth/approvals/{client_id}":{"delete":{"tags":["user"],"summary":"Remove OAuth client approval","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.22.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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 fields are **NOT** supported. \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":{"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":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OAuthAuthorization"}}}}}}}},"/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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/oauth/authorizations/{client_id}/{authorization_id}":{"delete":{"tags":["user"],"summary":"Remove a OAuth authorization","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.12.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/profileAttributes":{"get":{"tags":["user"],"summary":"Request user profile attributes","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.7.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributesResponse"}}}}}},"put":{"tags":["user"],"summary":"Add or edit user profile attributes","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.7.0</h3>\n\n### 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**","operationId":"updateProfileAttributes","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributesRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributes"}}}}}},"post":{"tags":["user"],"summary":"Set user profile attributes","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.12.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributesRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributes"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"/v4/user/profileAttributes/{key}":{"delete":{"tags":["user"],"summary":"Remove user profile attribute","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.7.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}}},"/v4/user/account/avatar":{"get":{"tags":["user"],"summary":"Request avatar","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.11.0</h3>\n\n### Description:\nGet the avatar.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nAvatar is returned.\n\n### Further Information:\nNone.","operationId":"requestAvatar","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}}}}},"post":{"tags":["user"],"summary":"Change avatar","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.11.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"description":"File","content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"delete":{"tags":["user"],"summary":"Reset avatar","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.11.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}}}}}},"/v4/user/notifications/config":{"get":{"tags":["user"],"summary":"Request list of notification configurations","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationConfigList"}}}}}}},"/v4/user/notifications/config/{id}":{"put":{"tags":["user"],"summary":"Update notification configuration","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationConfigChangeRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationConfig"}}}}}}},"/v4/user/subscriptions/download_shares":{"get":{"tags":["user"],"summary":"List Download Share subscriptions","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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 fields are **NOT** supported. \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`downloadShareId:desc` \nSort by `downloadShareId` 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| **`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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}},"put":{"tags":["user"],"summary":"Subscribe or Unsubscribe a List of Download Shares for notifications","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.25.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionsBulkRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}}}}},"/v4/user/subscriptions/download_shares/{share_id}":{"post":{"tags":["user"],"summary":"Subscribe Download Share for notifications","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedDownloadShare"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"delete":{"tags":["user"],"summary":"Unsubscribe Download Share from notifications","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/subscriptions/nodes":{"get":{"tags":["user"],"summary":"List node subscriptions","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER` \n`ORDER` can be `asc` or `desc`. \nMultiple sort fields are **NOT** supported. \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`nodeId:desc` \nSort by `nodeId` 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| **`nodeId`** | Node ID |\n| **`authParentId`** | Auth parent ID |\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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedNodeList"}}}}}},"put":{"tags":["user"],"summary":"Subscribe or Unsubscribe a List of nodes for notifications","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.25.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionsBulkRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}},"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}}}}}}}}},"/v4/user/subscriptions/nodes/{node_id}":{"post":{"tags":["user"],"summary":"Subscribe node for notifications","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedNode"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"delete":{"tags":["user"],"summary":"Unsubscribe node from notifications","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}}}}},"/v4/user/subscriptions/upload_shares":{"get":{"tags":["user"],"summary":"List Upload Share subscriptions","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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 fields are **NOT** supported. \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`uploadShareId:desc` \nSort by `uploadShareId` 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| **`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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}},"put":{"tags":["user"],"summary":"Subscribe or Unsubscribe a List of Upload Shares for notifications","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.25.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionsBulkRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}}}}},"/v4/user/subscriptions/upload_shares/{share_id}":{"post":{"tags":["user"],"summary":"Subscribe Upload Share for notifications","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedUploadShare"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"delete":{"tags":["user"],"summary":"Unsubscribe Upload Share from notifications","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/roles/{role_id}/users":{"get":{"tags":["roles"],"summary":"Request users with specific role","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":"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleUserList"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"description":"User IDs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIds"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleUserList"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"description":"User IDs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIds"}}},"required":true},"responses":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}}},"/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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleGroupList"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"description":"Group IDs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupIds"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleGroupList"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"description":"Group IDs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupIds"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}}},"/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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleList"}}}}}}},"/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| `radius` | `username` | RADIUS username |\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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}}}}},"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* **All** characters are allowed.\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| `radius` | `username` | RADIUS username |\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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequest"}}},"required":true},"responses":{"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}},"-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}},"-90059":{"summary":"No valid OpenID Connect IDP configuration found","description":"\n* [-90059] No valid OpenID Connect IDP configuration found","value":{"code":404,"message":"Not Found","debugInfo":"No valid OpenID Connect IDP configuration found","errorCode":-90059}},"-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}}}}}},"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}},"-70562":{"summary":"User with provided RADIUS login already exists","description":"\n* [-70562] User with provided RADIUS login already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided RADIUS login already exists","errorCode":-70562}},"-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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}},"-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}}}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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` | 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></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":{"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":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}},"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 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| `radius` | `username` | RADIUS username |\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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserRequest"}}},"required":true},"responses":{"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}},"-90059":{"summary":"No valid OpenID Connect IDP configuration found","description":"\n* [-90059] No valid OpenID Connect IDP configuration found","value":{"code":404,"message":"Not Found","debugInfo":"No valid OpenID Connect IDP configuration found","errorCode":-90059}},"-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}}}}}},"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}},"-70562":{"summary":"User with provided RADIUS login already exists","description":"\n* [-70562] User with provided RADIUS login already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided RADIUS login already exists","errorCode":-70562}},"-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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"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}},"-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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/users/{user_id}/rooms":{"get":{"tags":["users"],"summary":"Request rooms granted to the user or / and rooms that can be granted","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.10.0</h3>\n\n### 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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomTreeDataList"}}}}},"deprecated":true}},"/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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupList"}}}}}}},"/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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleList"}}}}}}},"/v4/users/{user_id}/userAttributes":{"get":{"tags":["users"],"summary":"Request custom user attributes","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.12.0</h3>\n\n### Description: \nRetrieve a list of user 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 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributesResponse"}}}}}},"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**.","operationId":"updateUserAttributes","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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAttributes"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}}}}},"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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"user_id","in":"path","description":"User ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAttributes"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"200":{"description":"No Content"},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}}},"/v4/users/{user_id}/last_admin_rooms":{"get":{"tags":["users"],"summary":"Request rooms where the user is last admin","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.10.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LastAdminUserRoomList"}}}}}}},"/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":{"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-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}},"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* **All** characters are allowed.","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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}}}}}},"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}}}}}}}}},"/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}}}},"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* **All** characters are allowed.","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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroupRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}}}}},"/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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleList"}}}}}}},"/v4/groups/{group_id}/rooms":{"get":{"tags":["groups"],"summary":"Request rooms granted to the group or / and rooms that can be granted","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.10.0</h3>\n\n### 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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomTreeDataList"}}}}},"deprecated":true}},"/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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupUserList"}}}}}},"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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeGroupMembersRequest"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}}}},"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.","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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"group_id","in":"path","description":"Group ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeGroupMembersRequest"}}},"required":true},"responses":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}}},"/v4/groups/{group_id}/last_admin_rooms":{"get":{"tags":["groups"],"summary":"Request rooms where the group is defined as last admin group","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.10.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LastAdminGroupRoomList"}}}}}}},"/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFolderRequest"}}},"required":true},"responses":{"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"folder_id","in":"path","description":"Folder ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFolderRequest"}}},"required":true},"responses":{"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}}}}},"/v4/provisioning/check_license":{"get":{"tags":["provisioning"],"summary":"Check license","description":"### Description: \nCheck license for the current tenant.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required. \n\n### Postcondition:\nUpdated license information is returned.\n\n### Further Information:\nAvailable license statuses:\n* `valid` - license is valid\n* `exceeding` - license is about to be exceeded soon (due to number of provisioned customers, users, or storage)\n* `expiring` - license is about to expire soon\n* `expired` - license is expired\n* `exceeded` - license is exceeded (due to number of provisioned customers, users, or storage)\n* `invalid` - license is invalid (e.g. invalid license signature)\n","operationId":"checkLicense","parameters":[{"name":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseInfo"}}}}},"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` | 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></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":{"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":"X-Sds-Service-Token","in":"header","description":"Service Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserList"}}}}},"security":[]}},"/v4/provisioning/customers/{customer_id}/customerAttributes":{"get":{"tags":["provisioning"],"summary":"Request customer attributes","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.4.0</h3>\n\n### 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":{"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}}}}}},"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}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributesResponse"}}}}},"security":[]},"put":{"tags":["provisioning"],"summary":"Add or edit customer attributes","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.4.0</h3>\n\n### 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**.","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":{"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":{"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}}},"security":[]},"post":{"tags":["provisioning"],"summary":"Set customer attributes","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.4.0</h3>\n\n### 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":{"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":{"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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/{key}":{"delete":{"tags":["provisioning"],"summary":"Remove customer attribute","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.4.0</h3>\n\n### 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":{"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}}}}}},"204":{"description":"No Content"},"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}}}}}},"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}}}}}}},"security":[]}},"/v4/provisioning/webhooks":{"get":{"tags":["provisioning"],"summary":"Request list of tenant webhooks","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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 fields are **NOT** supported. \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| **`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":{"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":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookList"}}}}},"security":[]},"post":{"tags":["provisioning"],"summary":"Create tenant webhook","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"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":{"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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}":{"get":{"tags":["provisioning"],"summary":"Request tenant webhook","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"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":{"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}}},"security":[]},"put":{"tags":["provisioning"],"summary":"Update tenant webhook","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"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":{"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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}}},"security":[]},"delete":{"tags":["provisioning"],"summary":"Remove tenant webhook","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"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}}}}}},"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}}}}}},"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}}}}}}},"security":[]}},"/v4/provisioning/webhooks/{webhook_id}/reset_lifetime":{"post":{"tags":["provisioning"],"summary":"Reset tenant webhook lifetime","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"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":{"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}}},"security":[]}},"/v4/provisioning/webhooks/event_types":{"get":{"tags":["provisioning"],"summary":"Request list of event types","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeList"}}}}},"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`, `radius`. | `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 fields are **NOT** supported. \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`companyName:desc` \nSort by `companyName` 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| `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":{"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":{"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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerList"}}}}},"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 following 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\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| `radius` | `username` | RADIUS username |\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":{"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":{"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}}}}}},"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}},"-90059":{"summary":"No valid OpenID Connect IDP configuration found","description":"\n* [-90059] No valid OpenID Connect IDP configuration found","value":{"code":404,"message":"Not Found","debugInfo":"No valid OpenID Connect IDP configuration found","errorCode":-90059}},"-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}}}}}},"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}},"-70562":{"summary":"User with provided RADIUS login already exists","description":"\n* [-70562] User with provided RADIUS login already exists","value":{"code":409,"message":"Conflict","debugInfo":"User with provided RADIUS login already exists","errorCode":-70562}},"-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}}}}}},"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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewCustomerResponse"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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":{"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":{"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}}},"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":{"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":{"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}}}}}},"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}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerResponse"}}}}},"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":{"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}}}}}},"204":{"description":"No Content"},"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/config/settings":{"get":{"tags":["config"],"summary":"Request system settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.6.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigOptionList"}}}}},"deprecated":true},"put":{"tags":["config"],"summary":"Update system settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.6.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigOptionList"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}}},"deprecated":true}},"/v4/config/info/defaults":{"get":{"tags":["config"],"summary":"Request default values","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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| `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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemDefaults"}}}}}}},"/v4/config/info/general":{"get":{"tags":["config"],"summary":"Request general settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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\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\n</details>","operationId":"requestGeneralSettingsInfo","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralSettingsInfo"}}}}}}},"/v4/config/info/infrastructure":{"get":{"tags":["config"],"summary":"Request infrastructure properties","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfrastructureProperties"}}}}}}},"/v4/config/info/license":{"get":{"tags":["config"],"summary":"Request license information","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.25.0</h3>\n\n### Description: \nReturns license information for this instance.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nLicense information is returned.\n\n### Further Information:\nAvailable license statuses:\n* `valid` - license is valid\n* `exceeding` - license is about to be exceeded soon (due to number of provisioned customers, users, or storage)\n* `expiring` - license is about to expire soon\n* `expired` - license is expired\n* `exceeded` - license is exceeded (due to number of provisioned customers, users, or storage)\n* `invalid` - license is invalid (e.g. invalid license signature)\n","operationId":"requestLicenseInfo","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseInfo"}}}}}}},"/v4/config/info/s3_tags":{"get":{"tags":["config"],"summary":"Request list of configured S3 tags","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.9.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-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/policies/passwords":{"get":{"tags":["config"],"summary":"Request password policies","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.14.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPoliciesConfig"}}}}}}},"/v4/config/info/policies/algorithms":{"get":{"tags":["config"],"summary":"Request algorithms","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlgorithmVersionInfoList"}}}}}}},"/v4/config/info/notifications/channels":{"get":{"tags":["config"],"summary":"Request list of notification channels","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelList"}}}}}}},"/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":"token","in":"path","description":"Upload token","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The body must be empty if public upload token is used.\n\nThe `resolutionStrategy` in that case will be always `autorename`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteUploadRequest"}}},"required":true},"responses":{"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* [-40000] 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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] 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}}}}}},"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"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}}}}}},"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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}}},"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":"uploadFileByTokenAsBinary_1","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":{"description":"File","content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$ref":"#/components/schemas/ErrorResponse"}]},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] 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":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$ref":"#/components/schemas/ErrorResponse"}]},"examples":{"null":{"summary":"Content type not acceptable","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":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$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* [-40000] 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}}}}}}},"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"},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] 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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}},"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* [-40000] 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}}}}}}},"security":[]}},"/v4/syslog/events":{"get":{"tags":["syslog"],"summary":"Request system events","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.3.0</h3>\n\n### 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":"requestSyslogEvents","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":{"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":{"enum":["0","2"]}},{"name":"user_client","in":"query","description":"User client","required":false,"schema":{"type":"string"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"406":{"description":"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyslogEventList"}}}}},"deprecated":true}},"/v4/syslog/operations":{"get":{"tags":["syslog"],"summary":"Request allowed log operations","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.3.0</h3>\n\n### 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":"requestLogOperationsSyslog","parameters":[{"name":"is_deprecated","in":"query","description":"Show only deprecated operations","required":false,"schema":{"type":"boolean"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogOperationList"}}}}},"deprecated":true}},"/v4/syslog/audits/nodes":{"get":{"tags":["syslog"],"summary":"Request nodes assigned users with permissions","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.3.0</h3>\n\n### 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\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":"requestAuditNodeUserDataSyslog","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":{"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-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AuditNodeResponse"}}}}}},"deprecated":true}},"/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}}}}},"put":{"tags":["shares"],"summary":"Update Download Share","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.11.0</h3>\n\n### 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: [`&`, `'`, `<`, `>`]","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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDownloadShareRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}}}}}},"/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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}},"put":{"tags":["shares"],"summary":"Update List of Upload Shares","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.25.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUploadSharesBulkRequest"}}},"required":true},"responses":{"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* [-40000] 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"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}}}}}},"200":{"description":"OK"}}},"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\nUse `POST /shares/uploads/{share_id}/email` API for sending emails.\n","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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUploadShareRequest"}}},"required":true},"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"delete":{"tags":["shares"],"summary":"Remove Upload Shares","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.21.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUploadSharesRequest"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}}}}},"put":{"tags":["shares"],"summary":"Update Upload Share","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.11.0</h3>\n\n### 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: [`&`, `'`, `<`, `>`]","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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUploadShareRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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* [-40000] 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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}}}}}},"/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### 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\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>`classification`</del> | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |\n\n</details>","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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}},"put":{"tags":["shares"],"summary":"Update a list of Download Shares","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.25.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDownloadSharesBulkRequest"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"200":{"description":"No Content"},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"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}}}}}}}},"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: [`&`, `'`, `<`, `>`]","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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDownloadShareRequest"}}},"required":true},"responses":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"delete":{"tags":["shares"],"summary":"Remove Download Shares","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.21.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDownloadSharesRequest"}}},"required":true},"responses":{"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}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/shares/uploads/{share_id}/email":{"post":{"tags":["shares"],"summary":"Send an existing Upload Share link via email","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.11.0</h3>\n\n### 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:\nNone.","operationId":"sendUploadShareLinkViaEmail","parameters":[{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShareLinkEmail"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/shares/downloads/{share_id}/email":{"post":{"tags":["shares"],"summary":"Send an existing Download Share link via email","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.11.0</h3>\n\n### 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:\nNone.","operationId":"sendDownloadShareLinkViaEmail","parameters":[{"name":"share_id","in":"path","description":"Share ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShareLinkEmail"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/settings/webhooks":{"get":{"tags":["settings"],"summary":"Request list of webhooks","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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 fields are **NOT** supported. \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| **`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":{"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-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookList"}}}}}},"post":{"tags":["settings"],"summary":"Create webhook","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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 gets a personal homeroom.<br>Once activated, this **CANNOT** be deactivated. | `true or false` |\n\n\n</details>","operationId":"requestSettings","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerSettingsResponse"}}}}}},"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 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerSettingsRequest"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerSettingsResponse"}}}}}}},"/v4/settings/webhooks/{webhook_id}":{"get":{"tags":["settings"],"summary":"Request webhook","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}}}},"put":{"tags":["settings"],"summary":"Update webhook","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequest"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}}}},"delete":{"tags":["settings"],"summary":"Remove webhook","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/settings/webhooks/event_types":{"get":{"tags":["settings"],"summary":"Request list of event types","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeList"}}}}}}},"/v4/settings/keypair":{"get":{"tags":["settings"],"summary":"Request system rescue key pair","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### Description: \nRetrieve the system rescue key pair.\n\n### Precondition:\n* Authenticated user\n* Existence of own key pair\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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"version","in":"query","description":"Version (NEW)","required":false,"schema":{"type":"string"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}}}},"post":{"tags":["settings"],"summary":"Activate client-side encryption for customer","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### Description: \nSet the system rescue key pair and activate client-side encryption for according customer.\n\n### Precondition:\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:\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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"required":true},"responses":{"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}}}}}},"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}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"delete":{"tags":["settings"],"summary":"Remove system rescue key pair","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### Description: \nRemove the system rescue key pair.\n\n### Precondition:\n* Authenticated user\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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"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}}}}}}}}},"/v4/settings/webhooks/{webhook_id}/reset_lifetime":{"post":{"tags":["settings"],"summary":"Reset webhook lifetime","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"webhook_id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}}}}},"/v4/settings/notifications/channels":{"get":{"tags":["settings"],"summary":"Request list of notification channels","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelList"}}}}}},"put":{"tags":["settings"],"summary":"Toggle notification channels","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelActivationRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelList"}}}}}}},"/v4/settings/keypairs":{"get":{"tags":["settings"],"summary":"Request all system rescue key pairs","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### Description: \nRetrieve all system rescue key pairs to allow migrating system-rescue-key-encrypted file keys.\n\n### Precondition:\n* Authenticated user\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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}}}}},"post":{"tags":["settings"],"summary":"Create system rescue key pair and preserve copy of old private key","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### Description: \nCreate system rescue key pair and preserve copy of old private key.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change 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:\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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyPairRequest"}}},"required":true},"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}},"-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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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":{"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}}}},"security":[]}},"/v4/resources/user/notifications/scopes":{"get":{"tags":["resources"],"summary":"Request list of subscription scopes","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.20.0</h3>\n\n### 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":{"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationScopeList"}}}}},"security":[]}},"/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}}},"/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` | 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\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER` \n`ORDER` can be `asc` or `desc`. \nMultiple sort fields are **NOT** supported. \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` | 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>`cntAdmins`</del> | Number of admins (for rooms only) |\n| <del>`cntUsers`</del> | Number of users (for rooms only) |\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":{"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":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeList"}}}}}}},"/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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZipDownloadRequest"}}},"required":true},"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"200":{"description":"OK"}}}},"/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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZipDownloadRequest"}}},"required":true},"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadTokenGenerateResponse"}}}}}}},"/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Target parent node ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveNodesRequest"}}},"required":true},"responses":{"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":"{\n \"code\": 400,\n \"message\": \"Bad Request\",\n \"debugInfo\": \"Bad node name\",\n \"errorCode\": -40755,\n \"errorInfos\": {\n \"conflictNodes\": [\n {\n \"nodeId\": #,\n \"name\": \"...\",\n \"errorCode\": -40755,\n \"errorMessage\": \"Bad node name\"\n }\n ]\n }\n}"},"-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}},"-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* [-40000] 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"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":"{\n \"code\": 409,\n \"message\": \"Conflict\",\n \"debugInfo\": \"Node exists already\",\n \"errorCode\": -41001,\n \"errorInfos\": {\n \"conflictNodes\": [\n {\n \"nodeId\": #,\n \"name\": \"...\",\n \"errorCode\": -41001,\n \"errorMessage\": \"Node exists already\"\n }\n ]\n }\n}"},"-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}}}}}},"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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}}}}},"/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\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER` \n`ORDER` can be `asc` or `desc`. \nMultiple sort fields are **NOT** supported. \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` \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` | 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>`cntAdmins`</del> | Number of admins (for rooms only) |\n| <del>`cntUsers`</del> | Number of users (for rooms only) |\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":{"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_.\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":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeList"}}}}}},"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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteNodesRequest"}}},"required":true},"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}}},"/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/nodes/favorites":{"put":{"tags":["nodes"],"summary":"Mark or unmark a list of nodes (room, folder or file) as favorite","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.25.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFavoritesBulkRequest"}}},"required":true},"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"204":{"description":"No Content"},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}}}}},"/v4/nodes/{node_id}/comments":{"get":{"tags":["nodes"],"summary":"Request list of node comments","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.10.0</h3>\n\n### 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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentList"}}}}}},"post":{"tags":["nodes"],"summary":"Create node comment","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.10.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Node ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNodeCommentRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/nodes/comments/{comment_id}":{"put":{"tags":["nodes"],"summary":"Edit node comment","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.10.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"comment_id","in":"path","description":"Comment ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeNodeCommentRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}},"delete":{"tags":["nodes"],"summary":"Remove node comment","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.10.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/nodes/{node_id}/parents":{"get":{"tags":["nodes"],"summary":"Request list of parent nodes","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.10.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeParentList"}}}}}}},"/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":{"enum":["room_rescue_key","system_rescue_key","previous_user_key","previous_room_rescue_key","previous_system_rescue_key"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissingKeysResponse"}}}},"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* [-40000] 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}}}}}}}}},"/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"deleted_node_id","in":"path","description":"Deleted node ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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* [-40000] 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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedNode"}}}}}}},"/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 fields are **NOT** supported. \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` \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` | 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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedNodeSummaryList"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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 (only room IDs are accepted as parent ID since only rooms may have a recycle bin.)\n* name\n* type (file, folder).\n\nSort string syntax: `FIELD_NAME:ORDER` \n`ORDER` can be `asc` or `desc`. \nMultiple sort fields are **NOT** supported. \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`expireAt:desc` \nSort 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| `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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedNodeVersionsList"}}}}}}},"/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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreDeletedNodesRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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* [-40000] 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}}}}}}}}},"/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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeletedNodesRequest"}}},"required":true},"responses":{"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* [-40000] 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}}}}}},"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}}}}}},"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}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"node_id","in":"path","description":"Target parent node ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CopyNodesRequest"}}},"required":true},"responses":{"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":"{\n \"code\": 400,\n \"message\": \"Bad Request\",\n \"debugInfo\": \"Bad node name\",\n \"errorCode\": -40755,\n \"errorInfos\": {\n \"conflictNodes\": [\n {\n \"nodeId\": #,\n \"name\": \"...\",\n \"errorCode\": -40755,\n \"errorMessage\": \"Bad node name\"\n }\n ]\n }\n}"},"-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}},"-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* [-40000] 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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":"{\n \"code\": 409,\n \"message\": \"Conflict\",\n \"debugInfo\": \"Node exists already\",\n \"errorCode\": -41001,\n \"errorInfos\": {\n \"conflictNodes\": [\n {\n \"nodeId\": #,\n \"name\": \"...\",\n \"errorCode\": -41001,\n \"errorMessage\": \"Node exists already\"\n }\n ]\n }\n}"},"-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}}}}}},"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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}}}}},"/v4/system/config/storage/s3/tags":{"get":{"tags":["system-storage-config"],"summary":"Request list of configured S3 tags","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.9.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-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":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.9.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagCreateRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-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/storage/s3":{"get":{"tags":["system-storage-config"],"summary":"Request S3 storage configuration","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.3.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Config"}}}},"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}}}}}}}},"put":{"tags":["system-storage-config"],"summary":"Update S3 storage configuration","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.3.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3ConfigUpdateRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Config"}}}},"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}}}}}},"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}}}}}}}},"post":{"tags":["system-storage-config"],"summary":"Create S3 storage configuration","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.3.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3ConfigCreateRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Config"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/system/config/storage/s3/tags/{id}":{"get":{"tags":["system-storage-config"],"summary":"Request S3 tag","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.9.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Tag"}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-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":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.9.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-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/syslog":{"get":{"tags":["system-settings-config"],"summary":"Request syslog settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyslogConfig"}}}}}},"put":{"tags":["system-settings-config"],"summary":"Update syslog settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSyslogConfig"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyslogConfig"}}}}}}},"/v4/system/config/settings/eventlog":{"get":{"tags":["system-settings-config"],"summary":"Request eventlog settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventlogConfig"}}}}}},"put":{"tags":["system-settings-config"],"summary":"Update eventlog settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEventlogConfig"}}},"required":true},"responses":{"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}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventlogConfig"}}}}}}},"/v4/system/config/settings/defaults":{"get":{"tags":["system-settings-config"],"summary":"Request system defaults","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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| `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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemDefaults"}}}}}},"put":{"tags":["system-settings-config"],"summary":"Update system defaults","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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| `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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSystemDefaults"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}},"-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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemDefaults"}}}}}}},"/v4/system/config/settings/general":{"get":{"tags":["system-settings-config"],"summary":"Request general settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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| `hideLoginInputFields` | Determines whether input fields for login should be 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\n</details>","operationId":"requestGeneralSettings","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralSettings"}}}}}},"put":{"tags":["system-settings-config"],"summary":"Update general settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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| `hideLoginInputFields` | Determines whether input fields for login should be 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\n</details>","operationId":"updateGeneralSettings","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGeneralSettings"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralSettings"}}}},"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}}}}}}}}},"/v4/system/config/settings/auth":{"get":{"tags":["system-settings-config"],"summary":"Request authentication settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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| `radius` | **RADIUS** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their RADIUS username, their PIN and a token password. |\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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfig"}}}}}},"put":{"tags":["system-settings-config"],"summary":"Update authentication settings","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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 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| `radius` | **RADIUS** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their RADIUS username, their PIN and a token password. |\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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfig"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to perform this operation","errorCode":-10006}},"-10012":{"summary":"Wrong token","description":"\n* [-10012] Wrong token","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong token","errorCode":-10012}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfig"}}}}}}},"/v4/system/config/settings/infrastructure":{"get":{"tags":["system-settings-config"],"summary":"Request infrastructure properties","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.6.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfrastructureProperties"}}}}}}},"/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":{"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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordTokenValidateResponse"}}}}},"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":{"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}}}}}},"204":{"description":"No Content"},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/ping":{"get":{"tags":["auth"],"summary":"Ping","description":"### Description:\nTest connection to DRACOON Core Service.\n\n### Precondition:\nNone.\n\n### Postcondition:\n`200 OK` with current date string is returned if successful.\n\n### Further Information:\nNone.","operationId":"ping","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string"},"examples":{"0":{"summary":"Ping response","description":"Example ping response","value":"OK Tue Apr 04 13:37:00 UTC 2020"}}}}},"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}}}}}}},"security":[]}},"/v4/auth/login":{"post":{"tags":["auth"],"summary":"Authenticate user (Login)","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.13.0</h3>\n\n### Description:\nAuthenticates user and provides an authentication token (`X-Sds-Auth-Token`) that is required for the most operations.\n\n### Precondition:\nExisting user that is **NOT** locked.\n\n### Postcondition:\nUser is logged in.\n\n### Further Information:\nThe provided token is valid for **two hours**, every usage resets this period to two full hours again. \nLogging off invalidates the token. \n\n### Available authentication methods:\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 (`authType`) | Description |\n| :--- | :--- |\n| `basic` | Log in with credentials stored in the database <br>Formerly known as `sql`.|\n| `active_directory` | Log in with Active Directory credentials |\n| `radius` | Log in with RADIUS username, PIN and token password.<br>Token (request parameter) may be set, otherwise this parameter is ignored. If token is set, password is optional. |\n| `openid` | Please use `POST /auth/openid/login` API to login with OpenID Connect identity |\n\n</details>","externalDocs":{"description":"Remote Authentication Dial In User Service (RADIUS)","url":"https://tools.ietf.org/html/rfc2865"},"operationId":"login","requestBody":{"description":"User credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusChallengeResponse"},"examples":{"-10108":{"summary":"RADIUS requests Access-Challenge workflow","description":"\n* [-10108] RADIUS requests Access-Challenge workflow\n\nPlease notice the `replyState` and `replyMessage`","value":"{\n \"code\": 412,\n \"message\": \"Precondition Failed\",\n \"debugInfo\": \"RADIUS requests Access-Challenge workflow\",\n \"errorCode\": -10108\",\n \"replyState\": \"...\",\n \"replyMessage\": \"...\"\n}"}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-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}},"-90070":{"summary":"RADIUS connection failed","description":"\n* [-90070] RADIUS connection failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"RADIUS connection failed","errorCode":-90070}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10003":{"summary":"User is locked by an administrator","description":"\n* [-10003] User is locked by an administrator","value":{"code":403,"message":"Forbidden","debugInfo":"User is locked by an administrator","errorCode":-10003}},"-10004":{"summary":"User has expired","description":"\n* [-10004] User has expired","value":{"code":403,"message":"Forbidden","debugInfo":"User has expired","errorCode":-10004}},"-10005":{"summary":"User is temporarily locked","description":"\n* [-10005] User is temporarily locked","value":{"code":403,"message":"Forbidden","debugInfo":"User is temporarily locked","errorCode":-10005}},"-10007":{"summary":"Customer is locked","description":"\n* [-10007] Customer is locked","value":{"code":403,"message":"Forbidden","debugInfo":"Customer is locked","errorCode":-10007}},"-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":{"-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}}}}}},"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}},"-80013":{"summary":"Invalid JSON object","description":"\n* [-80013] Invalid JSON object","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid JSON object","errorCode":-80013}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10011":{"summary":"Wrong username or password","description":"\n* [-10011] Wrong username or password","value":{"code":401,"message":"Unauthorized","debugInfo":"Wrong username or password","errorCode":-10011}},"-90060":{"summary":"User import not allowed","description":"\n* [-90060] User import not allowed","value":{"code":401,"message":"Unauthorized","debugInfo":"User import not allowed","errorCode":-90060}},"-90061":{"summary":"Invalid Active Directory entry","description":"\n* [-90061] Invalid Active Directory entry","value":{"code":401,"message":"Unauthorized","debugInfo":"Invalid Active Directory entry","errorCode":-90061}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}}},"deprecated":true,"security":[]}},"/v4/auth/recover_username":{"post":{"tags":["auth"],"summary":"Recover username","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.13.0</h3>\n\n### 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":{"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}}}}}},"204":{"description":"No Content"},"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/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"},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}},"security":[]}},"/v4/auth/openid/login":{"get":{"tags":["auth"],"summary":"Initiate OpenID Connect authentication","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.14.0</h3>\n\n### Description:\nThis is the first step of the OpenID Connect authentication. \nThe user is send to the OpenID Connect identity provider to authenticate himself and retrieve an authorization code.\n\n### Precondition:\nNone.\n\n### Postcondition:\nUser is redirected to OpenID Connect identity provider to authenticate himself.\n\n### Further Information:\nNone.","externalDocs":{"description":"OpenID Specifications","url":"http://openid.net/developers/specs"},"operationId":"initiateOpenIdLogin","parameters":[{"name":"issuer","in":"query","description":"Issuer identifier of the OpenID Connect identity provider","required":true,"schema":{"type":"string"}},{"name":"redirect_uri","in":"query","description":"Redirect URI to complete the OpenID Connect authentication","required":true,"schema":{"type":"string"}},{"name":"language","in":"query","description":"Language ID or ISO 639-1 code","required":true,"deprecated":true,"schema":{"type":"string"}},{"name":"test","in":"query","description":"Flag to test the authentication parameters.\n\nIf the request is valid, the API will respond with `204 No Content`.","required":true,"schema":{"type":"boolean"}}],"responses":{"302":{"description":"Found"},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10003":{"summary":"User is locked by an administrator","description":"\n* [-10003] User is locked by an administrator","value":{"code":403,"message":"Forbidden","debugInfo":"User is locked by an administrator","errorCode":-10003}},"-10004":{"summary":"User has expired","description":"\n* [-10004] User has expired","value":{"code":403,"message":"Forbidden","debugInfo":"User has expired","errorCode":-10004}},"-10005":{"summary":"User is temporarily locked","description":"\n* [-10005] User is temporarily locked","value":{"code":403,"message":"Forbidden","debugInfo":"User is temporarily locked","errorCode":-10005}},"-10007":{"summary":"Customer is locked","description":"\n* [-10007] Customer is locked","value":{"code":403,"message":"Forbidden","debugInfo":"Customer is locked","errorCode":-10007}},"-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}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90044":{"summary":"Identity token retrieval failed","description":"\n* [-90044] Identity token retrieval failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"Identity token retrieval failed","errorCode":-90044}},"-90045":{"summary":"Identity token validation failed","description":"\n* [-90045] Identity token validation failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"Identity token validation failed","errorCode":-90045}},"-90046":{"summary":"User information retrieval failed","description":"\n* [-90046] User information retrieval failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"User information retrieval failed","errorCode":-90046}},"-90047":{"summary":"Invalid OpenID Connect IDP configuration","description":"\n* [-90047] Invalid OpenID Connect IDP configuration","value":{"code":502,"message":"Bad Gateway","debugInfo":"Invalid OpenID Connect IDP configuration","errorCode":-90047}}}}}},"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10010":{"summary":"Not supported language","description":"\n* [-10010] Not supported language","value":{"code":400,"message":"Bad Request","debugInfo":"Not supported language","errorCode":-10010}},"-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}},"-90043":{"summary":"Invalid authentication state","description":"\n* [-90043] Invalid authentication state","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid authentication state","errorCode":-90043}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90048":{"summary":"Invalid OpenID Connect user information","description":"\n* [-90048] Invalid OpenID Connect user information","value":{"code":401,"message":"Unauthorized","debugInfo":"Invalid OpenID Connect user information","errorCode":-90048}},"-90060":{"summary":"User import not allowed","description":"\n* [-90060] User import not allowed","value":{"code":401,"message":"Unauthorized","debugInfo":"User import not allowed","errorCode":-90060}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","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}},"-90041":{"summary":"Unknown identity provider","description":"\n* [-90041] Unknown identity provider","value":{"code":404,"message":"Not Found","debugInfo":"Unknown identity provider","errorCode":-90041}},"-90042":{"summary":"Unknown redirect URI","description":"\n* [-90042] Unknown redirect URI","value":{"code":404,"message":"Not Found","debugInfo":"Unknown redirect URI","errorCode":-90042}}}}}}},"deprecated":true,"security":[]},"post":{"tags":["auth"],"summary":"Complete OpenID Connect authentication","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.14.0</h3>\n\n### Description: \nThis is the second step of the OpenID Connect authentication. \nThe user hands over the authorization code and is logged in.\n\n### Precondition:\nExisting user with activated OpenID Connect authentication that is **NOT** locked.\n\n### Postcondition:\nUser is logged in.\n\n### Further Information:\nNone.","externalDocs":{"description":"OpenID Specifications","url":"http://openid.net/developers/specs"},"operationId":"completeOpenIdLogin","parameters":[{"name":"code","in":"query","description":"Authorization code","required":true,"schema":{"type":"string"}},{"name":"id_token","in":"query","description":"Identity token","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","description":"Authentication state","required":true,"schema":{"type":"string"}}],"responses":{"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10003":{"summary":"User is locked by an administrator","description":"\n* [-10003] User is locked by an administrator","value":{"code":403,"message":"Forbidden","debugInfo":"User is locked by an administrator","errorCode":-10003}},"-10004":{"summary":"User has expired","description":"\n* [-10004] User has expired","value":{"code":403,"message":"Forbidden","debugInfo":"User has expired","errorCode":-10004}},"-10005":{"summary":"User is temporarily locked","description":"\n* [-10005] User is temporarily locked","value":{"code":403,"message":"Forbidden","debugInfo":"User is temporarily locked","errorCode":-10005}},"-10007":{"summary":"Customer is locked","description":"\n* [-10007] Customer is locked","value":{"code":403,"message":"Forbidden","debugInfo":"Customer is locked","errorCode":-10007}},"-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}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90044":{"summary":"Identity token retrieval failed","description":"\n* [-90044] Identity token retrieval failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"Identity token retrieval failed","errorCode":-90044}},"-90045":{"summary":"Identity token validation failed","description":"\n* [-90045] Identity token validation failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"Identity token validation failed","errorCode":-90045}},"-90046":{"summary":"User information retrieval failed","description":"\n* [-90046] User information retrieval failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"User information retrieval failed","errorCode":-90046}},"-90047":{"summary":"Invalid OpenID Connect IDP configuration","description":"\n* [-90047] Invalid OpenID Connect IDP configuration","value":{"code":502,"message":"Bad Gateway","debugInfo":"Invalid OpenID Connect IDP configuration","errorCode":-90047}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10010":{"summary":"Not supported language","description":"\n* [-10010] Not supported language","value":{"code":400,"message":"Bad Request","debugInfo":"Not supported language","errorCode":-10010}},"-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}},"-90043":{"summary":"Invalid authentication state","description":"\n* [-90043] Invalid authentication state","value":{"code":400,"message":"Bad Request","debugInfo":"Invalid authentication state","errorCode":-90043}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90048":{"summary":"Invalid OpenID Connect user information","description":"\n* [-90048] Invalid OpenID Connect user information","value":{"code":401,"message":"Unauthorized","debugInfo":"Invalid OpenID Connect user information","errorCode":-90048}},"-90060":{"summary":"User import not allowed","description":"\n* [-90060] User import not allowed","value":{"code":401,"message":"Unauthorized","debugInfo":"User import not allowed","errorCode":-90060}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"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}},"-90041":{"summary":"Unknown identity provider","description":"\n* [-90041] Unknown identity provider","value":{"code":404,"message":"Not Found","debugInfo":"Unknown identity provider","errorCode":-90041}},"-90042":{"summary":"Unknown redirect URI","description":"\n* [-90042] Unknown redirect URI","value":{"code":404,"message":"Not Found","debugInfo":"Unknown redirect URI","errorCode":-90042}}}}}}},"deprecated":true,"security":[]}},"/v4/auth/openid/resources":{"get":{"tags":["auth"],"summary":"Request OpenID Connect authentication resources","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.3.0</h3>\n\n### Description: \nProvides information about OpenID Connect authentication options.\n\n### Precondition:\nNone.\n\n### Postcondition:\nList of available OpenID Connect Providers is returned.\n\n### Further Information:\nEmpty list is returned if OpenID Connect is **NOT** configured.","externalDocs":{"description":"OpenID Specifications","url":"http://openid.net/developers/specs"},"operationId":"requestOpenIdAuthResources","responses":{"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdAuthResources"}}}}},"deprecated":true,"security":[]}},"/v4/eventlog/events":{"get":{"tags":["eventlog"],"summary":"Request system events","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.3.0</h3>\n\n### 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":{"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":{"enum":["0","2"]}},{"name":"user_client","in":"query","description":"User client","required":false,"schema":{"type":"string"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEventList"}}}}}}},"/v4/eventlog/operations":{"get":{"tags":["eventlog"],"summary":"Request allowed Log Operations","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.3.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogOperationList"}}}}}}},"/v4/eventlog/audits/nodes":{"get":{"tags":["eventlog"],"summary":"Request node assigned users with permissions","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.3.0</h3>\n\n### 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\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":{"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-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AuditNodeResponse"}}}}}}}},"/v4/nodes/files/{file_id}":{"put":{"tags":["nodes"],"summary":"Updates a 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\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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"file_id","in":"path","description":"File ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFileRequest"}}},"required":true},"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}}}}},"/v4/nodes/files":{"put":{"tags":["nodes"],"summary":"Updates a list of file’s metadata","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.25.0</h3>\n\n### 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 shares is 200\n","operationId":"updateFiles","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFilesBulkRequest"}}},"required":true},"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}}}}}},"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}}}}}},"204":{"description":"No Content"},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}}}}},"/v4/nodes/files/{file_id}/downloads":{"get":{"tags":["nodes"],"summary":"Download file","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.3.0</h3>\n\n### Use `downloads` API\n\n### Description:\nDownload a file.\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:\nStream is returned.\n\n### Further Information:\nRange requests are supported for details.","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"downloadFile","parameters":[{"name":"file_id","in":"path","description":"File ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"Range","in":"header","description":"Range \n\ne.g. `bytes=0-999/3980`","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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/octet-stream":{"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}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"206":{"description":"Partial Content"},"200":{"description":"OK"}},"deprecated":true},"post":{"tags":["nodes"],"summary":"Generate download URL","description":"### Description:\nCreate a download URL to retrieve a file without `X-Sds-Auth-Token` 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadTokenGenerateResponse"}}}}}},"head":{"tags":["nodes"],"summary":"Download file","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.3.0</h3>\n\n### Use `downloads` API\n\n### Description:\nDownload a file.\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:\nStream is returned.\n\n### Further Information:\nRange requests are supported for details.","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"downloadFile_1","parameters":[{"name":"file_id","in":"path","description":"File ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"Range","in":"header","description":"Range \n\ne.g. `bytes=0-999/3980`","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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/octet-stream":{"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}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"206":{"description":"Partial Content"},"200":{"description":"OK"}},"deprecated":true}},"/v4/nodes/files/uploads/{upload_id}":{"get":{"tags":["nodes"],"summary":"Request status of S3 file upload","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.15.0</h3>\n\n### 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| `502 Insufficient Storage` | `-90201` | Exceeds the free customer physical disk space |\n\n</details>","operationId":"requestUploadStatusFiles","parameters":[{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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* [-40000] 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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3FileUploadStatus"}}}}}},"put":{"tags":["nodes"],"summary":"Complete file upload","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.9.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"upload_id","in":"path","description":"Upload channel ID","required":true,"schema":{"type":"string"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteUploadRequest"}}},"required":true},"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}},"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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}}},"deprecated":true},"post":{"tags":["nodes"],"summary":"Upload file","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.9.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"description":"File","content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}},"required":true},"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"-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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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 `X-Sds-Auth-Token` 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFileUploadRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"-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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}}}}},"/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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFileKeySetBatchRequest"}}},"required":true},"responses":{"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}}}}}},"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":{"-40761":{"summary":"File key not found","description":"\n* [-40761] File key not found","value":{"code":403,"message":"Forbidden","debugInfo":"File key not found","errorCode":-40761}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","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* [-40000] 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}}}}}}}}},"/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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileKey"}}}},"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":"Node not found","description":"\n* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}}}}},"/v4/nodes/files/{file_id}/data_space_file_key":{"get":{"tags":["nodes"],"summary":"Request system rescue key","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.24.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileKey"}}}},"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":"Node not found","description":"\n* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}}},"deprecated":true}},"/v4/nodes/files/{file_id}/data_room_file_key":{"get":{"tags":["nodes"],"summary":"Request room rescue key","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.24.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileKey"}}}},"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":"Node not found","description":"\n* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}}},"deprecated":true}},"/v4/nodes/files/uploads/{upload_id}/s3_urls":{"post":{"tags":["nodes"],"summary":"Generate presigned URLs for S3 file upload","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.15.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePresignedUrlsRequest"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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* [-40000] 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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresignedUrlList"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"-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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}}}}},"/v4/nodes/files/uploads/{upload_id}/s3":{"put":{"tags":["nodes"],"summary":"Complete S3 file upload","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.15.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteS3FileUploadRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-90030":{"summary":"S3 storage disabled","description":"\n* [-90030] S3 storage disabled","value":{"code":412,"message":"Precondition Failed","debugInfo":"S3 storage disabled","errorCode":-90030}}}}}},"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}}}}}},"202":{"description":"Accepted"},"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* [-40000] 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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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> 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 Active Directory configurations is returned.\n\n### Further Information:\nNone.","operationId":"requestAdConfigs","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfigList"}}}}}},"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> 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 Active Directory configuration created.\n\n### Further Information:\nNone.","operationId":"createAdConfig","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateActiveDirectoryConfigRequest"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfig"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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:\nNone.","externalDocs":{"description":"OpenID Specifications","url":"http://openid.net/developers/specs"},"operationId":"requestOpenIdIdpConfigs","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}}}}}},"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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOpenIdIdpConfigRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-90037":{"summary":"OpenID Connect IDP configuration with same issuer already exists","description":"\n* [-90037] OpenID Connect IDP configuration with same issuer already exists","value":{"code":409,"message":"Conflict","debugInfo":"OpenID Connect IDP configuration with same issuer already exists","errorCode":-90037}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}}},"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}}}}}}}}},"/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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOpenIdIdpConfigRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-90037":{"summary":"OpenID Connect IDP configuration with same issuer already exists","description":"\n* [-90037] OpenID Connect IDP configuration with same issuer already exists","value":{"code":409,"message":"Conflict","debugInfo":"OpenID Connect IDP configuration with same issuer already exists","errorCode":-90037}},"-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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}}},"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}}}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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 fields are **NOT** supported. \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| `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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OAuthClient"}}}}}}},"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 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOAuthClientRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthClient"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthClient"}}}}}},"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 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOAuthClientRequest"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthClient"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/system/config/auth/radius":{"get":{"tags":["system-auth-config"],"summary":"Request RADIUS configuration","description":"### Description: \nRetrieve a RADIUS 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:\nRADIUS configuration is returned.\n\n### Further Information:\nNone.","operationId":"requestRadiusConfig","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90072":{"summary":"RADIUS configuration not found","description":"\n* [-90072] RADIUS configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"RADIUS configuration not found","errorCode":-90072}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusConfig"}}}}}},"put":{"tags":["system-auth-config"],"summary":"Update RADIUS configuration","description":"### Description: \nUpdate existing RADIUS 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:\nRADIUS configuration is updated.\n\n### Further Information:\nNone.","operationId":"updateRadiusConfig","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusConfigUpdateRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-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}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90072":{"summary":"RADIUS configuration not found","description":"\n* [-90072] RADIUS configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"RADIUS configuration not found","errorCode":-90072}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusConfig"}}}}}},"post":{"tags":["system-auth-config"],"summary":"Create RADIUS configuration","description":"### Description: \nCreate new RADIUS 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 RADIUS configuration is created.\n\n### Further Information:\nNone.","operationId":"createRadiusConfig","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusConfigCreateRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90073":{"summary":"RADIUS configuration already exists","description":"\n* [-90073] RADIUS configuration already exists","value":{"code":409,"message":"Conflict","debugInfo":"RADIUS configuration already exists","errorCode":-90073}}}}}},"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}},"-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}},"-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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusConfig"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"delete":{"tags":["system-auth-config"],"summary":"Remove RADIUS configuration","description":"### Description: \nDelete existing RADIUS 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:\nRADIUS configuration is deleted.\n\n### Further Information:\nNone.","operationId":"removeRadiusConfig","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90072":{"summary":"RADIUS configuration not found","description":"\n* [-90072] RADIUS configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"RADIUS configuration not found","errorCode":-90072}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/system/config/actions/test/radius":{"post":{"tags":["system-auth-config"],"summary":"Test RADIUS server availability","description":"### Description: \nTest RADIUS 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:\nRADIUS configuration is returned if successful.\n\n### Further Information:\nDRACOON tries to establish a connection with the provided information.","operationId":"testRadiusConfig","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90070":{"summary":"RADIUS connection failed","description":"\n* [-90070] RADIUS connection failed","value":{"code":502,"message":"Bad Gateway","debugInfo":"RADIUS connection failed","errorCode":-90070}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-90072":{"summary":"RADIUS configuration not found","description":"\n* [-90072] RADIUS configuration not found","value":{"code":404,"message":"Not Found","debugInfo":"RADIUS configuration not found","errorCode":-90072}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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> 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:\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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfig"}}}}}},"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> 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:\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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateActiveDirectoryConfigRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfig"}}}},"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}}}}}},"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}}}}}}}},"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> 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:\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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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> 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:\nActive Directory configuration is returned if successful.\n\n### Further Information:\nDRACOON tries to establish a connection with the provided information.","operationId":"testAdConfig","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestActiveDirectoryConfigRequest"}}},"required":true},"responses":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}}},"/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 fields are **NOT** supported. \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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGroupList"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGroupsAddBatchRequest"}}},"required":true},"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}}}}}},"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* [-40000] 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGroupsDeleteBatchRequest"}}},"required":true},"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}}}}},"post":{"tags":["nodes"],"summary":"Set room's rescue key pair","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"required":true},"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}},"-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* [-40000] 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}},"delete":{"tags":["nodes"],"summary":"Remove rooms's rescue key pair","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/nodes/rooms/{room_id}/keypairs":{"get":{"tags":["nodes"],"summary":"Request all room rescue key pairs","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content","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":{"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* [-40000] 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}},"post":{"tags":["nodes"],"summary":"Create key pair and preserve copy of old private key","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyPairRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-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* [-40000] 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/nodes/rooms/{room_id}/s3_tags":{"get":{"tags":["nodes"],"summary":"Request list of all assigned S3 tags to the room","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.9.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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* [-40000] 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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-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":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.9.0</h3>\n\n### 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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagIds"}}},"required":true},"responses":{"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* [-40000] 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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}},"-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}/webhooks":{"get":{"tags":["nodes"],"summary":"Request list of webhooks that are assigned or can be assigned to this room","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomWebhookList"}}}}}},"put":{"tags":["nodes"],"summary":"Assign or unassign webhooks to room","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.19.0</h3>\n\n### 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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoomWebhookRequest"}}},"required":true},"responses":{"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomWebhookList"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-41000":{"summary":"Node not found","description":"\n* [-40000] 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}}}}}}}}},"/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 fields are **NOT** supported. \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`userId:desc` \nSort by `userId` 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| `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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingAssignmentList"}}}}}},"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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingAssignmentsRequest"}}},"required":true},"responses":{"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* [-40000] 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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoomRequest"}}},"required":true},"responses":{"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}},"-40011":{"summary":"Recycle bin cannot be disabled","description":"\n* [-40011] Recycle bin cannot be disabled","value":{"code":400,"message":"Bad Request","debugInfo":"Recycle bin cannot be disabled","errorCode":-40011}},"-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}}}}}},"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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* [-40000] 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoomRequest"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}}}}},"/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EncryptRoomRequest"}}},"required":true},"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}}}}},"/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\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 fields are **NOT** supported. \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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomUserList"}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomUsersAddBatchRequest"}}},"required":true},"responses":{"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* [-40000] 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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}},"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomUsersDeleteBatchRequest"}}},"required":true},"responses":{"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* [-40000] 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}}}}}},"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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/nodes/rooms/{room_id}/activities_log":{"get":{"tags":["nodes"],"summary":"Request events of a room","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.3.0</h3>\n\n### 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":"requestRoomActivitiesLogAsJsonOld","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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyslogEventList"}}}}},"deprecated":true}},"/v4/nodes/rooms/{room_id}/events":{"get":{"tags":["nodes"],"summary":"Request events of a room","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.3.0</h3>\n\n### 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":{"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"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"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}}}}}},"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* [-40000] Node not found","value":{"code":404,"message":"Not Found","debugInfo":"Node not found","errorCode":-41000}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEventList"}}}}}}},"/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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"room_id","in":"path","description":"Room ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigRoomRequest"}}},"required":true},"responses":{"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}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-40011":{"summary":"Recycle bin cannot be disabled","description":"\n* [-40011] Recycle bin cannot be disabled","value":{"code":400,"message":"Bad Request","debugInfo":"Recycle bin cannot be disabled","errorCode":-40011}},"-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}}}}}},"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* [-40000] 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}}}}}},"/v4/public/shares/uploads/{access_key}/{upload_id}":{"get":{"tags":["public"],"summary":"Request status of S3 file upload","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.15.0</h3>\n\n### 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| `502 Insufficient Storage` | `-90201` | Exceeds the free customer physical disk space |\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":{"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* [-40000] 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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3ShareUploadStatus"}}}},"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":"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":{"description":"Mandatory for encrypted shares","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFileKeyList"}}},"required":true},"responses":{"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}}}}}},"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}}}}}},"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}}}}}},"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUploadedFileData"}}}},"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* [-40000] 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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUploadedFileData"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}},"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":[]},"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":"uploadFileAsBinaryPublic_1","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":{"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"}},{"name":"Content-Range","in":"header","description":"Content-Range \n\ne.g. `bytes 0-999/3980`","required":false,"schema":{"type":"string"}}],"requestBody":{"description":"File","content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$ref":"#/components/schemas/ErrorResponse"}]},"examples":{"null":{"summary":"Content type not acceptable","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":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$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}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ChunkUploadResponse"},{"$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":[]},"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":{"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}}}}}},"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}}}}}},"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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}},"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}}}}}},"204":{"description":"No Content"},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/shares/uploads/{access_key}/{upload_id}/s3":{"put":{"tags":["public"],"summary":"Complete S3 file upload","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.15.0</h3>\n\n### 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":{"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* [-40000] 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}}}}}},"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/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:\nThe version of DRACOON Server consists of two components:\n* **API**\n* **Core** (referred to as _\"Server\"_)\n\nwhich are versioned individually.","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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"responses":{"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoftwareVersionData"}}}}},"security":[]}},"/v4/public/software/third_party_dependencies":{"get":{"tags":["public"],"summary":"Request third-party software dependencies","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.9.0</h3>\n\n### 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":{"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ThirdPartyDependenciesData"}}}}}},"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 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| `radius` | **RADIUS** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their RADIUS username, their PIN and a token password. |\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 | `true or false` |\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":{"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemInfo"}}}}},"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":{"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryAuthInfo"}}}}},"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":{"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}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdAuthInfo"}}}}},"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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}}],"responses":{"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SdsServerTime"}}}}},"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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}}],"responses":{"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}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDownloadShare"}}}},"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}}}}}}},"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"}}},"required":true},"responses":{"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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDownloadTokenGenerateResponse"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}},"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}}}}}}},"security":[]}},"/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* `maxSlots`\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":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"]}},{"name":"access_key","in":"path","description":"Access key","required":true,"schema":{"type":"string"}}],"responses":{"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}}}}}},"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}}}}}},"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}}}}}}},"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":{"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}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShareUploadChannelResponse"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}},"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}}}}}},"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/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":{"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}}}}}},"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}}}}}},"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}}}}}},"200":{"description":"OK"},"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* [-40000] 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}}}}}}},"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":{"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}}}}}},"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}}}}}},"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}}}}}},"200":{"description":"OK"},"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* [-40000] 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}}}}}}},"security":[]}},"/v4/public/shares/uploads/{access_key}/{upload_id}/s3_urls":{"post":{"tags":["public"],"summary":"Generate presigned URLs for S3 file upload","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.15.0</h3>\n\n### 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":{"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":{"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}}}}}},"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}},"-90201":{"summary":"Exceeds the free customer physical disk space","description":"\n* [-90201] Exceeds the free customer physical disk space","value":{"code":507,"message":"Insufficient Storage","debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201}}}}}},"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* [-40000] 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}}}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresignedUrlList"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","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/public/system/info/license":{"get":{"tags":["public"],"summary":"Request license information","description":"### Description: \nReturns license information for this instance.\n\n### Precondition:\nNone.\n\n### Postcondition:\nLicense information is returned.\n\n### Further Information:\nAvailable license statuses:\n* `valid` - license is valid\n* `exceeding` - license is about to be exceeded soon (due to number of provisioned customers, users, or storage)\n* `expiring` - license is about to expire soon\n* `expired` - license is expired\n* `exceeded` - license is exceeded (due to number of provisioned customers, users, or storage)\n* `invalid` - license is invalid (e.g. invalid license signature)\n","operationId":"requestPublicLicenseInfo","responses":{"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicLicenseInfo"}}}}},"security":[]}},"/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":{"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}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"200":{"description":"OK"},"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}}}}}}},"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":{"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}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"206":{"description":"Partial Content"},"200":{"description":"OK"}},"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":{"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}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"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}}}}}},"206":{"description":"Partial Content"},"200":{"description":"OK"}},"security":[]}},"/v4/downloads/avatar/{user_id}/{uuid}":{"get":{"tags":["downloads"],"summary":"Download avatar","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.11.0</h3>\n\n### 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":{"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}}}}}},"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}}}}}},"200":{"description":"OK","content":{"application/octet-stream":{"schema":{"type":"string"},"examples":{"0":{"summary":"Avatar response","description":"`application/octet-stream` is returned","value":"[... byte content ...]"}}}}}},"security":[]}},"/v4/system/config/policies/passwords":{"get":{"tags":["system-policies-config"],"summary":"Request password policies","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.14.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPoliciesConfig"}}}}}},"put":{"tags":["system-policies-config"],"summary":"Change password policies","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.14.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePasswordPoliciesConfig"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}}},"/v4/system/config/policies/passwords/{password_type}":{"get":{"tags":["system-policies-config"],"summary":"Request password policies for a certain password type","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.14.0</h3>\n\n### 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":{"enum":["login","encryption","shares"]}},{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"-10006":{"summary":"User is not authorized to perform this operation","description":"\n* [-10006] User is not authorized to perform this operation","value":{"code":401,"message":"Unauthorized","debugInfo":"User is not authorized to 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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}},"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}}}}}}}}},"/v4/system/config/policies/passwords/enforce_change":{"post":{"tags":["system-policies-config"],"summary":"Enforce login password change for all users","description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.24.0</h3>\n\n### 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","parameters":[{"name":"X-Sds-Auth-Token","in":"header","description":"Authentication token","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}}}}}},"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}}}}}},"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}},"-10106":{"summary":"E-Mail must be set","description":"\n* [-10106] E-Mail must be set","value":{"code":412,"message":"Precondition Failed","debugInfo":"E-Mail must be set","errorCode":-10106}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"null":{"summary":"Content type not acceptable","description":"Acceptable Content-Types are: `[application/json]`","value":{"code":406,"message":"Not Acceptable","debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null}}}}}}}}}},"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"},"CustomerData":{"required":["accountsLimit","accountsUsed","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"},"customerEncryptionEnabled":{"type":"boolean","description":"Clientside encryption for customer enabled"}},"description":"Customer 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":"&#128640; Since v4.24.0\n\nCreation date","format":"date-time"},"createdBy":{"type":"integer","description":"&#128640; Since v4.24.0\n\nCreated by user","format":"int64"},"expireAt":{"type":"string","format":"date-time","writeOnly":true}},"description":"Private key container"},"PublicKeyContainer":{"required":["publicKey","version"],"type":"object","properties":{"version":{"type":"string","description":"Version"},"publicKey":{"type":"string","description":"Public key"},"createdAt":{"type":"string","description":"&#128640; Since v4.24.0\n\nCreation date","format":"date-time"},"createdBy":{"type":"integer","description":"&#128640; Since v4.24.0\n\nCreated by user","format":"int64"},"expireAt":{"type":"string","format":"date-time","writeOnly":true}},"description":"Public key container"},"UserKeyPairContainer":{"required":["privateKeyContainer","publicKeyContainer"],"type":"object","properties":{"privateKeyContainer":{"$ref":"#/components/schemas/PrivateKeyContainer"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"}},"description":"Key pair container"},"UpdateUserAccountRequest":{"type":"object","properties":{"userName":{"type":"string","description":"&#128640; Since v4.13.0\n\nUsername"},"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":"&#128640; Since v4.20.0\n\nIETF language tag"},"title":{"type":"string","description":"&#128679; Deprecated since v4.18.0\n\nJob title","deprecated":true},"login":{"type":"string","description":"&#128679; Deprecated since v4.13.0\n\nUser login name","deprecated":true},"gender":{"type":"string","description":"&#128679; Deprecated since v4.12.0\n\nGender\n\nDo NOT use `gender`! It will be ignored.","deprecated":true,"default":"n"}},"description":"Request model for updating user account information"},"KeyValueEntry":{"required":["key","value"],"type":"object","properties":{"key":{"type":"string","description":"Entry key"},"value":{"type":"string","description":"Entry value"}},"description":"Key-value pair"},"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"},"UserAccount":{"required":["authData","customerId","firstName","hasManageableRooms","id","isLocked","language","lastName","lockStatus","needsToChangePassword","userName","userRoles"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"customerId":{"type":"integer","description":"&#128640; Since v4.26.6\n\nUnique identifier for the customer","format":"int64"},"userName":{"type":"string","description":"&#128640; Since v4.13.0\n\nUsername"},"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":"&#128640; Since v4.20.0\n\nIETF language tag"},"authData":{"$ref":"#/components/schemas/UserAuthData"},"mustSetEmail":{"type":"boolean","description":"&#128640; Since v4.13.0\n\nIf `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"},"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":"&#128679; Deprecated since v4.18.0\n\nJob title","deprecated":true},"lastLoginSuccessIp":{"type":"string","description":"&#128679; Deprecated since v4.6.0\n\nLast successful logon IP address","deprecated":true},"lastLoginFailIp":{"type":"string","description":"&#128679; Deprecated since v4.6.0\n\nLast failed logon IP address","deprecated":true},"gender":{"type":"string","description":"&#128679; Deprecated since v4.12.0\n\nGender","deprecated":true,"default":"n"},"needsToChangeUserName":{"type":"boolean","description":"&#128679; Deprecated since v4.13.0\n\nIf `true`, the user must change the `userName` at the first login.","deprecated":true,"default":false},"authMethods":{"type":"array","description":"&#128679; Deprecated since v4.13.0\n\nAuthentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/UserAuthMethod"}},"login":{"type":"string","description":"&#128679; Deprecated since v4.13.0\n\nUser login name","deprecated":true},"lockStatus":{"type":"integer","description":"&#128679; Deprecated since v4.7.0\n\nUser 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":"&#128679; Deprecated since v4.13.0\n\nDetermines whether user has to change his / her password","deprecated":true}},"description":"User information"},"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)"},"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* `radius`\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 or RADIUS 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` and `radius` 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"},"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* `radius`\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},"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"},"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"},"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"},"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":"&#128640; Since v4.12.0\n\nUser agent category.","enum":["browser","native","unknown"]},"id":{"type":"integer","description":"&#128640; Since v4.12.0\n\nID of the OAuth authorization","format":"int64"},"isStandard":{"type":"boolean","description":"&#128640; Since v4.12.0\n\nDetermines whether client is a standard client."},"createdAt":{"type":"string","description":"&#128640; Since v4.13.0\n\nCreation date of the authorization","format":"date-time"},"usedAt":{"type":"string","description":"&#128640; Since v4.13.0\n\nUsage 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":"&#128640; Since v4.12.0\n\nUser agent type."},"userAgentOs":{"type":"string","description":"&#128640; Since v4.12.0\n\nUser agent OS."},"userAgentInfo":{"type":"string","description":"&#128640; Since v4.12.0\n\nUser agent info."},"isCurrentAuthorization":{"type":"boolean","description":"&#128640; Since v4.25.0\n\nDetermines whether authorization matches the one from Authorization Header"}},"description":"OAuth authorization"},"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"},"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"},"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"},"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"},"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"},"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"},"NotificationConfigList":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of notification configurations","items":{"$ref":"#/components/schemas/NotificationConfig"}}},"description":"List of notification configurations"},"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"},"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"},"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"},"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"}},"description":"Subscribed node information"},"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"},"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"},"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"},"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"},"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":"List of 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":"&#128679; Deprecated since v4.11.0\n\nUnique identifier for the user\n\nuse `id` from `UserInfo` instead","format":"int64","deprecated":true},"displayName":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nDisplay 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"},"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":"&#128640; Since v4.11.0\n\nUser 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":"&#128640; Since v4.11.0\n\nAvatar UUID"},"userName":{"type":"string","description":"&#128640; Since v4.13.0\n\nUsername (only returned for `internal` users)"},"firstName":{"type":"string","description":"&#128640; Since v4.11.0\n\nUser first name (mandatory if `userType` is `internal`)"},"lastName":{"type":"string","description":"&#128640; Since v4.11.0\n\nUser last name (mandatory if `userType` is `internal`)"},"email":{"type":"string","description":"&#128640; Since v4.11.0\n\nEmail "},"title":{"type":"string","description":"&#128679; Deprecated since v4.18.0\n\nJob title","deprecated":true},"displayName":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nDisplay name\n\nuse other fields from `UserInfo` instead to combine a display name","deprecated":true}},"description":"User information"},"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"},"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":"List of group IDs"},"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":"&#128640; Since v4.13.0\n\nUsername"},"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":"&#128640; Since v4.11.0\n\nAvatar 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"},"userAttributes":{"$ref":"#/components/schemas/UserAttributes"},"title":{"type":"string","description":"&#128679; Deprecated since v4.18.0\n\nJob title","deprecated":true},"lockStatus":{"type":"integer","description":"&#128679; Deprecated since v4.7.0\n\nUser 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":"&#128679; Deprecated since v4.13.0\n\nUser login name","deprecated":true},"authMethods":{"type":"array","description":"&#128679; Deprecated since v4.13.0\n\nAuthentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/UserAuthMethod"}},"gender":{"type":"string","description":"&#128679; Deprecated since v4.12.0\n\nGender","deprecated":true,"default":"n"}},"description":"User information"},"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":"&#128640; Since v4.13.0\n\nUsername"},"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"},"title":{"type":"string","description":"&#128679; Deprecated since v4.18.0\n\nJob title","deprecated":true},"lockStatus":{"type":"integer","description":"&#128679; Deprecated since v4.7.0\n\nUser 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":"&#128679; Deprecated since v4.12.0\n\nGender\n\nDo NOT use `gender`! It will be ignored.","deprecated":true,"default":"n"},"authMethods":{"type":"array","description":"&#128679; Deprecated since v4.13.0\n\nAuthentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `radius`\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* `radius`\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"},"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":"&#128640; Since v4.13.0\n\nUsername"},"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":"&#128640; Since v4.9.0\n\nNotify user about his new account\n\n* default: `true` for `basic` auth type\n\n* default: `false` for `active_directory`, `openid` and `radius` auth types"},"authData":{"$ref":"#/components/schemas/UserAuthData"},"isNonmemberViewer":{"type":"boolean","description":"&#128640; Since v4.12.0\n\nDetermines whether user has the role NONMEMBER_VIEWER"},"title":{"type":"string","description":"&#128679; Deprecated since v4.18.0\n\nJob title","deprecated":true},"password":{"type":"string","description":"&#128679; Deprecated since v4.13.0\n\nAn initial password may be preset\n\nuse `authData` instead","deprecated":true},"login":{"type":"string","description":"&#128679; Deprecated since v4.13.0\n\nUser login name","deprecated":true},"authMethods":{"type":"array","description":"&#128679; Deprecated since v4.13.0\n\nAuthentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/UserAuthMethod"}},"needsToChangePassword":{"type":"boolean","description":"&#128679; Deprecated since v4.13.0\n\nDetermines whether user has to change his / her initial password.\n\nuse `authDate.mustChangePassword` instead","deprecated":true},"gender":{"type":"string","description":"&#128679; Deprecated since v4.12.0\n\nGender\n\nDo NOT use `gender`! It will be ignored.","deprecated":true,"default":"n"}},"description":"Request model for creating an user"},"UserItem":{"required":["avatarUuid","firstName","hasManageableRooms","id","isLocked","lastName","lockStatus","login","userName","userRoles"],"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"userName":{"type":"string","description":"&#128640; Since v4.13.0\n\nUsername"},"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"},"avatarUuid":{"type":"string","description":"&#128640; Since v4.11.0\n\nAvatar 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"},"userRoles":{"$ref":"#/components/schemas/RoleList"},"userAttributes":{"$ref":"#/components/schemas/UserAttributes"},"lockStatus":{"type":"integer","description":"&#128679; Deprecated since v4.7.0\n\nUser 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":"&#128679; Deprecated since v4.13.0\n\nUser login name","deprecated":true},"title":{"type":"string","description":"&#128679; Deprecated since v4.18.0\n\nJob title","deprecated":true},"gender":{"type":"string","description":"&#128679; Deprecated since v4.12.0\n\nGender","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"},"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"},"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":"&#128679; Deprecated since v4.10.0\n\nIs recycle bin active (for rooms only)\n\nRecycle bin is always on (disabling is not possible).","deprecated":true},"children":{"type":"array","description":"&#128679; Deprecated since v4.10.0\n\nList of rooms, where this room is a parent (if exist)","deprecated":true,"items":{"$ref":"#/components/schemas/RoomData"}},"cntAdmins":{"type":"integer","description":"&#128679; Deprecated since v4.2.0\n\nNumber of admins (for rooms only)","format":"int32","deprecated":true},"cntUsers":{"type":"integer","description":"&#128679; Deprecated since v4.2.0\n\nNumber of users (for rooms only)","format":"int32","deprecated":true}},"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"},"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"},"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"},"CreateGroupRequest":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Group name"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"}},"description":"Request model for creating a group"},"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"},"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"},"UpdateGroupRequest":{"type":"object","properties":{"name":{"type":"string","description":"Group name"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"}},"description":"Request model for updating group's metadata"},"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":"&#128679; Deprecated since v4.11.0\n\nUnique identifier for the user\n\nuse `id` from `UserInfo` instead","format":"int64","deprecated":true},"login":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nUser login name","deprecated":true},"displayName":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nDisplay name\n\nuse information from `UserInfo` instead to combine a display name","deprecated":true},"email":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nEmail \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"},"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"},"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"},"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."},"timestampCreation":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime 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"},"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"},"type":{"type":"string","description":"Node type","enum":["room","folder","file"]},"name":{"type":"string","description":"Name"},"timestampCreation":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime the node was created on external file system","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime 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)"},"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":"&#128640; Since v4.11.0\n\nDetermines whether node is browsable by client (for rooms only)"},"cntRooms":{"type":"integer","description":"&#128640; Since v4.11.0\n\nAmount of direct child rooms where this node is the parent node\n\n(no recursion; for rooms only)","format":"int32"},"cntFolders":{"type":"integer","description":"&#128640; Since v4.11.0\n\nAmount 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":"&#128640; Since v4.11.0\n\nAmount 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":"&#128640; Since v4.15.0\n\nAuth parent room ID","format":"int64"},"cntChildren":{"type":"integer","description":"&#128679; Deprecated since v4.11.0\n\nNumber of direct children\n\n(no recursion; for rooms / folders only)","format":"int32","deprecated":true},"hasRecycleBin":{"type":"boolean","description":"&#128679; Deprecated since v4.10.0\n\nIs recycle bin active (for rooms only)\n\nRecycle bin is always on (disabling is not possible).","deprecated":true},"children":{"type":"array","description":"&#128679; Deprecated since v4.10.0\n\nChild nodes list (if requested)\n\n(for rooms / folders only)","deprecated":true,"items":{"$ref":"#/components/schemas/Node"}},"cntAdmins":{"type":"integer","description":"&#128679; Deprecated since v4.2.0\n\nNumber of admins (for rooms only)","format":"int32","deprecated":true},"cntUsers":{"type":"integer","description":"&#128679; Deprecated since v4.2.0\n\nNumber of users (for rooms only)","format":"int32","deprecated":true}},"description":"Node information (Node can be a room, folder or file)"},"UpdateFolderRequest":{"type":"object","properties":{"name":{"type":"string","description":"Folder name"},"notes":{"type":"string","description":"User notes\n\nUse empty string to remove."},"timestampCreation":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime 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"},"LicenseInfo":{"required":["state"],"type":"object","properties":{"validFrom":{"type":"string","description":"Date from which the license is valid","format":"date-time"},"validTo":{"type":"string","description":"Date until the license is valid","format":"date-time"},"state":{"type":"string","description":"Current status of the license","enum":["valid","exceeding","expiring","expired","exceeded","invalid"]}},"description":"License information"},"CustomerAttributes":{"required":["items"],"type":"object","properties":{"items":{"type":"array","description":"List of customer attributes","items":{"$ref":"#/components/schemas/KeyValueEntry"}}},"description":"List of customer attributes"},"Customer":{"required":["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"},"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":"&#128640; Since v4.19.0\n\nMaximal number of webhooks","format":"int64"},"activationCode":{"type":"string","description":"&#128679; Deprecated since v4.8.0\n\nCustomer 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":"&#128679; Deprecated since v4.7.0\n\nCustomer 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":"&#128640; Since v4.21.0\n\nCustomer UUID"}},"description":"Customer information"},"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"},"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"},"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"},"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"},"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"},"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"},"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":"&#128640; Since v4.19.0\n\nMaximal number of webhooks","format":"int64"},"lockStatus":{"type":"boolean","description":"&#128679; Deprecated since v4.7.0\n\nCustomer 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"},"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":"&#128640; Since v4.21.0\n\nCustomer 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":"&#128640; Since v4.19.0\n\nMaximal number of webhooks","format":"int64"},"activationCode":{"type":"string","description":"&#128679; Deprecated since v4.8.0\n\nCustomer 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":"&#128679; Deprecated since v4.7.0\n\nCustomer 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"},"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":"&#128640; Since v4.13.0\n\nUsername"},"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` and `radius` auth types"},"email":{"type":"string","description":"Email "},"phone":{"type":"string","description":"Phone number"},"title":{"type":"string","description":"&#128679; Deprecated since v4.18.0\n\nJob title","deprecated":true},"language":{"type":"string","description":"&#128679; Deprecated since v4.7.0\n\nLanguage ID or ISO 639-1 code","deprecated":true},"authMethods":{"type":"array","description":"&#128679; Deprecated since v4.13.0\n\nAuthentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/UserAuthMethod"}},"needsToChangeUserName":{"type":"boolean","description":"&#128679; Deprecated since v4.13.0\n\nIf `true`, the user must change the `userName` at the first login.","deprecated":true,"default":false},"password":{"type":"string","description":"&#128679; Deprecated since v4.13.0\n\nAn initial password may be preset\n\nuse `authData` instead","deprecated":true},"needsToChangePassword":{"type":"boolean","description":"&#128679; Deprecated since v4.13.0\n\nDetermines whether user has to change his / her initial password.\n\nuse `authDate.mustChangePassword` instead","deprecated":true},"login":{"type":"string","description":"&#128679; Deprecated since v4.13.0\n\nUser login name","deprecated":true},"gender":{"type":"string","description":"&#128679; Deprecated since v4.12.0\n\nGender","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":"&#128640; Since v4.19.0\n\nMaximal number of webhooks","format":"int64"},"lockStatus":{"type":"boolean","description":"&#128679; Deprecated since v4.7.0\n\nCustomer 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":"&#128679; Deprecated since v4.8.0\n\nCustomer 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":"&#128640; Since v4.19.0\n\nMaximal number of webhooks","format":"int64"},"customerUuid":{"type":"string","description":"&#128640; Since v4.21.0\n\nCustomer UUID"},"activationCode":{"type":"string","description":"&#128679; Deprecated since v4.8.0\n\nCustomer 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":"&#128679; Deprecated since v4.7.0\n\nCustomer 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"},"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"},"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"},"nonmemberViewerDefault":{"type":"boolean","description":"&#128640; Since v4.12.0\n\nDefines if new users get the role Non Member Viewer by default"},"hideLoginInputFields":{"type":"boolean","description":"&#128640; Since v4.13.0\n\nDefines if login fields should be hidden"}},"description":"System defaults"},"GeneralSettingsInfo":{"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."},"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"},"useS3Storage":{"type":"boolean","description":"Defines if S3 is used as storage backend"},"s3TagsEnabled":{"type":"boolean","description":"&#128640; Since v4.9.0\n\nDefines if S3 tags are enabled"},"homeRoomsActive":{"type":"boolean","description":"&#128640; Since v4.10.0\n\nHomerooms active"},"homeRoomParentId":{"type":"integer","description":"&#128640; Since v4.10.0\n\nHomeroom Parent ID","format":"int64"},"mediaServerEnabled":{"type":"boolean","description":"&#128679; Deprecated since v4.12.0\n\nDetermines if the media server is enabled","deprecated":true}},"description":"General settings"},"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":"&#128640; Since v4.15.0\n\nEnforce direct upload to S3"},"isDracoonCloud":{"type":"boolean","description":"&#128640; Since v4.21.0\n\nDetermines if the DRACOON Core is deployed in the cloud environment"},"tenantUuid":{"type":"string","description":"&#128640; Since v4.21.0\n\nCurrent tenant UUID"}},"description":"Infrastructure properties"},"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"},"S3TagList":{"type":"object","properties":{"items":{"type":"array","description":"List of configured S3 tags","items":{"$ref":"#/components/schemas/S3Tag"}}},"description":"List of S3 tags"},"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"},"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/UserInfo"}},"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/UserInfo"}},"description":"Login password policies"},"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"},"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/UserInfo"}},"description":"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"},"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"},"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"},"ChunkUploadResponse":{"required":["hash","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"},"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":"Request model for completing an upload"},"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":"List of user file keys","deprecated":true},"SyslogEvent":{"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 type 2"},"attribute1":{"type":"string","description":"Attribute 1"},"attribute2":{"type":"string","description":"Attribute 2"},"attribute3":{"type":"string","description":"Attribute 3"}},"description":"Syslog event information","deprecated":true},"SyslogEventList":{"required":["items","range"],"type":"object","properties":{"range":{"$ref":"#/components/schemas/Range"},"items":{"type":"array","description":"List of log events","items":{"$ref":"#/components/schemas/SyslogEvent"}}},"description":"List of syslog events","deprecated":true},"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 / folders 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":"&#128679; Deprecated since v4.10.0\n\nIs 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"},"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":"&#128640; Since v4.11.0\n\nInternal 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"},"notifyCreator":{"type":"boolean","description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every download."},"classification":{"type":"integer","description":"&#128679; Deprecated since v4.11.0\n\nClassification 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","deprecated":true,"enum":[1,2,3,4]},"recipients":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient email addresses","deprecated":true},"smsRecipients":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient MSISDNs","deprecated":true}},"description":"Download Share information"},"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":"&#128640; Since v4.11.0\n\nInternal 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":"&#128640; Since v4.11.0\n\nShow creator first and last name."},"showCreatorUsername":{"type":"boolean","description":"&#128640; Since v4.11.0\n\nShow creator email address."},"notifyCreator":{"type":"boolean","description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every upload."},"recipients":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient email addresses","deprecated":true},"smsRecipients":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient MSISDNs","deprecated":true}},"description":"Upload Share information"},"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"},"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"},"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"},"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"},"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":"&#128640; Since v4.11.0\n\nInternal 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":"&#128640; Since v4.11.0\n\nList 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":"&#128640; Since v4.11.0\n\nShow creator first and last name.","default":false},"showCreatorUsername":{"type":"boolean","description":"&#128640; Since v4.11.0\n\nShow creator email address.","default":false},"notifyCreator":{"type":"boolean","description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every upload.","default":false},"creatorLanguage":{"type":"string","description":"&#128679; Deprecated since v4.20.0\n\nLanguage tag for messages to creator"},"sendMail":{"type":"boolean","description":"&#128679; Deprecated since v4.11.0\n\nNotify recipients via email\n\nPlease use `POST /shares/uploads/{share_id}/email` API instead.","deprecated":true,"default":false},"mailRecipients":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient email addresses","deprecated":true},"mailSubject":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nNotification email subject","deprecated":true},"mailBody":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nNotification email content","deprecated":true},"sendSms":{"type":"boolean","description":"&#128679; Deprecated since v4.11.0\n\nSend share password via SMS\n\nPlease use `textMessageRecipients` attribute instead.","deprecated":true,"default":false},"smsRecipients":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient MSISDNs","deprecated":true}},"description":"Request model for creating an Upload Share"},"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":"&#128640; Since v4.11.0\n\nInternal 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":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every upload."}},"description":"Request model for updating 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":"&#128640; Since v4.11.0\n\nInternal 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":"&#128640; Since v4.11.0\n\nList of recipient FQTNs\n\nE.123 / E.164 Format","items":{"type":"string","description":"List of recipient FQTNs\n\nE.123 / E.164 Format"}},"notifyCreator":{"type":"boolean","description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every download.","default":false},"creatorLanguage":{"type":"string","description":"&#128679; Deprecated since v4.20.0\n\nLanguage tag for messages to creator"},"sendMail":{"type":"boolean","description":"&#128679; Deprecated since v4.11.0\n\nNotify recipients via email\n\nPlease use `POST /shares/uploads/{share_id}/email` API instead.","deprecated":true,"default":false},"mailRecipients":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient email addresses","deprecated":true},"mailSubject":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nNotification email subject","deprecated":true},"mailBody":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nNotification email content","deprecated":true},"sendSms":{"type":"boolean","description":"&#128679; Deprecated since v4.11.0\n\nSend share password via SMS\n\nPlease use `textMessageRecipients` attribute instead.","deprecated":true,"default":false},"smsRecipients":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient MSISDNs","deprecated":true}},"description":"Request model for creating a Download Share"},"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":"&#128640; Since v4.11.0\n\nInternal 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."},"notifyCreator":{"type":"boolean","description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every download."}},"description":"Request model for updating a Download Share"},"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"},"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"},"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"},"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"},"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"},"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"},"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","token"],"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL"},"token":{"type":"string","description":"&#128679; Deprecated since v4.3.0\n\nDownload token","deprecated":true}},"description":"Download URL"},"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":"&#128640; Since v4.22.0\n\nTime the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime 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":"&#128679; Deprecated since v4.5.0\n\nNode 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"},"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"},"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"},"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"},"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"},"CreateNodeCommentRequest":{"required":["text"],"type":"object","properties":{"text":{"type":"string","description":"Comment text"}},"description":"Request model for creating a node comment"},"ChangeNodeCommentRequest":{"required":["text"],"type":"object","properties":{"text":{"type":"string","description":"Comment text"}},"description":"Request model for updating a node comment"},"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"},"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"},"UserUserPublicKey":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the user","format":"int64"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"}},"description":"Public key information"},"DeletedNode":{"required":["name","parentId","parentPath","type"],"type":"object","properties":{"id":{"type":"integer","description":"Node ID","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)"},"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"},"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":"&#128640; Since v4.22.0\n\nTime the node was created on external file system","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime 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"},"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"},"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"},"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"},"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":"&#128640; Since v4.22.0\n\nTime the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime 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":"&#128679; Deprecated since v4.5.0\n\nNode 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"},"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"},"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"},"endpointUrl":{"type":"string","description":"&#128679; Deprecated since v4.24.0\n\nS3 object storage endpoint URL\n\nuse `bucketUrl` instead","deprecated":true},"bucketName":{"type":"string","description":"&#128679; Deprecated since v4.24.0\n\nS3 bucket name\n\nuse `bucketUrl` instead","deprecated":true}},"description":"S3 configuration"},"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"},"endpointUrl":{"type":"string","description":"&#128679; Deprecated since v4.24.0\n\nS3 object storage endpoint URL\n\nuse `bucketUrl` instead","deprecated":true},"bucketName":{"type":"string","description":"&#128679; Deprecated since v4.24.0\n\nS3 bucket name\n\nuse `bucketUrl` instead","deprecated":true}},"description":"Request model for creating a S3 configuration"},"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"},"endpointUrl":{"type":"string","description":"&#128679; Deprecated since v4.24.0\n\nS3 object storage endpoint URL\n\nuse `bucketUrl` instead","deprecated":true},"bucketName":{"type":"string","description":"&#128679; Deprecated since v4.24.0\n\nS3 bucket name\n\nuse `bucketUrl` instead","deprecated":true}},"description":"Request model for updating a 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"},"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"},"nonmemberViewerDefault":{"type":"boolean","description":"&#128640; Since v4.12.0\n\nDefines if new users get the role Non Member Viewer by default"}},"description":"Request model for updating system defaults"},"UpdateAuthTokenRestrictions":{"required":["overwriteEnabled"],"type":"object","properties":{"overwriteEnabled":{"type":"boolean","description":"&#128640; Since v4.13.0\n\nDefines if OAuth token restrictions are enabled"},"accessTokenValidity":{"type":"integer","description":"&#128640; Since v4.13.0\n\nRestricted OAuth access token validity (in seconds)","format":"int32"},"refreshTokenValidity":{"type":"integer","description":"&#128640; Since v4.13.0\n\nRestricted 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":"&#128640; Since v4.9.0\n\nDefines if S3 tags are enabled"},"authTokenRestrictions":{"$ref":"#/components/schemas/UpdateAuthTokenRestrictions"},"hideLoginInputFields":{"type":"boolean","description":"&#128679; Deprecated since v4.13.0\n\nDefines if login fields should be hidden","deprecated":true},"mediaServerEnabled":{"type":"boolean","description":"&#128679; Deprecated since v4.12.0\n\nDetermines if the media server is enabled","deprecated":true},"weakPasswordEnabled":{"type":"boolean","description":"&#128679; Deprecated since v4.14.0\n\nAllow 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":"&#128640; Since v4.13.0\n\nDefines if OAuth token restrictions are enabled"},"accessTokenValidity":{"type":"integer","description":"&#128640; Since v4.13.0\n\nRestricted OAuth access token validity (in seconds)","format":"int32"},"refreshTokenValidity":{"type":"integer","description":"&#128640; Since v4.13.0\n\nRestricted 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":"&#128640; Since v4.9.0\n\nDefines if S3 tags are enabled"},"hideLoginInputFields":{"type":"boolean","description":"&#128640; Since v4.13.0\n\nDefines if login fields should be hidden"},"authTokenRestrictions":{"$ref":"#/components/schemas/AuthTokenRestrictions"},"mediaServerEnabled":{"type":"boolean","description":"&#128679; Deprecated since v4.12.0\n\nDetermines if the media server is enabled","deprecated":true},"weakPasswordEnabled":{"type":"boolean","description":"&#128679; Deprecated since v4.14.0\n\nAllow 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"},"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* `radius`\n\n* `openid`"},"isEnabled":{"type":"boolean","description":"Is enabled"},"priority":{"type":"integer","description":"Priority (smaller values have higher priority)","format":"int32"}},"description":"Authentication method"},"ResetPasswordWithTokenRequest":{"required":["password"],"type":"object","properties":{"password":{"type":"string","description":"New password"}},"description":"New password"},"LoginRequest":{"required":["password"],"type":"object","properties":{"password":{"type":"string","description":"Password"},"userName":{"type":"string","description":"&#128640; Since v4.13.0\n\nUsername"},"authType":{"type":"string","description":"Authentication methods","enum":["basic","active_directory","radius"]},"token":{"type":"string","description":"RADIUS Token"},"state":{"type":"string","description":"For RADIUS Access-Challenge\n\nIf a `replyState` is returned, it must be included as `state` in the following request."},"language":{"type":"string","description":"&#128679; Deprecated since v4.7.0\n\nLanguage ID or ISO 639-1 code","deprecated":true},"login":{"type":"string","description":"&#128679; Deprecated since v4.7.0\n\nUser login name","deprecated":true}},"description":"Request model for performing an authentication"},"RadiusChallengeResponse":{"required":["code","message","replyMessage","replyState"],"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"},"replyState":{"type":"string","description":"For RADIUS Access-Challenge\n\nIf a `replyState` is returned, it must be included as `state` in the following request."},"replyMessage":{"type":"string","description":"RADIUS Reply-Message\n\nInstruction how to handle the situation."}},"description":"RADIUS challenge reply"},"LoginResponse":{"required":["token"],"type":"object","properties":{"token":{"type":"string","description":"Authentication token"}},"description":"Authentication token"},"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":"&#128679; Deprecated since v4.18.0\n\nJob title","deprecated":true},"gender":{"type":"string","description":"&#128679; Deprecated since v4.12.0\n\nGender","deprecated":true,"default":"n"},"allowSystemGlobalWeakPassword":{"type":"boolean","description":"&#128679; Deprecated since v4.14.0\n\nAllow weak password\n\nPlease use `loginPasswordPolicies` instead","deprecated":true}},"description":"Password reset information"},"RecoverUserNameRequest":{"required":["email"],"type":"object","properties":{"email":{"type":"string","description":"Email "},"creatorLanguage":{"type":"string","description":"IETF language tag"}},"description":"Recover usernames for email"},"ResetPasswordRequest":{"type":"object","properties":{"userName":{"type":"string","description":"&#128640; Since v4.13.0\n\nUsername"},"creatorLanguage":{"type":"string","description":"IETF language tag"},"language":{"type":"string","description":"&#128679; Deprecated since v4.7.0\n\nLanguage ID or ISO 639-1 code","deprecated":true},"login":{"type":"string","description":"&#128679; Deprecated since v4.13.0\n\nUser login name","deprecated":true}},"description":"Request model for reseting user's login password"},"OpenIdAuthResources":{"required":["openIdProviders"],"type":"object","properties":{"openIdProviders":{"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"},"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"},"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"},"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":"&#128640; Since v4.22.0\n\nTime the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime 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"},"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"},"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":"&#128640; Since v4.15.0\n\nUpload direct to S3","default":false},"timestampCreation":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime 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":"&#128679; Deprecated since v4.3.0\n\nUpload token","deprecated":true}},"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"},"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"},"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"}},"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"},"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"},"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":"&#128679; Deprecated since v4.10.0\n\nDEPRECATED, 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":"&#128679; Deprecated since v4.10.0\n\nDEPRECATED, 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"},"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"},"OpenIdIdpConfig":{"required":["id"],"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int32"},"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."},"flow":{"type":"string","description":"&#128640; Since v4.11.0\n\nFlow, 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":"&#128640; Since v4.23.0\n\nSource, 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."}},"description":"OpenID Connect IDP configuration"},"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":"&#128640; Since v4.11.0\n\nFlow, 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":"&#128640; Since v4.23.0\n\nSource, 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."}},"description":"Request model for creating an OpenID Connect IDP configuration"},"UpdateOpenIdIdpConfigRequest":{"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."},"flow":{"type":"string","description":"&#128640; Since v4.11.0\n\nFlow, 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":"&#128640; Since v4.23.0\n\nSource, 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."}},"description":"Request model for updating an OpenID Connect IDP configuration"},"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":"&#128640; Since v4.22.0\n\nValidity of the approval interval in seconds.","format":"int32"}},"description":"OAuth client information"},"FailoverServer":{"required":["failoverEnabled","failoverIpAddress","failoverPort"],"type":"object","properties":{"failoverEnabled":{"type":"boolean","description":"RADIUS Failover Server is active"},"failoverIpAddress":{"type":"string","description":"RADIUS Failover Server IP Address\n\nRequired if failover server is enabled."},"failoverPort":{"type":"integer","description":"RADIUS Failover Server Port\n\nRequired if failover server is enabled.","format":"int32"}},"description":"Failover server information"},"RadiusConfig":{"required":["ipAddress","otpPinFirst","port","sharedSecret"],"type":"object","properties":{"ipAddress":{"type":"string","description":"RADIUS Server IP Address"},"port":{"type":"integer","description":"RADIUS Server Port","format":"int32"},"sharedSecret":{"type":"string","description":"Shared Secret to access the RADIUS server"},"otpPinFirst":{"type":"boolean","description":"Sequence order of concatenated PIN and one-time token","default":true},"failoverServer":{"$ref":"#/components/schemas/FailoverServer"}},"description":"RADIUS 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"},"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"},"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":"&#128640; Since v4.22.0\n\nValidity of the approval interval in seconds.","format":"int32"}},"description":"Request model for updating an OAuth client"},"RadiusConfigUpdateRequest":{"type":"object","properties":{"ipAddress":{"type":"string","description":"RADIUS Server IP Address"},"port":{"type":"integer","description":"RADIUS Server Port","format":"int32"},"sharedSecret":{"type":"string","description":"Shared Secret to access the RADIUS server"},"otpPinFirst":{"type":"boolean","description":"Sequence order of concatenated PIN and one-time token","default":true},"failoverServer":{"$ref":"#/components/schemas/FailoverServer"}},"description":"Request model for updating a RADIUS configuration"},"RadiusConfigCreateRequest":{"required":["ipAddress","port","sharedSecret"],"type":"object","properties":{"ipAddress":{"type":"string","description":"RADIUS Server IP Address"},"port":{"type":"integer","description":"RADIUS Server Port","format":"int32"},"sharedSecret":{"type":"string","description":"Shared Secret to access the RADIUS server"},"otpPinFirst":{"type":"boolean","description":"Sequence order of concatenated PIN and one-time token","default":true},"failoverServer":{"$ref":"#/components/schemas/FailoverServer"}},"description":"Request model for creating a RADIUS 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","serverAdminPassword","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"},"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."},"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"},"CreateOAuthClientRequest":{"required":["clientName","grantTypes"],"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.","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":"&#128640; Since v4.22.0\n\nValidity of the approval interval in seconds.","format":"int32"}},"description":"Request model for creating an OAuth client"},"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"},"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"},"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"},"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"},"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"},"userId":{"type":"integer","description":"&#128679; Deprecated since v4.2.0\n\nUnique identifier for the user","format":"int64","deprecated":true},"groupId":{"type":"integer","description":"&#128679; Deprecated since v4.2.0\n\nUnique identifier for the group","format":"int64","deprecated":true}},"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},"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"},"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":"&#128640; Since v4.22.0\n\nTime the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime 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":"&#128679; Deprecated since v4.10.0\n\nIs 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"},"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":"&#128640; Since v4.22.0\n\nTime the node was created on external file system","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime the content of a node was last modified on external file system","format":"date-time"}},"description":"Request model for updating room's metadata"},"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"},"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"},"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"},"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":"&#128679; Deprecated since v4.11.0\n\nUnique identifier for the user\n\nuse `id` from `UserInfo` instead","format":"int64","deprecated":true},"login":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nUser login name","deprecated":true},"displayName":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nDisplay name\n\nuse information from `UserInfo` instead to combine a display name","deprecated":true},"email":{"type":"string","description":"&#128679; Deprecated since v4.11.0\n\nEmail \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"},"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"},"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"},"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]},"hasRecycleBin":{"type":"boolean","description":"&#128679; Deprecated since v4.10.0\n\nIs recycle bin active (for rooms only)\n\nRecycle bin is always on (disabling is not possible).","deprecated":true}},"description":"Request model for configuring a room"},"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"},"SoftwareVersionData":{"required":["buildDate","restApiVersion","scmRevisionNumber","sdsServerVersion"],"type":"object","properties":{"restApiVersion":{"type":"string","description":"REST API version"},"sdsServerVersion":{"type":"string","description":"DRACOON server version"},"buildDate":{"type":"string","description":"Build date","format":"date-time"},"scmRevisionNumber":{"type":"string","description":"Revision number"},"isDracoonCloud":{"type":"boolean","description":"&#128640; Since v4.24.0\n\nDetermines 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"},"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":"&#128640; Since v4.13.0\n\nDefines if login fields should be hidden"},"s3Hosts":{"type":"array","description":"&#128640; Since v4.14.0\n\nList of S3 Hosts for CSP header","items":{"type":"string","description":"List of S3 Hosts for CSP header"}},"s3EnforceDirectUpload":{"type":"boolean","description":"&#128640; Since v4.15.0\n\nDetermines whether S3 direct upload is enforced or not"},"useS3Storage":{"type":"boolean","description":"&#128640; Since v4.21.0\n\nDefines if S3 is used as storage backend"},"authMethods":{"type":"array","description":"&#128679; Deprecated since v4.13.0\n\nAuthentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`\n\nuse `authData` instead","deprecated":true,"items":{"$ref":"#/components/schemas/AuthMethod"}}},"description":"System information (default language and authentication methods)"},"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"},"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"},"SdsServerTime":{"type":"object","properties":{"time":{"type":"string","description":"DRACOON server time","format":"date-time"}},"description":"DRACOON server time"},"PublicDownloadTokenGenerateRequest":{"type":"object","properties":{"password":{"type":"string","description":"Password (only for password-protected shares)"}},"description":"Request model for generating download URL"},"PublicDownloadTokenGenerateResponse":{"required":["token"],"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL"},"token":{"type":"string","description":"&#128679; Deprecated since v4.3.0\n\nDownload token","deprecated":true}},"description":"Download URL"},"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":"&#128640; Since v4.11.0\n\nDetermines whether Download Share has a limit for amount of downloads"},"mediaType":{"type":"string","description":"&#128640; Since v4.11.0\n\n* `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"}},"description":"Download Share information"},"PublicUploadShare":{"required":["createdAt","creatorName","isProtected","maxSlots"],"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":"&#128640; Since v4.11.0\n\nCreator name"},"creatorUsername":{"type":"string","description":"&#128640; Since v4.11.0\n\nCreator username"},"maxSlots":{"type":"integer","description":"&#128679; Deprecated since v4.2.0\n\nMaximal amount of files to upload","format":"int32","deprecated":true},"maxSize":{"type":"number","description":"&#128679; Deprecated since v4.2.0\n\nMaximal total size of uploaded files (in bytes)","format":"double","deprecated":true}},"description":"Upload Share information"},"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"},"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"},"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":"&#128640; Since v4.15.0\n\nUpload direct to S3","default":false},"timestampCreation":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime the node was created on external file system\n\n(default: current server datetime in UTC format)","format":"date-time"},"timestampModification":{"type":"string","description":"&#128640; Since v4.22.0\n\nTime 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"},"token":{"type":"string","description":"&#128679; Deprecated since v4.3.0\n\nUpload token","deprecated":true}},"description":"Upload channel information"},"PublicLicenseInfo":{"required":["state"],"type":"object","properties":{"state":{"type":"string","description":"Current status of the license","enum":["valid","exceeding","expiring","expired","exceeded","invalid"]}},"description":"Public license 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"},"enforceLoginPasswordChange":{"type":"boolean","description":"&#128679; Deprecated since v4.24.0\n\nDetermines whether a login password change should be enforced for all users\n\nOnly takes effect, if login password policies get stricter","deprecated":true,"default":false}},"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"}},"securitySchemes":{"oauth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"/oauth/authorize","tokenUrl":"/oauth/token","scopes":{"all":"every operation is allowed"}}}}}}}