{"openapi":"3.0.1","servers":[{"url":"/api"}],"info":{"contact":{"x-twitter":"dracoongmbh"},"description":"REST Web Services for DRACOON<br><br>This page provides an overview of all available and documented DRACOON APIs, which are grouped by tags.<br>Each tag provides a collection of APIs that are intended for a specific area of the DRACOON.<br><br><a title='Developer Information' href='https://developer.dracoon.com'>Developer Information</a>&emsp;&emsp;<a title='Get SDKs on GitHub' href='https://github.com/dracoon'>Get SDKs on GitHub</a><br><br><a title='Terms of service' href='https://www.dracoon.com/terms/general-terms-and-conditions/'>Terms of service</a>","title":"DRACOON API","version":"4.42.3","x-apisguru-categories":["cloud"],"x-logo":{"url":"https://twitter.com/dracoongmbh/profile_image?size=original"},"x-origin":[{"format":"openapi","url":"https://dracoon.team/api/spec_v4/","version":"3.0"}],"x-providerName":"dracoon.team"},"security":[{"oauth2":[]}],"tags":[{"description":"Role user management","name":"roles"},{"description":"User operations","name":"user"},{"description":"Configuration","name":"config"},{"description":"User management","name":"users"},{"description":"Client resources","name":"resources"},{"description":"System settings (mail server, logging, branding, default values etc.)","name":"system-settings-config"},{"description":"Public API (upload / download shares, software information)","name":"public"},{"description":"System settings (authentication methods)","name":"system-auth-config"},{"description":"File download without authentication headers","name":"downloads"},{"description":"Provisioning","name":"provisioning"},{"description":"Authentication","name":"auth"},{"description":"File upload without authentication headers","name":"uploads"},{"description":"Customer settings","name":"settings"},{"description":"System settings (policies)","name":"system-policies-config"},{"description":"Upload and Download Shares","name":"shares"},{"description":"System settings (storage)","name":"system-storage-config"},{"description":"User groups","name":"groups"},{"description":"Internal non-public APIs","name":"internal"},{"description":"System events log","name":"eventlog"},{"description":"File system objects (rooms, folders, files)","name":"nodes"}],"paths":{"/v4/auth/login":{"post":{"deprecated":true,"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":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10100":{"description":"\n* [-10100] Invalid authentication method","summary":"Invalid authentication method","value":{"code":400,"debugInfo":"Invalid authentication method","errorCode":-10100,"message":"Bad Request"}},"-80013":{"description":"\n* [-80013] Invalid JSON object","summary":"Invalid JSON object","value":{"code":400,"debugInfo":"Invalid JSON object","errorCode":-80013,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10011":{"description":"\n* [-10011] Wrong username or password","summary":"Wrong username or password","value":{"code":401,"debugInfo":"Wrong username or password","errorCode":-10011,"message":"Unauthorized"}},"-10110":{"description":"\n* [-10110] Second factor token not valid","summary":"Second factor token not valid","value":{"code":400,"debugInfo":"Second factor token not valid","errorCode":-10110,"message":"Bad Request"}},"-90060":{"description":"\n* [-90060] User import not allowed","summary":"User import not allowed","value":{"code":401,"debugInfo":"User import not allowed","errorCode":-90060,"message":"Unauthorized"}},"-90061":{"description":"\n* [-90061] Invalid Active Directory entry","summary":"Invalid Active Directory entry","value":{"code":401,"debugInfo":"Invalid Active Directory entry","errorCode":-90061,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-10003":{"description":"\n* [-10003] User is locked by an administrator","summary":"User is locked by an administrator","value":{"code":403,"debugInfo":"User is locked by an administrator","errorCode":-10003,"message":"Forbidden"}},"-10004":{"description":"\n* [-10004] User has expired","summary":"User has expired","value":{"code":403,"debugInfo":"User has expired","errorCode":-10004,"message":"Forbidden"}},"-10005":{"description":"\n* [-10005] User is temporarily locked","summary":"User is temporarily locked","value":{"code":403,"debugInfo":"User is temporarily locked","errorCode":-10005,"message":"Forbidden"}},"-10007":{"description":"\n* [-10007] Customer is locked","summary":"Customer is locked","value":{"code":403,"debugInfo":"Customer is locked","errorCode":-10007,"message":"Forbidden"}},"-70505":{"description":"\n* [-70505] Maximum number of users reached","summary":"Maximum number of users reached","value":{"code":403,"debugInfo":"Maximum number of users reached","errorCode":-70505,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90050":{"description":"\n* [-90050] Active Directory configuration not found","summary":"Active Directory configuration not found","value":{"code":404,"debugInfo":"Active Directory configuration not found","errorCode":-90050,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10108":{"description":"\n* [-10108] RADIUS requests Access-Challenge workflow\n\nPlease notice the `replyState` and `replyMessage`","summary":"RADIUS requests Access-Challenge workflow","value":"{\n  \"code\": 412,\n  \"message\": \"Precondition Failed\",\n  \"debugInfo\": \"RADIUS requests Access-Challenge workflow\",\n  \"errorCode\": -10108\",\n  \"replyState\": \"...\",\n  \"replyMessage\": \"...\"\n}"}},"schema":{"$ref":"#/components/schemas/RadiusChallengeResponse"}}},"description":"Precondition Failed"},"502":{"content":{"application/json":{"examples":{"-90055":{"description":"\n* [-90055] Invalid Active Directory configuration","summary":"Invalid Active Directory configuration","value":{"code":502,"debugInfo":"Invalid Active Directory configuration","errorCode":-90055,"message":"Bad Gateway"}},"-90070":{"description":"\n* [-90070] RADIUS connection failed","summary":"RADIUS connection failed","value":{"code":502,"debugInfo":"RADIUS connection failed","errorCode":-90070,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Gateway"}},"security":[],"summary":"Authenticate user (Login)","tags":["auth"]}},"/v4/auth/openid/login":{"get":{"deprecated":true,"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":[{"description":"Issuer identifier of the OpenID Connect identity provider","in":"query","name":"issuer","required":true,"schema":{"type":"string"}},{"description":"Redirect URI to complete the OpenID Connect authentication","in":"query","name":"redirect_uri","required":true,"schema":{"type":"string"}},{"deprecated":true,"description":"Language ID or ISO 639-1 code","in":"query","name":"language","required":true,"schema":{"type":"string"}},{"description":"Flag to test the authentication parameters.\n\nIf the request is valid, the API will respond with `204 No Content`.","in":"query","name":"test","required":true,"schema":{"type":"boolean"}}],"responses":{"204":{"description":"No Content"},"302":{"description":"Found"},"400":{"content":{"application/json":{"examples":{"-10010":{"description":"\n* [-10010] Not supported language","summary":"Not supported language","value":{"code":400,"debugInfo":"Not supported language","errorCode":-10010,"message":"Bad Request"}},"-10100":{"description":"\n* [-10100] Invalid authentication method","summary":"Invalid authentication method","value":{"code":400,"debugInfo":"Invalid authentication method","errorCode":-10100,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-90043":{"description":"\n* [-90043] Invalid authentication state","summary":"Invalid authentication state","value":{"code":400,"debugInfo":"Invalid authentication state","errorCode":-90043,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-90048":{"description":"\n* [-90048] Invalid OpenID Connect user information","summary":"Invalid OpenID Connect user information","value":{"code":401,"debugInfo":"Invalid OpenID Connect user information","errorCode":-90048,"message":"Unauthorized"}},"-90060":{"description":"\n* [-90060] User import not allowed","summary":"User import not allowed","value":{"code":401,"debugInfo":"User import not allowed","errorCode":-90060,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-10003":{"description":"\n* [-10003] User is locked by an administrator","summary":"User is locked by an administrator","value":{"code":403,"debugInfo":"User is locked by an administrator","errorCode":-10003,"message":"Forbidden"}},"-10004":{"description":"\n* [-10004] User has expired","summary":"User has expired","value":{"code":403,"debugInfo":"User has expired","errorCode":-10004,"message":"Forbidden"}},"-10005":{"description":"\n* [-10005] User is temporarily locked","summary":"User is temporarily locked","value":{"code":403,"debugInfo":"User is temporarily locked","errorCode":-10005,"message":"Forbidden"}},"-10007":{"description":"\n* [-10007] Customer is locked","summary":"Customer is locked","value":{"code":403,"debugInfo":"Customer is locked","errorCode":-10007,"message":"Forbidden"}},"-70505":{"description":"\n* [-70505] Maximum number of users reached","summary":"Maximum number of users reached","value":{"code":403,"debugInfo":"Maximum number of users reached","errorCode":-70505,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}},"-90041":{"description":"\n* [-90041] Unknown identity provider","summary":"Unknown identity provider","value":{"code":404,"debugInfo":"Unknown identity provider","errorCode":-90041,"message":"Not Found"}},"-90042":{"description":"\n* [-90042] Unknown redirect URI","summary":"Unknown redirect URI","value":{"code":404,"debugInfo":"Unknown redirect URI","errorCode":-90042,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"502":{"content":{"application/json":{"examples":{"-90044":{"description":"\n* [-90044] Identity token retrieval failed","summary":"Identity token retrieval failed","value":{"code":502,"debugInfo":"Identity token retrieval failed","errorCode":-90044,"message":"Bad Gateway"}},"-90045":{"description":"\n* [-90045] Identity token validation failed","summary":"Identity token validation failed","value":{"code":502,"debugInfo":"Identity token validation failed","errorCode":-90045,"message":"Bad Gateway"}},"-90046":{"description":"\n* [-90046] User information retrieval failed","summary":"User information retrieval failed","value":{"code":502,"debugInfo":"User information retrieval failed","errorCode":-90046,"message":"Bad Gateway"}},"-90047":{"description":"\n* [-90047] Invalid OpenID Connect IDP configuration","summary":"Invalid OpenID Connect IDP configuration","value":{"code":502,"debugInfo":"Invalid OpenID Connect IDP configuration","errorCode":-90047,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Gateway"}},"security":[],"summary":"Initiate OpenID Connect authentication","tags":["auth"]},"post":{"deprecated":true,"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":[{"description":"Authorization code","in":"query","name":"code","required":true,"schema":{"type":"string"}},{"description":"Identity token","in":"query","name":"id_token","required":false,"schema":{"type":"string"}},{"description":"Authentication state","in":"query","name":"state","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10010":{"description":"\n* [-10010] Not supported language","summary":"Not supported language","value":{"code":400,"debugInfo":"Not supported language","errorCode":-10010,"message":"Bad Request"}},"-10100":{"description":"\n* [-10100] Invalid authentication method","summary":"Invalid authentication method","value":{"code":400,"debugInfo":"Invalid authentication method","errorCode":-10100,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-90043":{"description":"\n* [-90043] Invalid authentication state","summary":"Invalid authentication state","value":{"code":400,"debugInfo":"Invalid authentication state","errorCode":-90043,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-90048":{"description":"\n* [-90048] Invalid OpenID Connect user information","summary":"Invalid OpenID Connect user information","value":{"code":401,"debugInfo":"Invalid OpenID Connect user information","errorCode":-90048,"message":"Unauthorized"}},"-90060":{"description":"\n* [-90060] User import not allowed","summary":"User import not allowed","value":{"code":401,"debugInfo":"User import not allowed","errorCode":-90060,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-10003":{"description":"\n* [-10003] User is locked by an administrator","summary":"User is locked by an administrator","value":{"code":403,"debugInfo":"User is locked by an administrator","errorCode":-10003,"message":"Forbidden"}},"-10004":{"description":"\n* [-10004] User has expired","summary":"User has expired","value":{"code":403,"debugInfo":"User has expired","errorCode":-10004,"message":"Forbidden"}},"-10005":{"description":"\n* [-10005] User is temporarily locked","summary":"User is temporarily locked","value":{"code":403,"debugInfo":"User is temporarily locked","errorCode":-10005,"message":"Forbidden"}},"-10007":{"description":"\n* [-10007] Customer is locked","summary":"Customer is locked","value":{"code":403,"debugInfo":"Customer is locked","errorCode":-10007,"message":"Forbidden"}},"-70505":{"description":"\n* [-70505] Maximum number of users reached","summary":"Maximum number of users reached","value":{"code":403,"debugInfo":"Maximum number of users reached","errorCode":-70505,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}},"-90041":{"description":"\n* [-90041] Unknown identity provider","summary":"Unknown identity provider","value":{"code":404,"debugInfo":"Unknown identity provider","errorCode":-90041,"message":"Not Found"}},"-90042":{"description":"\n* [-90042] Unknown redirect URI","summary":"Unknown redirect URI","value":{"code":404,"debugInfo":"Unknown redirect URI","errorCode":-90042,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"502":{"content":{"application/json":{"examples":{"-90044":{"description":"\n* [-90044] Identity token retrieval failed","summary":"Identity token retrieval failed","value":{"code":502,"debugInfo":"Identity token retrieval failed","errorCode":-90044,"message":"Bad Gateway"}},"-90045":{"description":"\n* [-90045] Identity token validation failed","summary":"Identity token validation failed","value":{"code":502,"debugInfo":"Identity token validation failed","errorCode":-90045,"message":"Bad Gateway"}},"-90046":{"description":"\n* [-90046] User information retrieval failed","summary":"User information retrieval failed","value":{"code":502,"debugInfo":"User information retrieval failed","errorCode":-90046,"message":"Bad Gateway"}},"-90047":{"description":"\n* [-90047] Invalid OpenID Connect IDP configuration","summary":"Invalid OpenID Connect IDP configuration","value":{"code":502,"debugInfo":"Invalid OpenID Connect IDP configuration","errorCode":-90047,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Gateway"}},"security":[],"summary":"Complete OpenID Connect authentication","tags":["auth"]}},"/v4/auth/ping":{"get":{"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":{"content":{"text/plain":{"examples":{"0":{"description":"Example ping response","summary":"Ping response","value":"OK Tue Apr 04 13:37:00 UTC 2020"}},"schema":{"type":"string"}}},"description":"OK"},"406":{"content":{"text/plain":{"examples":{"null":{"description":"Acceptable Content-Types are: `[text/plain]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Ping","tags":["auth"]}},"/v4/auth/recover_username":{"post":{"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":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80009":{"description":"\n* [-80009] Invalid email address","summary":"Invalid email address","value":{"code":400,"debugInfo":"Invalid email address","errorCode":-80009,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Recover username","tags":["auth"]}},"/v4/auth/reset_password":{"post":{"description":"### Description:  \nRequest an email with a password reset token for a certain user to reset password.\n\n### Precondition:\nRegistered user account.\n\n### Postcondition:\nProvided user receives email with password reset token.\n\n### Further Information:\nNone.","operationId":"requestPasswordReset","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-10013":{"description":"\n* [-10013] Not valid IETF language tag","summary":"Not valid IETF language tag","value":{"code":400,"debugInfo":"Not valid IETF language tag","errorCode":-10013,"message":"Bad Request"}},"-10105":{"description":"\n* [-10105] Password cannot be reset for this user","summary":"Password cannot be reset for this user","value":{"code":400,"debugInfo":"Password cannot be reset for this user","errorCode":-10105,"message":"Bad Request"}},"-10107":{"description":"\n* [-10107] Password can only be reset every 5 minutes","summary":"Password can only be reset every 5 minutes","value":{"code":400,"debugInfo":"Password can only be reset every 5 minutes","errorCode":-10107,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request password reset","tags":["auth"]}},"/v4/auth/reset_password/{token}":{"get":{"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":[{"description":"Password reset token","in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordTokenValidateResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10001":{"description":"\n* [-10001] Password reset token is modified","summary":"Password reset token is modified","value":{"code":400,"debugInfo":"Password reset token is modified","errorCode":-10001,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"examples":{"null":{"description":"Token not found","summary":"Token not found","value":{"code":404,"debugInfo":"Token not found","errorCode":null,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Validate information for password reset","tags":["auth"]},"put":{"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":[{"description":"Password reset token","in":"path","name":"token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordWithTokenRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-10002":{"description":"\n* [-10002] Password is not secure","summary":"Password is not secure","value":{"code":400,"debugInfo":"Password is not secure","errorCode":-10002,"message":"Bad Request"}},"-10105":{"description":"\n* [-10105] Password cannot be reset for this user","summary":"Password cannot be reset for this user","value":{"code":400,"debugInfo":"Password cannot be reset for this user","errorCode":-10105,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"404":{"content":{"application/json":{"examples":{"null":{"description":"Token not found","summary":"Token not found","value":{"code":404,"debugInfo":"Token not found","errorCode":null,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Reset password","tags":["auth"]}},"/v4/config/info/defaults":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemDefaults"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request default values","tags":["config"]}},"/v4/config/info/general":{"get":{"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| `subscriptionPlan` | Subscription Plan. <br> 0 = Pro, 1 = Premium, 2 = Basic | `Integer` |\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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralSettingsInfo"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request general settings","tags":["config"]}},"/v4/config/info/infrastructure":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfrastructureProperties"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request infrastructure properties","tags":["config"]}},"/v4/config/info/notifications/channels":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of notification channels","tags":["config"]}},"/v4/config/info/policies/algorithms":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlgorithmVersionInfoList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request algorithms","tags":["config"]}},"/v4/config/info/policies/classifications":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.30.0</h3>\n\n### Description:\nRetrieve a list of classification policies:\n* `shareClassificationPolicies`\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of configured classification policies is returned.\n\n### Further Information:\n`classificationRequiresSharePassword`: When a node has this classification or higher, it cannot be shared without a password. If the node is an encrypted file this policy has no effect. `0` means no password will be enforced.\n","operationId":"requestClassificationPoliciesConfigInfo","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassificationPoliciesConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"summary":"Request classification policies","tags":["config"]}},"/v4/config/info/policies/guest_users":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.40.0</h3>\n\n### Description:\nRetrieve a list of guest users policies.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of configured guest users policies is returned.\n\n### Further Information:\nNone.","operationId":"requestGuestUsersPoliciesConfigInfo","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestUsersPoliciesConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"summary":"Request guest users policies","tags":["config"]}},"/v4/config/info/policies/passwords":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPoliciesConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"summary":"Request password policies","tags":["config"]}},"/v4/config/info/product_packages":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.38.0</h3>\n\n### Description:  \nReturns a list of product packages.\n\n### Precondition:\nAuthenticated user\n\n### Postcondition:\nList of Product Packages is returned.\n\n### Further Information:\n","operationId":"requestProductPackages","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPackageResponseList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of product packages","tags":["config"]}},"/v4/config/info/product_packages/current":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.38.0</h3>\n\n### Description:  \nReturns a list of currently enabled product packages.\n\n### Precondition:\nAuthenticated user\n\n### Postcondition:\nList of currently enabled Product Packages is returned.\n\n### Further Information:\n","operationId":"requestCurrentProductPackages","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPackageResponseList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of currently enabled product packages","tags":["config"]}},"/v4/config/info/s3_tags":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}},"-90032":{"description":"\n* [-90032] S3 tags are disabled","summary":"S3 tags are disabled","value":{"code":412,"debugInfo":"S3 tags are disabled","errorCode":-90032,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of configured S3 tags","tags":["config"]}},"/v4/config/settings":{"get":{"deprecated":true,"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigOptionList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request system settings","tags":["config"]},"put":{"deprecated":true,"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigOptionList"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80009":{"description":"\n* [-80009] Invalid email address","summary":"Invalid email address","value":{"code":400,"debugInfo":"Invalid email address","errorCode":-80009,"message":"Bad Request"}},"-80012":{"description":"\n* [-80012] Illegal protocol","summary":"Illegal protocol","value":{"code":400,"debugInfo":"Illegal protocol","errorCode":-80012,"message":"Bad Request"}},"-80014":{"description":"\n* [-80014] Invalid hostname or IP address","summary":"Invalid hostname or IP address","value":{"code":400,"debugInfo":"Invalid hostname or IP address","errorCode":-80014,"message":"Bad Request"}},"-80018":{"description":"\n* [-80018] Not between 0 and 9999","summary":"Not between 0 and 9999","value":{"code":400,"debugInfo":"Not between 0 and 9999","errorCode":-80018,"message":"Bad Request"}},"-80029":{"description":"\n* [-80029] Global configuration value cannot be overwritten","summary":"Global configuration value cannot be overwritten","value":{"code":400,"debugInfo":"Global configuration value cannot be overwritten","errorCode":-80029,"message":"Bad Request"}},"-90001":{"description":"\n* [-90001] Invalid settings configuration","summary":"Invalid settings configuration","value":{"code":400,"debugInfo":"Invalid settings configuration","errorCode":-90001,"message":"Bad Request"}},"-90010":{"description":"\n* [-90010] Client-side encryption is already enable and cannot be disabled","summary":"Client-side encryption is already enable and cannot be disabled","value":{"code":400,"debugInfo":"Client-side encryption is already enable and cannot be disabled","errorCode":-90010,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90000":{"description":"\n* [-90000] Settings key not found","summary":"Settings key not found","value":{"code":404,"debugInfo":"Settings key not found","errorCode":-90000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update system settings","tags":["config"]}},"/v4/downloads/avatar/{user_id}/{uuid}":{"get":{"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":[{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"UUID of the avatar","in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/octet-stream":{"examples":{"0":{"description":"`application/octet-stream` is returned","summary":"Avatar response","value":"[... byte content ...]"}},"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/octet-stream":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/octet-stream":{"examples":{"-70028":{"description":"\n* [-70028] Avatar not found","summary":"Avatar not found","value":{"code":404,"debugInfo":"Avatar not found","errorCode":-70028,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/octet-stream]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Download avatar","tags":["downloads"]}},"/v4/downloads/zip/{token}":{"get":{"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":[{"description":"Download token","in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/octet-stream":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/octet-stream":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-20502":{"description":"\n* [-20502] Invalid (up-) download token","summary":"Invalid (up-) download token","value":{"code":401,"debugInfo":"Invalid (up-) download token","errorCode":-20502,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/octet-stream":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-20502] Invalid (up-) download token","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/octet-stream]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Download ZIP archive","tags":["downloads"]}},"/v4/downloads/{token}":{"get":{"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":[{"description":"Download token","in":"path","name":"token","required":true,"schema":{"type":"string"}},{"description":"Range \n\ne.g. `bytes=0-999`","in":"header","name":"Range","required":false,"schema":{"type":"string"}},{"description":"Always return `application/octet-stream` instead of specific mimetype","in":"query","name":"generic_mimetype","required":false,"schema":{"type":"boolean"}},{"description":"Use Content-Disposition: `inline` instead of `attachment`","in":"query","name":"inline","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"},"206":{"description":"Partial Content"},"400":{"content":{"application/octet-stream":{"examples":{"-40002":{"description":"\n* [-40002] (Target) room is encrypted","summary":"(Target) room is encrypted","value":{"code":400,"debugInfo":"(Target) room is encrypted","errorCode":-40002,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/octet-stream":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-20502":{"description":"\n* [-20502] Invalid (up-) download token","summary":"Invalid (up-) download token","value":{"code":401,"debugInfo":"Invalid (up-) download token","errorCode":-20502,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/octet-stream":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/octet-stream":{"examples":{"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-20502] Invalid (up-) download token","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/octet-stream]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"416":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Download range doesn't match pattern","summary":"Range Not Satisfiable","value":{"code":416,"debugInfo":"Download range '...' doesn't match pattern '...'","errorCode":null,"message":"Range Not Satisfiable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Range Not Satisfiable"}},"security":[],"summary":"Download file","tags":["downloads"]},"head":{"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":[{"description":"Download token","in":"path","name":"token","required":true,"schema":{"type":"string"}},{"description":"Range \n\ne.g. `bytes=0-999`","in":"header","name":"Range","required":false,"schema":{"type":"string"}},{"description":"Always return `application/octet-stream` instead of specific mimetype","in":"query","name":"generic_mimetype","required":false,"schema":{"type":"boolean"}},{"description":"Use Content-Disposition: `inline` instead of `attachment`","in":"query","name":"inline","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"},"206":{"description":"Partial Content"},"400":{"content":{"application/octet-stream":{"examples":{"-40002":{"description":"\n* [-40002] (Target) room is encrypted","summary":"(Target) room is encrypted","value":{"code":400,"debugInfo":"(Target) room is encrypted","errorCode":-40002,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/octet-stream":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-20502":{"description":"\n* [-20502] Invalid (up-) download token","summary":"Invalid (up-) download token","value":{"code":401,"debugInfo":"Invalid (up-) download token","errorCode":-20502,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/octet-stream":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/octet-stream":{"examples":{"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-20502] Invalid (up-) download token","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/octet-stream]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"416":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Download range doesn't match pattern","summary":"Range Not Satisfiable","value":{"code":416,"debugInfo":"Download range '...' doesn't match pattern '...'","errorCode":null,"message":"Range Not Satisfiable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Range Not Satisfiable"}},"security":[],"summary":"Download file","tags":["downloads"]}},"/v4/eventlog/audits/node_info":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.31.0</h3>\n\n### Description: \nRetrieve a list of all nodes of type room under a certain parent.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read audit log</span> required.\n\n### Postcondition:\nList of rooms.\n\n### Further Information:\nFor rooms on root level, use parent_id = 0.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`nodeName:cn:searchString_1|nodeIsEncrypted:eq:true`  \nFilter by node name containing `searchString_1` **AND** node is encrypted .\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `nodeId` | Node ID filter | `eq` | Node ID equals value. | `positive Integer` |\n| `nodeName` | Node name filter | `cn, eq, sw` | Node name contains / equals / starts with value. | `search String` |\n| `nodeIsEncrypted` | Encrypted node filter | `eq` |  | `true or false` |\n\n</details>\n\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`nodeName:asc`  \nSort by `nodeName` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `nodeId` | Node ID |\n| `nodeName` | Node name |\n\n</details>\n","operationId":"requestAuditNodeInfo","parameters":[{"description":"Parent node ID.\n\nOnly rooms can be parents.\n\nParent ID `0` or empty is the root node.","in":"query","name":"parent_id","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditNodeInfoResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request nodes","tags":["eventlog"]}},"/v4/eventlog/audits/nodes":{"get":{"deprecated":true,"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.32.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\nOutput is limited to **500** entries.  \nFor more results please use filter criteria and the `limit` parameter.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nExcept for `userName`, `userFirstName` and  `userLastName` - these are connected via logical disjunction (**OR**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`userName:cn:searchString_1|userFirstName:cn:searchString_2|nodeId:eq:2`  \nFilter by user login containing `searchString_1` **OR** first name containing `searchString_2` **AND** node ID equals `2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `nodeId` | Node ID filter | `eq` | Node ID equals value. | `positive Integer` |\n| `nodeName` | Node name filter | `cn, eq` | Node name contains / equals value. | `search String` |\n| `nodeParentId` | Node parent ID filter | `eq` | Parent ID equals value. | `positive Integer`<br>Parent ID `0` is the root node. |\n| `userId` | User ID filter | `eq` | User ID equals value. | `positive Integer` |\n| `userName` | Username (login) filter | `cn, eq` | Username contains / equals value. | `search String` |\n| `userFirstName` | User first name filter | `cn, eq` | User first name contains / equals value. | `search String` |\n| `userLastName` | User last name filter | `cn, eq` | User last name contains / equals value. | `search String` |\n| `permissionsManage` | Filter the users that do (not) have `manage` permissions in this room | `eq` |  | `true or false` |\n| `nodeIsEncrypted` | Encrypted node filter | `eq` |  | `true or false` |\n| `nodeHasActivitiesLog` | Activities log filter | `eq` |  | `true or false` |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`nodeHasRecycleBin`</del> | Recycle bin filter<br>**Filter has no effect!** | `eq` |  | `true or false` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`nodeName:asc`  \nSort by `nodeName` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `nodeId` | Node ID |\n| `nodeName` | Node name |\n| `nodeParentId` | Node parent ID |\n| `nodeSize` | Node size |\n| `nodeQuota` | Node quota |\n\n</details>","operationId":"requestAuditNodeUserData","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AuditNodeResponse"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request node assigned users with permissions","tags":["eventlog"]}},"/v4/eventlog/events":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter events from given date \n\ne.g. `2015-12-31T23:59:00`","in":"query","name":"date_start","required":false,"schema":{"type":"string"}},{"description":"Filter events until given date \n\ne.g. `2015-12-31T23:59:00`","in":"query","name":"date_end","required":false,"schema":{"type":"string"}},{"description":"Operation ID \n\ncf. `GET /eventlog/operations`","in":"query","name":"type","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"User ID","in":"query","name":"user_id","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Operation status:\n\n* `0` - Success\n\n* `2` - Error","in":"query","name":"status","required":false,"schema":{"enum":["0","2"],"type":"string"}},{"description":"User client","in":"query","name":"user_client","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEventList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}},"-80026":{"description":"\n* [-80026] Invalid operation ID","summary":"Invalid operation ID","value":{"code":400,"debugInfo":"Invalid operation ID","errorCode":-80026,"message":"Bad Request"}},"-80027":{"description":"\n* [-80027] Invalid operation status","summary":"Invalid operation status","value":{"code":400,"debugInfo":"Invalid operation status","errorCode":-80027,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-20502] Invalid (up-) download token","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json, text/csv]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request system events","tags":["eventlog"]}},"/v4/eventlog/operations":{"get":{"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":[{"description":"Show only deprecated operations","in":"query","name":"is_deprecated","required":false,"schema":{"type":"boolean"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogOperationList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request allowed Log Operations","tags":["eventlog"]}},"/v4/groups":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of user groups","tags":["groups"]},"post":{"description":"### Description:\nCreate a new user group.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.\n\n### Postcondition: \nA new user group is created.\n\n### Further Information:\n* If a group should **NOT** expire, leave `expireAt` empty.\n* Group names are limited to **150** characters\n* Forbidden characters in group name: [`<`, `>`]\n","operationId":"createGroup","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"null":{"description":"Group with specified name already exists","summary":"Group already exists","value":{"code":409,"debugInfo":"Group with specified name already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create new user group","tags":["groups"]}},"/v4/groups/{group_id}":{"delete":{"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":[{"description":"Group ID","in":"path","name":"group_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-30040":{"description":"\n* [-30040] Group which is defined as User Import Group cannot be deleted","summary":"Group which is defined as User Import Group cannot be deleted","value":{"code":400,"debugInfo":"Group which is defined as User Import Group cannot be deleted","errorCode":-30040,"message":"Bad Request"}},"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-71006":{"description":"\n* [-71006] At least one role user / group required","summary":"At least one role user / group required","value":{"code":400,"debugInfo":"At least one role user / group required","errorCode":-71006,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove user group","tags":["groups"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Group ID","in":"path","name":"group_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request user group","tags":["groups"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Group ID","in":"path","name":"group_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroupRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-71006":{"description":"\n* [-71006] At least one role user / group required","summary":"At least one role user / group required","value":{"code":400,"debugInfo":"At least one role user / group required","errorCode":-71006,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"null":{"description":"Group with specified name already exists","summary":"Group already exists","value":{"code":409,"debugInfo":"Group with specified name already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update user group's metadata","tags":["groups"]}},"/v4/groups/{group_id}/last_admin_rooms":{"get":{"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":[{"description":"Group ID","in":"path","name":"group_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LastAdminGroupRoomList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request rooms where the group is defined as last admin group","tags":["groups"]}},"/v4/groups/{group_id}/roles":{"get":{"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":[{"description":"Group ID","in":"path","name":"group_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of roles assigned to the group","tags":["groups"]}},"/v4/groups/{group_id}/rooms":{"get":{"deprecated":true,"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Group ID","in":"path","name":"group_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomTreeDataList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request rooms granted to the group or / and rooms that can be granted","tags":["groups"]}},"/v4/groups/{group_id}/users":{"delete":{"description":"### Description:  \nRemove group members.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.\n\n### Postcondition: \nProvided users are removed from the user group.\n\n### Further Information:\nBatch function.  \nThe provided users are removed from the user group. Maximum number of users to remove in one request is 200.","operationId":"removeGroupMembers","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Group ID","in":"path","name":"group_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeGroupMembersRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-71006":{"description":"\n* [-71006] At least one role user / group required","summary":"At least one role user / group required","value":{"code":400,"debugInfo":"At least one role user / group required","errorCode":-71006,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80063":{"description":"\n* [-80063] Too many items","summary":"Too many items","value":{"code":400,"debugInfo":"Too many items","errorCode":-80063,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove group members","tags":["groups"]},"get":{"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":[{"description":"Group ID","in":"path","name":"group_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupUserList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request group member users or / and users who can become a member","tags":["groups"]},"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Group ID","in":"path","name":"group_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeGroupMembersRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-70510":{"description":"\n* [-70510] User already in the group","summary":"User already in the group","value":{"code":400,"debugInfo":"User already in the group","errorCode":-70510,"message":"Bad Request"}},"-71012":{"description":"\n* [-71012] Guest user can not be part of group","summary":"Guest user can not be part of group","value":{"code":400,"debugInfo":"Guest user can not be part of group","errorCode":-71012,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Add group members","tags":["groups"]}},"/v4/internal/tenant/subscription_plan":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.36.0</h3>\n\n### Description:\nGet the subscription plan id of the current tenant\n\n### Precondition:\nValid `X-SDS-Service-Token` Header\n\n### Postcondition:\nReturns SubscriptionPlanResponse model that includes subscription plan id.\n\n### Further Information:\nNone.\n","operationId":"internalRequestSubscriptionPlan","parameters":[{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPlanResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"}},"security":[],"summary":"Request subscription plan","tags":["internal"]},"put":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.36.0</h3>\n\n### Description: \nChange the subscription plan id of the current tenant\n\n### Precondition:\nValid `X-SDS-Service-Token` Header\n\n### Postcondition:\nThe subscription plan of the current tenant is set to the given value.  \nReturns SubscriptionPlanResponse model that includes subscription plan id.\n\n### Further Information:\nNone.\n","operationId":"internalSetSubscriptionPlan","parameters":[{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPlanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPlanResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80003":{"description":"\n* [-80003] Invalid positive number or zero","summary":"Invalid positive number or zero","value":{"code":400,"debugInfo":"Invalid positive number or zero","errorCode":-80003,"message":"Bad Request"}},"-92001":{"description":"\n* [-92001] Invalid parameter value","summary":"Invalid parameter value","value":{"code":400,"debugInfo":"Invalid parameter value","errorCode":-92001,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"}},"security":[],"summary":"Set subscription plan","tags":["internal"]}},"/v4/nodes":{"delete":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteNodesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40009":{"description":"\n* [-40009] Room which is defined as Home Room Parent cannot be deleted","summary":"Room which is defined as Home Room Parent cannot be deleted","value":{"code":400,"debugInfo":"Room which is defined as Home Room Parent cannot be deleted","errorCode":-40009,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"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":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove nodes","tags":["nodes"]},"get":{"description":"### Description:  \nProvides a hierarchical list of file system nodes (rooms, folders or files) of a given parent that are accessible by the current user.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of nodes is returned.\n\n### Further Information:\n`EncryptionInfo` is **NOT** provided.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`type:eq:room:folder|perm:eq:read`  \nGet nodes where type equals (`room` **OR** `folder`) **AND** user has `read` permissions.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `type` | Node type filter | `eq` | Node type equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `type:eq:room:folder` | <ul><li>`room`</li><li>`folder`</li><li>`file`</li></ul> |\n| `perm` | Permission filter | `eq` | Permission equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `perm:eq:read:create:delete` | <ul><li>`manage`</li><li>`read`</li><li>`change`</li><li>`create`</li><li>`delete`</li><li>`manageDownloadShare`</li><li>`manageUploadShare`</li><li>`canReadRecycleBin`</li><li>`canRestoreRecycleBin`</li><li>`canDeleteRecycleBin`</li></ul> |\n| `childPerm` | Same as `perm`, but less restrictive (applies to child nodes only).<br>Child nodes of the parent node which do not meet the filter condition<br>are **NOT** returned. | `eq` | cf. `perm` | cf. `perm` |\n| `name` | Node name filter | `cn, eq` | Node name contains / equals value. | `search String` |\n| `encrypted` | Node encryption status filter | `eq` |  | `true or false` |\n| `branchVersion` | Node branch version filter | `ge, le` | Branch version is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `branchVersion:ge:1423280937404`&#124;`branchVersion:le:1523280937404` | `version number` |\n| `timestampCreation` | Creation timestamp filter | `ge, le` | Creation timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampCreation:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampCreation:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |\n| `timestampModification` | Modification timestamp filter | `ge, le` | Modification timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampModification:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampModification:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |\n| `referenceId`           | Reference ID filter               | `eq` | Reference ID equals value.   | `Integer ` |\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.  \nNodes are sorted by type first, then by sent sort string.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|fileType:asc`  \nSort by `name` descending **AND** `fileType` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Node name |\n| `createdAt` | Creation date |\n| `createdBy` | Creator first name, last name |\n| `updatedAt` | Last modification date |\n| `updatedBy` | Last modifier first name, last name |\n| `fileType` | File type (extension) |\n| `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |\n| `size` | Node size |\n| `cntDeletedVersions` | Number of deleted versions of this file / folder (**NOT** recursive; for files and folders only) |\n| `timestampCreation` | Creation timestamp |\n| `timestampModification` | Modification timestamp |\n\n</details>\n\n### Deprecated sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| <del>`cntChildren`</del> | Number of direct children (**NOT** recursive; for rooms and folders only) |\n\n</details>","operationId":"requestNodes","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"deprecated":true,"description":"* `0` - top level nodes only\n\n* `n` (any positive number) - include `n` levels starting from the current node","in":"query","name":"depth_level","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Parent node ID.\n\nOnly rooms and folders can be parents.\n\nParent ID `0` or empty is the root node.","in":"query","name":"parent_id","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Show all rooms for management perspective.\n\nOnly possible for _Rooms Managers_ / _Room Admins_.\n\nFor all other users, it will be ignored.","in":"query","name":"room_manager","required":false,"schema":{"type":"boolean"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request\n* [-80024] Invalid range parameters"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of nodes","tags":["nodes"]}},"/v4/nodes/comments/{comment_id}":{"delete":{"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":[{"description":"Comment ID","in":"path","name":"comment_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-41400":{"description":"\n* [-41400] Comment not found","summary":"Comment not found","value":{"code":404,"debugInfo":"Comment not found","errorCode":-41400,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove node comment","tags":["nodes"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Comment ID","in":"path","name":"comment_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeNodeCommentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80039":{"description":"\n* [-80039] Comment was deleted, change is not allowed","summary":"Comment was deleted, change is not allowed","value":{"code":400,"debugInfo":"Comment was deleted, change is not allowed","errorCode":-80039,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-41400":{"description":"\n* [-41400] Comment not found","summary":"Comment not found","value":{"code":404,"debugInfo":"Comment not found","errorCode":-41400,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Edit node comment","tags":["nodes"]}},"/v4/nodes/deleted_nodes":{"delete":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeletedNodesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-41100":{"description":"\n* [-41100] Deleted node not found","summary":"Deleted node not found","value":{"code":404,"debugInfo":"Deleted node not found","errorCode":-41100,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove nodes from recycle bin","tags":["nodes"]}},"/v4/nodes/deleted_nodes/actions/restore":{"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreDeletedNodesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40002":{"description":"\n* [-40002] (Target) room is encrypted","summary":"(Target) room is encrypted","value":{"code":400,"debugInfo":"(Target) room is encrypted","errorCode":-40002,"message":"Bad Request"}},"-40013":{"description":"\n* [-40013] Encrypted file cannot be restored inside another than its original room","summary":"Encrypted file cannot be restored inside another than its original room","value":{"code":400,"debugInfo":"Encrypted file cannot be restored inside another than its original room","errorCode":-40013,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80034":{"description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","summary":"Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"0":{"description":"List of not restored nodes due to non-existence","summary":"Not restored nodes","value":"{\n  \"items\": [\n    {\n      \"parentId\": #,\n      \"parentPath\": \"...\",\n      \"name\": \"...\",\n      \"type\": \"...\",\n      \"id\": #\n    }\n  ]\n}"},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-41100":{"description":"\n* [-41100] Deleted node not found","summary":"Deleted node not found","value":{"code":404,"debugInfo":"Deleted node not found","errorCode":-41100,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-40010":{"description":"\n* [-40010] Container cannot be overwritten","summary":"Container cannot be overwritten","value":{"code":409,"debugInfo":"Container cannot be overwritten","errorCode":-40010,"message":"Conflict"}},"-41001":{"description":"\n* [-41001] Node exists already","summary":"Node exists already","value":{"code":409,"debugInfo":"Node exists already","errorCode":-41001,"errorInfos":{"conflictNodes":[{"errorCode":-41001,"errorMessage":"Node exists already","name":"...","nodeId":"#"}]},"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"summary":"Restore deleted nodes","tags":["nodes"]}},"/v4/nodes/deleted_nodes/{deleted_node_id}":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Deleted node ID","in":"path","name":"deleted_node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedNode"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-41100":{"description":"\n* [-41100] Deleted node not found","summary":"Deleted node not found","value":{"code":404,"debugInfo":"Deleted node not found","errorCode":-41100,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request deleted node","tags":["nodes"]}},"/v4/nodes/favorites":{"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFavoritesBulkRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"*/*":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80063":{"description":"\n* [-80063] Too many items","summary":"Too many items","value":{"code":400,"debugInfo":"Too many items","errorCode":-80063,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"*/*":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"*/*":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"*/*":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"*/*":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"*/*":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Mark or unmark a list of nodes (room, folder or file) as favorite","tags":["nodes"]}},"/v4/nodes/files":{"put":{"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 files is 200\n","operationId":"updateFiles","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFilesBulkRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"*/*":{"examples":{"-40756":{"description":"\n* [-40756] Invalid classification code","summary":"Invalid classification code","value":{"code":400,"debugInfo":"Invalid classification code","errorCode":-40756,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}},"-80063":{"description":"\n* [-80063] Too many items","summary":"Too many items","value":{"code":400,"debugInfo":"Too many items","errorCode":-80063,"message":"Bad Request"}},"-80064":{"description":"\n* [-80064] Policy Violation","summary":"Policy Violation","value":{"code":400,"debugInfo":"Policy Violation","errorCode":-80064,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"*/*":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"*/*":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"*/*":{"examples":{"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"*/*":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"*/*":{"examples":{"null":{"description":"Node with specified name already exists","summary":"Node already exists","value":{"code":409,"debugInfo":"Node with specified name already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"*/*":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Updates a list of  file’s metadata","tags":["nodes"]}},"/v4/nodes/files/keys":{"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFileKeySetBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":403,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Forbidden"}},"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Set file keys for a list of users and files","tags":["nodes"]}},"/v4/nodes/files/uploads":{"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFileUploadRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFileUploadResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-40756":{"description":"\n* [-40756] Invalid classification code","summary":"Invalid classification code","value":{"code":400,"debugInfo":"Invalid classification code","errorCode":-40756,"message":"Bad Request"}},"-41200":{"description":"\n* [-41200] Path is too long","summary":"Path is too long","value":{"code":400,"debugInfo":"Path is too long","errorCode":-41200,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}},"-80037":{"description":"\n* [-80037] Exceeds maximum data length for AES GCM encryption","summary":"Exceeds maximum data length for AES GCM encryption","value":{"code":400,"debugInfo":"Exceeds maximum data length for AES GCM encryption","errorCode":-80037,"message":"Bad Request"}},"-90033":{"description":"\n* [-90033] S3 direct upload is enforced","summary":"S3 direct upload is enforced","value":{"code":400,"debugInfo":"S3 direct upload is enforced","errorCode":-90033,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"504":{"content":{"application/json":{"examples":{"-90027":{"description":"\n* [-90027] S3 connection failed","summary":"S3 connection failed","value":{"code":504,"debugInfo":"S3 connection failed","errorCode":-90027,"message":"Gateway Timeout"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Gateway Timeout"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"summary":"Create new file upload channel","tags":["nodes"]}},"/v4/nodes/files/uploads/{upload_id}":{"delete":{"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":[{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"504":{"content":{"application/json":{"examples":{"-90027":{"description":"\n* [-90027] S3 connection failed","summary":"S3 connection failed","value":{"code":504,"debugInfo":"S3 connection failed","errorCode":-90027,"message":"Gateway Timeout"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Gateway Timeout"}},"summary":"Cancel file upload","tags":["nodes"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3FileUploadStatus"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-90034":{"description":"\n* [-90034] Corresponding S3 upload ID not found","summary":"Corresponding S3 upload ID not found","value":{"code":404,"debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request status of S3 file upload","tags":["nodes"]},"post":{"deprecated":true,"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":[{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}},{"description":"Content-Range \n\ne.g. `bytes 0-999/3980`","in":"header","name":"Content-Range","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"description":"File","format":"binary","type":"string"}},"required":["file"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80021":{"description":"\n* [-80021] Incorrect upload Content-Range","summary":"Incorrect upload Content-Range","value":{"code":400,"debugInfo":"Incorrect upload Content-Range","errorCode":-80021,"message":"Bad Request"}},"-80037":{"description":"\n* [-80037] Exceeds maximum data length for AES GCM encryption","summary":"Exceeds maximum data length for AES GCM encryption","value":{"code":400,"debugInfo":"Exceeds maximum data length for AES GCM encryption","errorCode":-80037,"message":"Bad Request"}},"-90033":{"description":"\n* [-90033] S3 direct upload is enforced","summary":"S3 direct upload is enforced","value":{"code":400,"debugInfo":"S3 direct upload is enforced","errorCode":-90033,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"summary":"Upload file","tags":["nodes"]},"put":{"deprecated":true,"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteUploadRequest"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"Created"},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"Accepted"},"400":{"content":{"application/json":{"examples":{"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-40763":{"description":"\n* [-40763] File key must be set for an upload into encrypted room","summary":"File key must be set for an upload into encrypted room","value":{"code":400,"debugInfo":"File key must be set for an upload into encrypted room","errorCode":-40763,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80034":{"description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","summary":"Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034,"message":"Bad Request"}},"-90033":{"description":"\n* [-90033] S3 direct upload is enforced","summary":"S3 direct upload is enforced","value":{"code":400,"debugInfo":"S3 direct upload is enforced","errorCode":-90033,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-40010":{"description":"\n* [-40010] Container cannot be overwritten","summary":"Container cannot be overwritten","value":{"code":409,"debugInfo":"Container cannot be overwritten","errorCode":-40010,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"summary":"Complete file upload","tags":["nodes"]}},"/v4/nodes/files/uploads/{upload_id}/s3":{"put":{"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":[{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteS3FileUploadRequest"}}},"required":true},"responses":{"202":{"description":"Accepted"},"400":{"content":{"application/json":{"examples":{"-20503":{"description":"\n* [-20503] Upload channel is closed","summary":"Upload channel is closed","value":{"code":400,"debugInfo":"Upload channel is closed","errorCode":-20503,"message":"Bad Request"}},"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-40763":{"description":"\n* [-40763] File key must be set for an upload into encrypted room","summary":"File key must be set for an upload into encrypted room","value":{"code":400,"debugInfo":"File key must be set for an upload into encrypted room","errorCode":-40763,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80034":{"description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","summary":"Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034,"message":"Bad Request"}},"-80045":{"description":"\n* [-80045] Invalid Etag(s)","summary":"Invalid Etag(s)","value":{"code":400,"debugInfo":"Invalid Etag(s)","errorCode":-80045,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-90034":{"description":"\n* [-90034] Corresponding S3 upload ID not found","summary":"Corresponding S3 upload ID not found","value":{"code":404,"debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-40010":{"description":"\n* [-40010] Container cannot be overwritten","summary":"Container cannot be overwritten","value":{"code":409,"debugInfo":"Container cannot be overwritten","errorCode":-40010,"message":"Conflict"}},"-41001":{"description":"\n* [-41001] Node exists already","summary":"Node exists already","value":{"code":409,"debugInfo":"Node exists already","errorCode":-41001,"errorInfos":{"conflictNodes":[{"errorCode":-41001,"errorMessage":"Node exists already","name":"...","nodeId":"#"}]},"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"504":{"content":{"application/json":{"examples":{"-90027":{"description":"\n* [-90027] S3 connection failed","summary":"S3 connection failed","value":{"code":504,"debugInfo":"S3 connection failed","errorCode":-90027,"message":"Gateway Timeout"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Gateway Timeout"}},"summary":"Complete S3 file upload","tags":["nodes"]}},"/v4/nodes/files/uploads/{upload_id}/s3_urls":{"post":{"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":[{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePresignedUrlsRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresignedUrlList"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-20503":{"description":"\n* [-20503] Upload channel is closed","summary":"Upload channel is closed","value":{"code":400,"debugInfo":"Upload channel is closed","errorCode":-20503,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80046":{"description":"\n* [-80046] Invalid size","summary":"Invalid size","value":{"code":400,"debugInfo":"Invalid size","errorCode":-80046,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-90034":{"description":"\n* [-90034] Corresponding S3 upload ID not found","summary":"Corresponding S3 upload ID not found","value":{"code":404,"debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"504":{"content":{"application/json":{"examples":{"-90027":{"description":"\n* [-90027] S3 connection failed","summary":"S3 connection failed","value":{"code":504,"debugInfo":"S3 connection failed","errorCode":-90027,"message":"Gateway Timeout"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Gateway Timeout"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"summary":"Generate presigned URLs for S3 file upload","tags":["nodes"]}},"/v4/nodes/files/versions/{reference_id}":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.37.0</h3>\n\n### Description:  \nRequest a list of file versions. Both nodes and deleted nodes are included, depending on the user's permissions.\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read/read recycle bin</span> permissions in parent room.\n\n### Postcondition:\nList of file versions is returned.\n\n### Further Information:\nMaximum number of file versions is 500. The list is sorted by ID DESC.\n","operationId":"requestFileVersionList","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Reference ID","in":"path","name":"reference_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileVersionList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of file versions","tags":["nodes"]}},"/v4/nodes/files/{file_id}":{"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"File ID","in":"path","name":"file_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFileRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-40756":{"description":"\n* [-40756] Invalid classification code","summary":"Invalid classification code","value":{"code":400,"debugInfo":"Invalid classification code","errorCode":-40756,"message":"Bad Request"}},"-41200":{"description":"\n* [-41200] Path is too long","summary":"Path is too long","value":{"code":400,"debugInfo":"Path is too long","errorCode":-41200,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}},"-80064":{"description":"\n* [-80064] Policy Violation","summary":"Policy Violation","value":{"code":400,"debugInfo":"Policy Violation","errorCode":-80064,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"null":{"description":"Node with specified name already exists","summary":"Node already exists","value":{"code":409,"debugInfo":"Node with specified name already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Updates a file’s metadata","tags":["nodes"]}},"/v4/nodes/files/{file_id}/data_room_file_key":{"get":{"deprecated":true,"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":[{"description":"File ID","in":"path","name":"file_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Version (NEW)","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileKey"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-40761":{"description":"\n* [-40761] File key not found","summary":"File key not found","value":{"code":404,"debugInfo":"File key not found","errorCode":-40761,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request room rescue key","tags":["nodes"]}},"/v4/nodes/files/{file_id}/data_space_file_key":{"get":{"deprecated":true,"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":[{"description":"File ID","in":"path","name":"file_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Version (NEW)","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileKey"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-40761":{"description":"\n* [-40761] File key not found","summary":"File key not found","value":{"code":404,"debugInfo":"File key not found","errorCode":-40761,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request system rescue key","tags":["nodes"]}},"/v4/nodes/files/{file_id}/downloads":{"post":{"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":[{"description":"File ID","in":"path","name":"file_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadTokenGenerateResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Generate download URL","tags":["nodes"]}},"/v4/nodes/files/{file_id}/user_file_key":{"get":{"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":[{"description":"File ID","in":"path","name":"file_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Version (NEW)","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileKey"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-40761":{"description":"\n* [-40761] File key not found","summary":"File key not found","value":{"code":404,"debugInfo":"File key not found","errorCode":-40761,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request user's file key","tags":["nodes"]}},"/v4/nodes/folders":{"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFolderRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-41200":{"description":"\n* [-41200] Path is too long","summary":"Path is too long","value":{"code":400,"debugInfo":"Path is too long","errorCode":-41200,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"null":{"description":"Node with specified name already exists","summary":"Node already exists","value":{"code":409,"debugInfo":"Node with specified name already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create new folder","tags":["nodes"]}},"/v4/nodes/folders/{folder_id}":{"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Folder ID","in":"path","name":"folder_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFolderRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-41200":{"description":"\n* [-41200] Path is too long","summary":"Path is too long","value":{"code":400,"debugInfo":"Path is too long","errorCode":-41200,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"null":{"description":"Node with specified name already exists","summary":"Node already exists","value":{"code":409,"debugInfo":"Node with specified name already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Updates folder’s metadata","tags":["nodes"]}},"/v4/nodes/missingFileKeys":{"get":{"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":[{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Room ID","in":"query","name":"room_id","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"File ID","in":"query","name":"file_id","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"User ID","in":"query","name":"user_id","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Determines which key should be used (NEW)","in":"query","name":"use_key","required":false,"schema":{"enum":["room_rescue_key","system_rescue_key","previous_user_key","previous_room_rescue_key","previous_system_rescue_key"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissingKeysResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-40024":{"description":"\n* [-40024] Room is not configured with Room Rescue Key","summary":"Room is not configured with Room Rescue Key","value":{"code":400,"debugInfo":"Room is not configured with Room Rescue Key","errorCode":-40024,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}},"-92001":{"description":"\n* [-92001] Invalid parameter value","summary":"Invalid parameter value","value":{"code":400,"debugInfo":"Invalid parameter value","errorCode":-92001,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"-70029":{"description":"\n* [-70029] Illegal user ID","summary":"Illegal user ID","value":{"code":403,"debugInfo":"Illegal user ID","errorCode":-70029,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request files without user's file key","tags":["nodes"]}},"/v4/nodes/rooms":{"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoomRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-40017":{"description":"\n* [-40017] Inheritance of permissions cannot be enabled for top level rooms","summary":"Inheritance of permissions cannot be enabled for top level rooms","value":{"code":400,"debugInfo":"Inheritance of permissions cannot be enabled for top level rooms","errorCode":-40017,"message":"Bad Request"}},"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-40756":{"description":"\n* [-40756] Invalid classification code","summary":"Invalid classification code","value":{"code":400,"debugInfo":"Invalid classification code","errorCode":-40756,"message":"Bad Request"}},"-41200":{"description":"\n* [-41200] Path is too long","summary":"Path is too long","value":{"code":400,"debugInfo":"Path is too long","errorCode":-41200,"message":"Bad Request"}},"-71013":{"description":"\n* [-71013] A guest user can not be a data room admin","summary":"A guest user can not be a data room admin","value":{"code":400,"debugInfo":"A guest user can not be a data room admin","errorCode":-71013,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80018":{"description":"\n* [-80018] Not between 0 and 9999","summary":"Not between 0 and 9999","value":{"code":400,"debugInfo":"Not between 0 and 9999","errorCode":-80018,"message":"Bad Request"}},"-80025":{"description":"\n* [-80025] Invalid new group member acceptance value","summary":"Invalid new group member acceptance value","value":{"code":400,"debugInfo":"Invalid new group member acceptance value","errorCode":-80025,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"null":{"description":"Node with specified name already exists","summary":"Node already exists","value":{"code":409,"debugInfo":"Node with specified name already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create new room","tags":["nodes"]}},"/v4/nodes/rooms/pending":{"get":{"description":"### Description:  \nRequests a list of user-room assignments by groups that have **NOT** been approved yet  \nThese can have the state:\n* **WAITING**  \n* **DENIED**  \n* **ACCEPTED**  \n\n**ACCEPTED** assignments are already removed from the list.\n\n### Precondition:\nNone.\n\n### Postcondition:\nList of user-room assignments is returned.\n\n### Further Information:\nRoom administrators **SHOULD** regularly request pending assingments to provide access to rooms for other users.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`state:eq:WAITING`  \nFilter assignments by state `WAITING`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `userId` | User ID filter | `eq` | User ID equals value. | `positive Integer` |\n| `groupId` | Group ID filter | `eq` | Group ID equals value. | `positive Integer` |\n| `roomId` | Room ID filter | `eq` | Room ID equals value. | `positive Integer` |\n| `state` | Assignment state | `eq` | Assignment state equals value. | `WAITING or DENIED` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`userId:desc|state:asc`  \nSort by `userId` descending **AND** `state` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `userId` | User ID |\n| `groupId` | Group ID |\n| `roomId` | Room ID |\n| `state` | State |\n\n</details>","operationId":"requestPendingAssignments","parameters":[{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingAssignmentList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40301":{"description":"\n* [-40301] Invalid pending assignment status","summary":"Invalid pending assignment status","value":{"code":400,"debugInfo":"Invalid pending assignment status","errorCode":-40301,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request user-room assignments per group","tags":["nodes"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingAssignmentsRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40301":{"description":"\n* [-40301] Invalid pending assignment status","summary":"Invalid pending assignment status","value":{"code":400,"debugInfo":"Invalid pending assignment status","errorCode":-40301,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40300":{"description":"\n* [-40300] Pending assignment not found","summary":"Pending assignment not found","value":{"code":404,"debugInfo":"Pending assignment not found","errorCode":-40300,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Handle user-room assignments per group","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}":{"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoomRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40021":{"description":"\n* [-40021] Room which is defined as Home Room Parent cannot be edited","summary":"Room which is defined as Home Room Parent cannot be edited","value":{"code":400,"debugInfo":"Room which is defined as Home Room Parent cannot be edited","errorCode":-40021,"message":"Bad Request"}},"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-41200":{"description":"\n* [-41200] Path is too long","summary":"Path is too long","value":{"code":400,"debugInfo":"Path is too long","errorCode":-41200,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"null":{"description":"Node with specified name already exists","summary":"Node already exists","value":{"code":409,"debugInfo":"Node with specified name already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Updates room’s metadata","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/config":{"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigRoomRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-40015":{"description":"\n* [-40015] Room inheritance already enabled","summary":"Room inheritance already enabled","value":{"code":400,"debugInfo":"Room inheritance already enabled","errorCode":-40015,"message":"Bad Request"}},"-40016":{"description":"\n* [-40016] Room inheritance already disabled","summary":"Room inheritance already disabled","value":{"code":400,"debugInfo":"Room inheritance already disabled","errorCode":-40016,"message":"Bad Request"}},"-40017":{"description":"\n* [-40017] Inheritance of permissions cannot be enabled for top level rooms","summary":"Inheritance of permissions cannot be enabled for top level rooms","value":{"code":400,"debugInfo":"Inheritance of permissions cannot be enabled for top level rooms","errorCode":-40017,"message":"Bad Request"}},"-40019":{"description":"\n* [-40019] Takeover of permissions cannot be enabled for top level rooms","summary":"Takeover of permissions cannot be enabled for top level rooms","value":{"code":400,"debugInfo":"Takeover of permissions cannot be enabled for top level rooms","errorCode":-40019,"message":"Bad Request"}},"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-40756":{"description":"\n* [-40756] Invalid classification code","summary":"Invalid classification code","value":{"code":400,"debugInfo":"Invalid classification code","errorCode":-40756,"message":"Bad Request"}},"-41200":{"description":"\n* [-41200] Path is too long","summary":"Path is too long","value":{"code":400,"debugInfo":"Path is too long","errorCode":-41200,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80018":{"description":"\n* [-80018] Not between 0 and 9999","summary":"Not between 0 and 9999","value":{"code":400,"debugInfo":"Not between 0 and 9999","errorCode":-80018,"message":"Bad Request"}},"-80025":{"description":"\n* [-80025] Invalid new group member acceptance value","summary":"Invalid new group member acceptance value","value":{"code":400,"debugInfo":"Invalid new group member acceptance value","errorCode":-80025,"message":"Bad Request"}},"-80028":{"description":"\n* [-80028] Due to existing dependency the input must be null","summary":"Due to existing dependency the input must be null","value":{"code":400,"debugInfo":"Due to existing dependency the input must be null","errorCode":-80028,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"null":{"description":"Node with specified name already exists","summary":"Node already exists","value":{"code":409,"debugInfo":"Node with specified name already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Configure room","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/encrypt":{"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EncryptRoomRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-40002":{"description":"\n* [-40002] (Target) room is encrypted","summary":"(Target) room is encrypted","value":{"code":400,"debugInfo":"(Target) room is encrypted","errorCode":-40002,"message":"Bad Request"}},"-40003":{"description":"\n* [-40003] Room with files cannot be unencrypted","summary":"Room with files cannot be unencrypted","value":{"code":400,"debugInfo":"Room with files cannot be unencrypted","errorCode":-40003,"message":"Bad Request"}},"-40004":{"description":"\n* [-40004] Only one room emergency password (rescue key) is allowed","summary":"Only one room emergency password (rescue key) is allowed","value":{"code":400,"debugInfo":"Only one room emergency password (rescue key) is allowed","errorCode":-40004,"message":"Bad Request"}},"-40008":{"description":"\n* [-40008] Room with files cannot be encrypted","summary":"Room with files cannot be encrypted","value":{"code":400,"debugInfo":"Room with files cannot be encrypted","errorCode":-40008,"message":"Bad Request"}},"-40012":{"description":"\n* [-40012] Room with not empty recycle bin cannot be encrypted","summary":"Room with not empty recycle bin cannot be encrypted","value":{"code":400,"debugInfo":"Room with not empty recycle bin cannot be encrypted","errorCode":-40012,"message":"Bad Request"}},"-40018":{"description":"\n* [-40018] Room with not empty recycle bin cannot be decrypted","summary":"Room with not empty recycle bin cannot be decrypted","value":{"code":400,"debugInfo":"Room with not empty recycle bin cannot be decrypted","errorCode":-40018,"message":"Bad Request"}},"-40023":{"description":"\n* [-40023] Room with shares cannot be encrypted","summary":"Room with shares cannot be encrypted","value":{"code":400,"debugInfo":"Room with shares cannot be encrypted","errorCode":-40023,"message":"Bad Request"}},"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-70023":{"description":"\n* [-70023] Invalid private key format","summary":"Invalid private key format","value":{"code":400,"debugInfo":"Invalid private key format","errorCode":-70023,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Encrypt room","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/events":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter events from given date \n\ne.g. `2015-12-31T23:59:00`","in":"query","name":"date_start","required":false,"schema":{"type":"string"}},{"description":"Filter events until given date \n\ne.g. `2015-12-31T23:59:00`","in":"query","name":"date_end","required":false,"schema":{"type":"string"}},{"description":"Operation ID \n\ncf. `GET /eventlog/operations`","in":"query","name":"type","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"User ID","in":"query","name":"user_id","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Operation status:\n\n* `0` - Success\n\n* `2` - Error","in":"query","name":"status","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEventList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}},"-80026":{"description":"\n* [-80026] Invalid operation ID","summary":"Invalid operation ID","value":{"code":400,"debugInfo":"Invalid operation ID","errorCode":-80026,"message":"Bad Request"}},"-80027":{"description":"\n* [-80027] Invalid operation status","summary":"Invalid operation status","value":{"code":400,"debugInfo":"Invalid operation status","errorCode":-80027,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request events of a room","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/groups":{"delete":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGroupsDeleteBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Revoke granted group(s) from room","tags":["nodes"]},"get":{"description":"### Description:  \nRetrieve a list of groups that are and / or can be granted to the room.\n\n### Precondition:\nAny permissions on target room.\n\n### Postcondition:\nList of groups is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isGranted:eq:false|name:cn:searchString`  \nGet all groups that are **NOT** granted to this room **AND** whose name is like `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `name` | Group name filter | `cn` | Group name contains value. | `search String` |\n| `groupId` | Group ID filter | `eq` | Group ID equals value. | `positive Integer` |\n| `isGranted` | Filter the groups that have (no) access to this room.<br>**This filter is only available for room administrators.**<br>**Other users can only look for groups in their rooms, so this filter is `true` and **CANNOT** be overridden.** | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n| `permissionsManage` | Filter the groups that do (not) have `manage` permissions in this room. | `eq` |  | `true or false` |\n| `effectivePerm` | Filter groups with DIRECT or DIRECT **AND** EFFECTIVE permissions<ul><li>`false`: DIRECT permissions</li><li>`true`: DIRECT **AND** EFFECTIVE permissions</li></ul>DIRECT means: e.g. room administrator grants `read` permissions to group of users **directly** on desired room.<br>EFFECTIVE means: e.g. group of users gets `read` permissions on desired room through **inheritance**. | `eq` |  | `true or false`<br>default: `false` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc`  \nSort by `name` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Group name |\n\n</details>","operationId":"requestRoomGroups","parameters":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGroupList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request room granted group(s) or / and group(s) that can be granted","tags":["nodes"]},"put":{"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":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGroupsAddBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-40022":{"description":"\n* [-40022] Manage rights on homerooms cannot be given to other users","summary":"Manage rights on homerooms cannot be given to other users","value":{"code":400,"debugInfo":"Manage rights on homerooms cannot be given to other users","errorCode":-40022,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80025":{"description":"\n* [-80025] Invalid new group member acceptance value","summary":"Invalid new group member acceptance value","value":{"code":400,"debugInfo":"Invalid new group member acceptance value","errorCode":-80025,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Add or change room granted group(s)","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/guest_users":{"put":{"description":"### Description:\nAdd guest users to a room\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>. To add new members, the user needs the right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; non-members add</span>, which is included in any role.\n<span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Guest User Policy</span> needs to be enabled.\n\n\n### Postcondition:\nNew or existing Guest-Users now have guest-permissions for this room\n\n### Further Information:\nBatch function.","operationId":"addRoomGuestUsers","parameters":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomGuestUserAddRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80009":{"description":"\n* [-80009] Invalid email address","summary":"Invalid email address","value":{"code":400,"debugInfo":"Invalid email address","errorCode":-80009,"message":"Bad Request"}},"-80064":{"description":"\n* [-80064] Policy Violation","summary":"Policy Violation","value":{"code":400,"debugInfo":"Policy Violation","errorCode":-80064,"message":"Bad Request"}},"-80068":{"description":"\n* [-80068] Invalid Permission","summary":"Invalid Permission","value":{"code":400,"debugInfo":"Invalid Permission","errorCode":-80068,"message":"Bad Request"}},"-80069":{"description":"\n* [-80069] User with email/username already exists","summary":"User with email/username already exists","value":{"code":400,"debugInfo":"User with email/username already exists","errorCode":-80069,"message":"Bad Request"}},"-80070":{"description":"\n* [-80070] Guest already in room","summary":"Guest already in room","value":{"code":400,"debugInfo":"Guest already in room","errorCode":-80070,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70505":{"description":"\n* [-70505] Maximum number of users reached","summary":"Maximum number of users reached","value":{"code":403,"debugInfo":"Maximum number of users reached","errorCode":-70505,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Add guest users to a room","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/keypair":{"delete":{"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":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Version (NEW)","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40007":{"description":"\n* [-40007] No room emergency password (rescue key) found","summary":"No room emergency password (rescue key) found","value":{"code":404,"debugInfo":"No room emergency password (rescue key) found","errorCode":-40007,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove rooms's rescue key pair","tags":["nodes"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Version (NEW)","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40007":{"description":"\n* [-40007] No room emergency password (rescue key) found","summary":"No room emergency password (rescue key) found","value":{"code":404,"debugInfo":"No room emergency password (rescue key) found","errorCode":-40007,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request room rescue key","tags":["nodes"]},"post":{"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":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-70023":{"description":"\n* [-70023] Invalid private key format","summary":"Invalid private key format","value":{"code":400,"debugInfo":"Invalid private key format","errorCode":-70023,"message":"Bad Request"}},"-70027":{"description":"\n* [-70027] Customer encryption is not enabled","summary":"Customer encryption is not enabled","value":{"code":400,"debugInfo":"Customer encryption is not enabled","errorCode":-70027,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40007":{"description":"\n* [-40007] No room emergency password (rescue key) found","summary":"No room emergency password (rescue key) found","value":{"code":404,"debugInfo":"No room emergency password (rescue key) found","errorCode":-40007,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-70021":{"description":"\n* [-70021] User does already have a keypair","summary":"User does already have a keypair","value":{"code":409,"debugInfo":"User does already have a keypair","errorCode":-70021,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Set room's rescue key pair","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/keypairs":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserKeyPairContainer"},"type":"array"}}},"description":"OK"},"204":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserKeyPairContainer"},"type":"array"}}},"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40007":{"description":"\n* [-40007] No room emergency password (rescue key) found","summary":"No room emergency password (rescue key) found","value":{"code":404,"debugInfo":"No room emergency password (rescue key) found","errorCode":-40007,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request all room rescue key pairs","tags":["nodes"]},"post":{"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":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyPairRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-70023":{"description":"\n* [-70023] Invalid private key format","summary":"Invalid private key format","value":{"code":400,"debugInfo":"Invalid private key format","errorCode":-70023,"message":"Bad Request"}},"-70027":{"description":"\n* [-70027] Customer encryption is not enabled","summary":"Customer encryption is not enabled","value":{"code":400,"debugInfo":"Customer encryption is not enabled","errorCode":-70027,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40007":{"description":"\n* [-40007] No room emergency password (rescue key) found","summary":"No room emergency password (rescue key) found","value":{"code":404,"debugInfo":"No room emergency password (rescue key) found","errorCode":-40007,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create key pair and preserve copy of old private key","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/policies":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.32.0</h3>\n\n### Description:  \nRetrieve the room policies:\n* `defaultExpirationPeriod`\n\n### Precondition:\nUser has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in that room.\n\n### Postcondition:\nRoom Policies returned.\n\n### Further Information:\n`defaultExpirationPeriod`: Default policy room expiration period in seconds.\nAll existing and future files in a room will have their expiration date set to this period after their respective upload.\nExisting files can be set to expire earlier afterwards.\n`0` means no default expiration policy will be enforced. \n\n\n","operationId":"requestRoomPolicies","parameters":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomPolicies"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request Room Policies","tags":["nodes"]},"put":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.32.0</h3>\n\n### Description:  \nRetrieve the room policies:\n* `defaultExpirationPeriod`\n\n### Precondition:\nUser needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.\n\n### Postcondition:\nRoom policy is set.\n\n### Further Information:\n`defaultExpirationPeriod`: Default policy room expiration period in seconds.\nAll existing and future files in a room will have their expiration date set to this period after their respective upload.\nExisting files can be set to expire earlier afterwards.\n`0` means no default expiration policy will be enforced. This removes all expiration dates from existing files.","operationId":"setRoomPolicies","parameters":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomPoliciesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Set room policies","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/s3_tags":{"get":{"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":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-90029":{"description":"\n* [-90029] S3 tag not found","summary":"S3 tag not found","value":{"code":404,"debugInfo":"S3 tag not found","errorCode":-90029,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}},"-90032":{"description":"\n* [-90032] S3 tags are disabled","summary":"S3 tags are disabled","value":{"code":412,"debugInfo":"S3 tags are disabled","errorCode":-90032,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of all assigned S3 tags to the room","tags":["nodes"]},"post":{"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":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagIds"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-90029":{"description":"\n* [-90029] S3 tag not found","summary":"S3 tag not found","value":{"code":404,"debugInfo":"S3 tag not found","errorCode":-90029,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}},"-90032":{"description":"\n* [-90032] S3 tags are disabled","summary":"S3 tags are disabled","value":{"code":412,"debugInfo":"S3 tags are disabled","errorCode":-90032,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Set S3 tags for a room","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/users":{"delete":{"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":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomUsersDeleteBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Revoke granted user(s) from room","tags":["nodes"]},"get":{"description":"### Description:  \nRetrieve a list of users that are and / or can be granted to the room.\n\n### Precondition:\nAny permissions on target room.\n\n### Postcondition:\nNone.\n\n### Further Information:\nList of users is returned.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n> `permissionsManage:eq:true|user:cn:searchString`  \nGet all users that have `manage` permissions to this room **AND** whose (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) is like `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `user` | User filter | `cn` | User contains value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`). | `search String` |\n| `userId` | User ID filter | `eq` | User ID equals value. | `positive Integer` |\n| `isGranted` | Filter the users that have (no) access to this room.<br>**This filter is only available for room administrators.**<br>**Other users can only look for users in their rooms, so this filter is `true` and **CANNOT** be overridden.** | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n| `permissionsManage` | Filter the users that do (not) have `manage` permissions in this room. | `eq` |  | `true or false` |\n| `effectivePerm` | Filter users with DIRECT or DIRECT **AND** EFFECTIVE permissions<ul><li>`false`: DIRECT permissions</li><li>`true`: DIRECT **AND** EFFECTIVE permissions</li><li>`any`: DIRECT **AND** EFFECTIVE **AND** OVER GROUP permissions</li></ul>DIRECT means: e.g. room administrator grants `read` permissions to group of users **directly** on desired room.<br>EFFECTIVE means: e.g. group of users gets `read` permissions on desired room through **inheritance**.<br>OVER GROUP means: e.g. user gets `read` permissions on desired room through **group membership**. | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `false` |\n| `hasRole` | User role filter<br>For more Roles information please call `GET /roles API` | `eq`, `neq` | User role  equals value. | <ul><li>`CONFIG_MANAGER` - Manage global configs</li><li>`USER_MANAGER` - Manage Users</li><li>`GROUP_MANAGER` - Manage User-Groups</li><li>`ROOM_MANAGER` - Manage top level Data Rooms</li><li>`LOG_AUDITOR` - Read logs</li><li>`NONMEMBER_VIEWER` - View users and groups when having room manage permission</li><li>`USER` - Regular User role</li><li>`GUEST_USER` - Guest User role</li></ul> |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`displayName`</del> | User display name filter (use `user` filter) | `cn` | User display name contains value (`firstName` **OR** `lastName` **OR** `email`). | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`user:desc`  \nSort by `user` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`user`** | User - sort by `firstName`, `lastName`, `username`, `email` (in this order) |\n\n</details>","operationId":"requestRoomUsers","parameters":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomUserList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request room granted user(s) or / and user(s) that can be granted","tags":["nodes"]},"put":{"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":[{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomUsersAddBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-40022":{"description":"\n* [-40022] Manage rights on homerooms cannot be given to other users","summary":"Manage rights on homerooms cannot be given to other users","value":{"code":400,"debugInfo":"Manage rights on homerooms cannot be given to other users","errorCode":-40022,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80068":{"description":"\n* [-80068] Invalid Permission","summary":"Invalid Permission","value":{"code":400,"debugInfo":"Invalid Permission","errorCode":-80068,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Add or change room granted user(s)","tags":["nodes"]}},"/v4/nodes/rooms/{room_id}/webhooks":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomWebhookList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of webhooks that are assigned or can be assigned to this room","tags":["nodes"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Room ID","in":"path","name":"room_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoomWebhookRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomWebhookList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80010":{"description":"\n* [-80010] Invalid URL","summary":"Invalid URL","value":{"code":400,"debugInfo":"Invalid URL","errorCode":-80010,"message":"Bad Request"}},"-80060":{"description":"\n* [-80060] Invalid event type","summary":"Invalid event type","value":{"code":400,"debugInfo":"Invalid event type","errorCode":-80060,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Assign or unassign webhooks to room","tags":["nodes"]}},"/v4/nodes/search":{"get":{"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| `referenceId`           | Reference ID filter               | `eq` | Reference ID equals value.                                                                                                                                                                                                                                                          | `Integer ` |\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|size:asc`  \nSort by `name` descending **AND** `size` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Node name |\n| `createdAt` | Creation date |\n| `createdBy` | Creator first name, last name |\n| `updatedAt` | Last modification date |\n| `updatedBy` | Last modifier first name, last name |\n| `fileType` | File type (extension) |\n| `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |\n| `size` | Node size |\n| `cntDeletedVersions` | Number of deleted versions of this file / folder (**NOT** recursive; for files and folders only) |\n| `type` | Node type (room, folder, file) |\n| `parentPath` | Parent path |\n| `timestampCreation` | Creation timestamp |\n| `timestampModification` | Modification timestamp |\n\n</details>\n\n### Deprecated sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| <del>`cntChildren`</del> | Number of direct children (**NOT** recursive; for rooms and folders only) |\n\n</details>","operationId":"searchNodes","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Search string","in":"query","name":"search_string","required":true,"schema":{"type":"string"}},{"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","in":"query","name":"depth_level","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Parent node ID.\n\nOnly rooms and folders can be parents.\n\nParent ID `0` or empty is the root node.","in":"query","name":"parent_id","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Search nodes","tags":["nodes"]}},"/v4/nodes/zip":{"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZipDownloadRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadTokenGenerateResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40002":{"description":"\n* [-40002] (Target) room is encrypted","summary":"(Target) room is encrypted","value":{"code":400,"debugInfo":"(Target) room is encrypted","errorCode":-40002,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Generate download URL for ZIP download","tags":["nodes"]}},"/v4/nodes/zip/download":{"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZipDownloadRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/octet-stream":{"examples":{"-40002":{"description":"\n* [-40002] (Target) room is encrypted","summary":"(Target) room is encrypted","value":{"code":400,"debugInfo":"(Target) room is encrypted","errorCode":-40002,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/octet-stream":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/octet-stream":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/octet-stream]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/octet-stream":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Download files / folders as ZIP archive","tags":["nodes"]}},"/v4/nodes/{node_id}":{"delete":{"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":[{"description":"Node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40009":{"description":"\n* [-40009] Room which is defined as Home Room Parent cannot be deleted","summary":"Room which is defined as Home Room Parent cannot be deleted","value":{"code":400,"debugInfo":"Room which is defined as Home Room Parent cannot be deleted","errorCode":-40009,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"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":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove node","tags":["nodes"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request node","tags":["nodes"]}},"/v4/nodes/{node_id}/comments":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Hide deleted comments (default: false)","in":"query","name":"hide_deleted","required":false,"schema":{"type":"boolean"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of node comments","tags":["nodes"]},"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNodeCommentRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create node comment","tags":["nodes"]}},"/v4/nodes/{node_id}/copy_to":{"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Target parent node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CopyNodesRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"Created"},"204":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-40002":{"description":"\n* [-40002] (Target) room is encrypted","summary":"(Target) room is encrypted","value":{"code":400,"debugInfo":"(Target) room is encrypted","errorCode":-40002,"message":"Bad Request"}},"-40014":{"description":"\n* [-40014] File cannot be copied or moved without having a file key","summary":"File cannot be copied or moved without having a file key","value":{"code":400,"debugInfo":"File cannot be copied or moved without having a file key","errorCode":-40014,"message":"Bad Request"}},"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"errorInfos":{"conflictNodes":[{"errorCode":-40755,"errorMessage":"Bad node name","name":"...","nodeId":"#"}]},"message":"Bad Request"}},"-41052":{"description":"\n* [-41052] Rooms cannot be copied or moved","summary":"Rooms cannot be copied or moved","value":{"code":400,"debugInfo":"Rooms cannot be copied or moved","errorCode":-41052,"message":"Bad Request"}},"-41053":{"description":"\n* [-41053] File cannot be target of a copy or move operation","summary":"File cannot be target of a copy or move operation","value":{"code":400,"debugInfo":"File cannot be target of a copy or move operation","errorCode":-41053,"message":"Bad Request"}},"-41054":{"description":"\n* [-41054] Nodes of a copy, move or delete operation must be in same parent","summary":"Nodes of a copy, move or delete operation must be in same parent","value":{"code":400,"debugInfo":"Nodes of a copy, move or delete operation must be in same parent","errorCode":-41054,"message":"Bad Request"}},"-41200":{"description":"\n* [-41200] Path is too long","summary":"Path is too long","value":{"code":400,"debugInfo":"Path is too long","errorCode":-41200,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80034":{"description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","summary":"Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-41050":{"description":"\n* [-41050] Source node not found","summary":"Source node not found","value":{"code":404,"debugInfo":"Source node not found","errorCode":-41050,"message":"Not Found"}},"-41051":{"description":"\n* [-41051] Target node not found","summary":"Target node not found","value":{"code":404,"debugInfo":"Target node not found","errorCode":-41051,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-40010":{"description":"\n* [-40010] Container cannot be overwritten","summary":"Container cannot be overwritten","value":{"code":409,"debugInfo":"Container cannot be overwritten","errorCode":-40010,"message":"Conflict"}},"-41001":{"description":"\n* [-41001] Node exists already","summary":"Node exists already","value":{"code":409,"debugInfo":"Node exists already","errorCode":-41001,"errorInfos":{"conflictNodes":[{"errorCode":-41001,"errorMessage":"Node exists already","name":"...","nodeId":"#"}]},"message":"Conflict"}},"-41304":{"description":"\n* [-41304] Node cannot be copied or moved into its child node","summary":"Node cannot be copied or moved into its child node","value":{"code":409,"debugInfo":"Node cannot be copied or moved into its child node","errorCode":-41304,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"summary":"Copy node(s)","tags":["nodes"]}},"/v4/nodes/{node_id}/deleted_nodes":{"delete":{"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":[{"description":"Room ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80065":{"description":"\n* [-80065] Node must be a room","summary":"Node must be a room","value":{"code":400,"debugInfo":"Node must be a room","errorCode":-80065,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Empty recycle bin","tags":["nodes"]},"get":{"description":"### Description:  \nRetrieve a list of deleted nodes in a recycle bin.\n\n### Precondition:\nUser can access parent room and has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read recycle bin</span> permissions.\n\n### Postcondition:\nList of deleted nodes is returned.\n\n### Further Information:\nOnly room IDs are accepted as parent ID since only rooms may have a recycle bin.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`type:eq:file:folder|name:cn:searchString_1|parentPath:cn:searchString_2`  \nGet deleted nodes where type equals (`file` **OR** `folder`) **AND** deleted node name containing `searchString_1` **AND** deleted node parent path containing `searchString 2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `type` | Node type filter | `eq` | Node type equals value(s).<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `type:eq:folder:file` | <ul><li>`folder`</li><li>`file`</li></ul> |\n| `name` | Node name filter | `cn` | Node name contains value. | `search String` |\n| `parentPath` | Parent path filter | `cn` | Parent path contains value. | `search String` |\n| `timestampCreation` | Creation timestamp filter | `ge, le` | Creation timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampCreation:ge:2016-12-31`&#124;<br>`timestampCreation:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| `timestampModification` | Modification timestamp filter | `ge, le` | Modification timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampModification:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampModification:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.  \nNodes are sorted by type first, then by sent sort string.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|timestampCreation:asc`  \nSort by `name` descending **AND** `timestampCreation` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Node name |\n| `cntVersions` | Number of deleted versions of this file |\n| `firstDeletedAt` | First deleted version |\n| `lastDeletedAt` | Last deleted version |\n| `parentPath` | Parent path of deleted node |\n| `timestampCreation` | Creation timestamp |\n| `timestampModification` | Modification timestamp |\n\n</details>","operationId":"requestDeletedNodesSummary","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Parent ID (can only be a room ID)","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedNodeSummaryList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}},"-80065":{"description":"\n* [-80065] Node must be a room","summary":"Node must be a room","value":{"code":400,"debugInfo":"Node must be a room","errorCode":-80065,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of deleted nodes","tags":["nodes"]}},"/v4/nodes/{node_id}/deleted_nodes/versions":{"get":{"description":"### Description:  \nRetrieve all deleted versions of a node.\n\n### Precondition:\nUser can access parent room and has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read recycle bin</span> permissions.\n\n### Postcondition:\nList of deleted versions of a node is returned.\n\n### Further Information:\nThe node is identified by three parameters:\n* parent ID\n* name\n* type (file, folder).\n\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`expireAt:desc|size:asc`  \nSort by `expireAt` descending **AND** `size` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `expireAt` | Expiration date |\n| `accessedAt` | Last access date |\n| `size` | Node size |\n| `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |\n| `createdAt` | Creation date |\n| `createdBy` | Creator first name, last name |\n| `updatedAt` | Last modification date |\n| `updatedBy` | Last modifier first name, last name |\n| `deletedAt` | Deleted date |\n| `deletedBy` | Deleter first name, last name |\n\n</details>","operationId":"requestDeletedNodeVersions","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Parent ID (room or folder ID)","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Node type","in":"query","name":"type","required":true,"schema":{"type":"string"}},{"description":"Node name","in":"query","name":"name","required":true,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedNodeVersionsList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request deleted versions of nodes","tags":["nodes"]}},"/v4/nodes/{node_id}/favorite":{"delete":{"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":[{"description":"Node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-41301":{"description":"\n* [-41301] Node is not set as favorite","summary":"Node is not set as favorite","value":{"code":400,"debugInfo":"Node is not set as favorite","errorCode":-41301,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Unmark a node (room, folder or file) as favorite","tags":["nodes"]},"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Mark a node (room, folder or file) as favorite","tags":["nodes"]}},"/v4/nodes/{node_id}/move_to":{"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Target parent node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveNodesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"OK"},"204":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-40002":{"description":"\n* [-40002] (Target) room is encrypted","summary":"(Target) room is encrypted","value":{"code":400,"debugInfo":"(Target) room is encrypted","errorCode":-40002,"message":"Bad Request"}},"-40014":{"description":"\n* [-40014] File cannot be copied or moved without having a file key","summary":"File cannot be copied or moved without having a file key","value":{"code":400,"debugInfo":"File cannot be copied or moved without having a file key","errorCode":-40014,"message":"Bad Request"}},"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"errorInfos":{"conflictNodes":[{"errorCode":-40755,"errorMessage":"Bad node name","name":"...","nodeId":"#"}]},"message":"Bad Request"}},"-41052":{"description":"\n* [-41052] Rooms cannot be copied or moved","summary":"Rooms cannot be copied or moved","value":{"code":400,"debugInfo":"Rooms cannot be copied or moved","errorCode":-41052,"message":"Bad Request"}},"-41053":{"description":"\n* [-41053] File cannot be target of a copy or move operation","summary":"File cannot be target of a copy or move operation","value":{"code":400,"debugInfo":"File cannot be target of a copy or move operation","errorCode":-41053,"message":"Bad Request"}},"-41054":{"description":"\n* [-41054] Nodes of a copy, move or delete operation must be in same parent","summary":"Nodes of a copy, move or delete operation must be in same parent","value":{"code":400,"debugInfo":"Nodes of a copy, move or delete operation must be in same parent","errorCode":-41054,"message":"Bad Request"}},"-41200":{"description":"\n* [-41200] Path is too long","summary":"Path is too long","value":{"code":400,"debugInfo":"Path is too long","errorCode":-41200,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80034":{"description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","summary":"Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-41050":{"description":"\n* [-41050] Source node not found","summary":"Source node not found","value":{"code":404,"debugInfo":"Source node not found","errorCode":-41050,"message":"Not Found"}},"-41051":{"description":"\n* [-41051] Target node not found","summary":"Target node not found","value":{"code":404,"debugInfo":"Target node not found","errorCode":-41051,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-40010":{"description":"\n* [-40010] Container cannot be overwritten","summary":"Container cannot be overwritten","value":{"code":409,"debugInfo":"Container cannot be overwritten","errorCode":-40010,"message":"Conflict"}},"-41001":{"description":"\n* [-41001] Node exists already","summary":"Node exists already","value":{"code":409,"debugInfo":"Node exists already","errorCode":-41001,"errorInfos":{"conflictNodes":[{"errorCode":-41001,"errorMessage":"Node exists already","name":"...","nodeId":"#"}]},"message":"Conflict"}},"-41304":{"description":"\n* [-41304] Node cannot be copied or moved into its child node","summary":"Node cannot be copied or moved into its child node","value":{"code":409,"debugInfo":"Node cannot be copied or moved into its child node","errorCode":-41304,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"summary":"Move node(s)","tags":["nodes"]}},"/v4/nodes/{node_id}/parents":{"get":{"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":[{"description":"Node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeParentList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of parent nodes","tags":["nodes"]}},"/v4/provisioning/customers":{"get":{"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 criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`companyName:desc|userUsed:asc`  \nSort by `companyName` descending **AND** `userUsed` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `companyName` | Company name |\n| `customerContractType` | Customer contract type |\n| `trialDaysLeft` | Number of remaining trial days (demo customers) |\n| `providerCustomerId` | Provider Customer ID |\n| `quotaMax` | Maximum quota |\n| `quotaUsed` | Currently used quota |\n| `userMax` | Maximum user number |\n| `userUsed` | Number of registered users |\n| `isLocked` | Lock status of customer |\n| `createdAt` | Creation date |\n| `updatedAt` | Last modification date |\n| `lastLoginAt` | Last login date of any user of this customer |\n\n</details>\n\n### Deprecated sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| <del>`lockStatus`</del> | Lock status of customer |\n\n</details>","operationId":"requestCustomers","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Include custom customer attributes.","in":"query","name":"include_attributes","required":false,"schema":{"type":"boolean"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-1":{"description":"\n* [-1] No tenant found","summary":"No tenant found","value":{"code":400,"debugInfo":"No tenant found","errorCode":-1,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request list of customers","tags":["provisioning"]},"post":{"description":"### Description:\nCreate a new customer.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required.  \n\n### Postcondition:\nA new customer is created.\n\n### Further Information:\nIf no company name is set, first letter of the first name separated by dot followed by last name of the first administrator is used (e.g. `J.Doe`).  \nMax quota has to be at least `1 MB` (= `1.048.576 B`).\n\nIf `basic` authentication is enabled, the first administrator will get `basic` authentication by default.  \nTo create a first administrator without `basic` authentication it **MUST** be disabled explicitly.  \n\nForbidden characters in passwords: [`&`, `'`, `<`, `>`]\n\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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewCustomerRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewCustomerResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-10002":{"description":"\n* [-10002] Password is not secure","summary":"Password is not secure","value":{"code":400,"debugInfo":"Password is not secure","errorCode":-10002,"message":"Bad Request"}},"-10013":{"description":"\n* [-10013] Not valid IETF language tag","summary":"Not valid IETF language tag","value":{"code":400,"debugInfo":"Not valid IETF language tag","errorCode":-10013,"message":"Bad Request"}},"-10100":{"description":"\n* [-10100] Invalid authentication method","summary":"Invalid authentication method","value":{"code":400,"debugInfo":"Invalid authentication method","errorCode":-10100,"message":"Bad Request"}},"-10102":{"description":"\n* [-10102] At least one authentication method must be enabled","summary":"At least one authentication method must be enabled","value":{"code":400,"debugInfo":"At least one authentication method must be enabled","errorCode":-10102,"message":"Bad Request"}},"-70106":{"description":"\n* [-70106] Only one authentication method allowed","summary":"Only one authentication method allowed","value":{"code":400,"debugInfo":"Only one authentication method allowed","errorCode":-70106,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80009":{"description":"\n* [-80009] Invalid email address","summary":"Invalid email address","value":{"code":400,"debugInfo":"Invalid email address","errorCode":-80009,"message":"Bad Request"}},"-80015":{"description":"\n* [-80015] Invalid key value list because there are duplicate keys present","summary":"Invalid key value list because there are duplicate keys present","value":{"code":400,"debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}},"-80038":{"description":"\n* [-80038] Deactivation of initial password change is only allowed without notification","summary":"Deactivation of initial password change is only allowed without notification","value":{"code":400,"debugInfo":"Deactivation of initial password change is only allowed without notification","errorCode":-80038,"message":"Bad Request"}},"-90002":{"description":"\n* [-90002] No distinct authentication configuration","summary":"No distinct authentication configuration","value":{"code":400,"debugInfo":"No distinct authentication configuration","errorCode":-90002,"message":"Bad Request"}},"-90059":{"description":"\n* [-90059] No valid Active Directory configuration found","summary":"No valid Active Directory configuration found","value":{"code":400,"debugInfo":"No valid Active Directory configuration found","errorCode":-90059,"message":"Bad Request"}},"-90510":{"description":"\n* [-90510] Maximum quota must not be less than one MB","summary":"Maximum quota must not be less than one MB","value":{"code":400,"debugInfo":"Maximum quota must not be less than one MB","errorCode":-90510,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"examples":{"-90100":{"description":"\n* [-90100] License does not allow further provisioning","summary":"License does not allow further provisioning","value":{"code":402,"debugInfo":"License does not allow further provisioning","errorCode":-90100,"message":"Payment Required"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"404":{"content":{"application/json":{"examples":{"-90035":{"description":"\n* [-90035] OpenID Connect IDP configuration not found","summary":"OpenID Connect IDP configuration not found","value":{"code":404,"debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035,"message":"Not Found"}},"-90050":{"description":"\n* [-90050] Active Directory configuration not found","summary":"Active Directory configuration not found","value":{"code":404,"debugInfo":"Active Directory configuration not found","errorCode":-90050,"message":"Not Found"}},"-90059":{"description":"\n* [-90059] No valid OpenID Connect IDP configuration found","summary":"No valid OpenID Connect IDP configuration found","value":{"code":404,"debugInfo":"No valid OpenID Connect IDP configuration found","errorCode":-90059,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-70560":{"description":"\n* [-70560] User with provided Basic authentication login already exists","summary":"User with provided Basic authentication login already exists","value":{"code":409,"debugInfo":"User with provided Basic authentication login already exists","errorCode":-70560,"message":"Conflict"}},"-70561":{"description":"\n* [-70561] User with provided Active Directory username already exists","summary":"User with provided Active Directory username already exists","value":{"code":409,"debugInfo":"User with provided Active Directory username already exists","errorCode":-70561,"message":"Conflict"}},"-70562":{"description":"\n* [-70562] User with provided RADIUS login already exists","summary":"User with provided RADIUS login already exists","value":{"code":409,"debugInfo":"User with provided RADIUS login already exists","errorCode":-70562,"message":"Conflict"}},"-70563":{"description":"\n* [-70563] User with provided OpenID Connect username already exists","summary":"User with provided OpenID Connect username already exists","value":{"code":409,"debugInfo":"User with provided OpenID Connect username already exists","errorCode":-70563,"message":"Conflict"}},"-70564":{"description":"\n* [-70564] User with provided username already exists","summary":"User with provided username already exists","value":{"code":409,"debugInfo":"User with provided username already exists","errorCode":-70564,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"}},"security":[],"summary":"Create customer","tags":["provisioning"]}},"/v4/provisioning/customers/{customer_id}":{"delete":{"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":[{"description":"Customer ID","in":"path","name":"customer_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-90103":{"description":"\n* [-90103] Customer not found","summary":"Customer not found","value":{"code":404,"debugInfo":"Customer not found","errorCode":-90103,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Remove customer","tags":["provisioning"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Customer ID","in":"path","name":"customer_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Include custom customer attributes.","in":"query","name":"include_attributes","required":false,"schema":{"type":"boolean"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-90103":{"description":"\n* [-90103] Customer not found","summary":"Customer not found","value":{"code":404,"debugInfo":"Customer not found","errorCode":-90103,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Get customer","tags":["provisioning"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Customer ID","in":"path","name":"customer_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-90111":{"description":"\n* [-90111] Invalid customer contract type transition","summary":"Invalid customer contract type transition","value":{"code":400,"debugInfo":"Invalid customer contract type transition","errorCode":-90111,"message":"Bad Request"}},"-90510":{"description":"\n* [-90510] Maximum quota must not be less than one MB","summary":"Maximum quota must not be less than one MB","value":{"code":400,"debugInfo":"Maximum quota must not be less than one MB","errorCode":-90510,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"examples":{"-90100":{"description":"\n* [-90100] License does not allow further provisioning","summary":"License does not allow further provisioning","value":{"code":402,"debugInfo":"License does not allow further provisioning","errorCode":-90100,"message":"Payment Required"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"404":{"content":{"application/json":{"examples":{"-90103":{"description":"\n* [-90103] Customer not found","summary":"Customer not found","value":{"code":404,"debugInfo":"Customer not found","errorCode":-90103,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Update customer","tags":["provisioning"]}},"/v4/provisioning/customers/{customer_id}/customerAttributes":{"get":{"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":[{"description":"Customer ID","in":"path","name":"customer_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributesResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-90103":{"description":"\n* [-90103] Customer not found","summary":"Customer not found","value":{"code":404,"debugInfo":"Customer not found","errorCode":-90103,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request customer attributes","tags":["provisioning"]},"post":{"deprecated":true,"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.28.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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Customer ID","in":"path","name":"customer_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerAttributes"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80015":{"description":"\n* [-80015] Invalid key value list because there are duplicate keys present","summary":"Invalid key value list because there are duplicate keys present","value":{"code":400,"debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-90103":{"description":"\n* [-90103] Customer not found","summary":"Customer not found","value":{"code":404,"debugInfo":"Customer not found","errorCode":-90103,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Set customer attributes","tags":["provisioning"]},"put":{"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<br/><br/><span style=\"font-weight: bold; color: red;\"> &#128679; **Warning: Please note that the response with HTTP status code 200 (OK) is deprecated and will be replaced with HTTP status code 204 (No content)!**</span><br/>\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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Customer ID","in":"path","name":"customer_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerAttributes"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}},"description":"OK **(DEPRECATED: WILL BE REPLACED BY 204: \"No content\")**"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80015":{"description":"\n* [-80015] Invalid key value list because there are duplicate keys present","summary":"Invalid key value list because there are duplicate keys present","value":{"code":400,"debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-90103":{"description":"\n* [-90103] Customer not found","summary":"Customer not found","value":{"code":404,"debugInfo":"Customer not found","errorCode":-90103,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Add or edit customer attributes","tags":["provisioning"]}},"/v4/provisioning/customers/{customer_id}/customerAttributes/{key}":{"delete":{"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":[{"description":"Customer ID","in":"path","name":"customer_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Key","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-70550":{"description":"\n* [-70550] Attribute not found","summary":"Attribute not found","value":{"code":404,"debugInfo":"Attribute not found","errorCode":-70550,"message":"Not Found"}},"-90103":{"description":"\n* [-90103] Customer not found","summary":"Customer not found","value":{"code":404,"debugInfo":"Customer not found","errorCode":-90103,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Remove customer attribute","tags":["provisioning"]}},"/v4/provisioning/customers/{customer_id}/users":{"get":{"description":"### Description:  \nReceive a list of users associated with a certain customer.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required.\n\n### Postcondition:\nList of customer users is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nExcept for `login`, `firstName` and  `lastName` - these are connected via logical disjunction (**OR**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`login:cn:searchString_1|firstName:cn:searchString_2|lockStatus:eq:2`  \nFilter users by login contains `searchString_1` **OR** firstName contains `searchString_2` **AND** those who are **NOT** locked.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `email` | Email filter | `eq`, `cn` | Email contains value. | `search String` |\n| `userName` | User name filter | `eq`, `cn` | UserName contains value. | `search String` |\n| `firstName` | User first name filter | `cn` | User first name contains value. | `search String` |\n| `lastName` | User last name filter | `cn` | User last name contains value. | `search String` |\n| `isLocked` | User lock status filter | `eq` |  | `true or false` |\n| `effectiveRoles` | Filter users with DIRECT or DIRECT **AND** EFFECTIVE roles<ul><li>`false`: DIRECT roles</li><li>`true`: DIRECT **AND** EFFECTIVE roles</li></ul>DIRECT means: e.g. user gets role **directly** granted from someone with _grant permission_ right.<br>EFFECTIVE means: e.g. user gets role through **group membership**. | `eq` |  | `true or false`<br>default: `false` |\n| `createdAt` | Creation date filter | `ge, le` | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| `phone` | Phone filter | `eq` | Phone equals value. | `search String` |\n| `isEncryptionEnabled` | Encryption status filter<ul><li>client-side encryption</li><li>private key possession</li></ul> | `eq` |  | `true or false` |\n| `hasRole` | (**`NEW`**) User role filter<br>Depends on **effectiveRoles**.<br>For more information about roles check **`GET /roles`** API | `eq`, `neq` | User role equals value. | <ul><li>`CONFIG_MANAGER` - Manages global configuration</li><li>`USER_MANAGER` - Manages users</li><li>`GROUP_MANAGER` - Manages user groups</li><li>`ROOM_MANAGER` - Manages top level rooms</li><li>`LOG_AUDITOR` - Reads audit logs</li><li>`NONMEMBER_VIEWER` - Views users and groups when having room _\"manage\"_ permission</li><li>`USER` - Regular User role</li><li>`GUEST_USER` - Guest User role</li></ul> |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`lockStatus`</del> | User lock status filter | `eq` | User lock status equals value. | <ul><li>`0` - Locked</li><li>`1` - Web access allowed</li><li>`2` - Web and mobile access allowed</li></ul> |\n| <del>`login`</del> |  User login filter | `cn` | User login contains value. | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`firstName:asc|lastLoginSuccessAt:desc`  \nSort by `firstName` ascending **AND** by `lastLoginSuccessAt` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `userName` | User name |\n| `email` | User email |\n| `firstName` | User first name |\n| `lastName` | User last name |\n| `isLocked` | User lock status |\n| `lastLoginSuccessAt` | Last successful login date |\n| `expireAt` | Expiration date |\n| `createdAt` | Creation date |\n\n</details>\n\n### Deprecated sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| <del>`gender`</del> | Gender |\n| <del>`lockStatus`</del> | User lock status |\n| <del>`login`</del> | User login |\n\n</details>","operationId":"requestCustomerUsers","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Customer ID","in":"path","name":"customer_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Include custom user attributes.","in":"query","name":"include_attributes","required":false,"schema":{"type":"boolean"}},{"description":"Include roles","in":"query","name":"include_roles","required":false,"schema":{"type":"boolean"}},{"description":"Include hasManageableRooms (deprecated)","in":"query","name":"include_manageable_rooms","required":false,"schema":{"type":"boolean"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-90103":{"description":"\n* [-90103] Customer not found","summary":"Customer not found","value":{"code":404,"debugInfo":"Customer not found","errorCode":-90103,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request list of customer users","tags":["provisioning"]}},"/v4/provisioning/webhooks":{"get":{"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 criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|isEnabled:asc`  \nSort by `name` descending and `isEnabled` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`id`** | Webhook id |\n| **`name`** | Webhook name |\n| **`isEnabled`** | Webhook isEnabled |\n| **`createdAt`** | Creation date |\n| **`updatedAt`** | Last modification date |\n| **`expiration`** | Expiration date |\n\n</details>\n","operationId":"requestListOfTenantWebhooks","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request list of tenant webhooks","tags":["provisioning"]},"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80010":{"description":"\n* [-80010] Invalid URL","summary":"Invalid URL","value":{"code":400,"debugInfo":"Invalid URL","errorCode":-80010,"message":"Bad Request"}},"-80060":{"description":"\n* [-80060] Invalid event type","summary":"Invalid event type","value":{"code":400,"debugInfo":"Invalid event type","errorCode":-80060,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-91001":{"description":"\n* [-91001] Exceeds number of allowed webhooks","summary":"Exceeds number of allowed webhooks","value":{"code":403,"debugInfo":"Exceeds number of allowed webhooks","errorCode":-91001,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Create tenant webhook","tags":["provisioning"]}},"/v4/provisioning/webhooks/event_types":{"get":{"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":[{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request list of event types","tags":["provisioning"]}},"/v4/provisioning/webhooks/{webhook_id}":{"delete":{"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":[{"description":"Webhook ID","in":"path","name":"webhook_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Remove tenant webhook","tags":["provisioning"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Webhook ID","in":"path","name":"webhook_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request tenant webhook","tags":["provisioning"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Webhook ID","in":"path","name":"webhook_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80010":{"description":"\n* [-80010] Invalid URL","summary":"Invalid URL","value":{"code":400,"debugInfo":"Invalid URL","errorCode":-80010,"message":"Bad Request"}},"-80060":{"description":"\n* [-80060] Invalid event type","summary":"Invalid event type","value":{"code":400,"debugInfo":"Invalid event type","errorCode":-80060,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Update tenant webhook","tags":["provisioning"]}},"/v4/provisioning/webhooks/{webhook_id}/reset_lifetime":{"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Webhook ID","in":"path","name":"webhook_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Service Authentication token","in":"header","name":"X-Sds-Service-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Reset tenant webhook lifetime","tags":["provisioning"]}},"/v4/public/shares/downloads/{access_key}":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDownloadShare"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"examples":{"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-50000":{"description":"\n* [-50000] Download access key not found","summary":"Download access key not found","value":{"code":404,"debugInfo":"Download access key not found","errorCode":-50000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request public Download Share information","tags":["public"]},"head":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.36.0</h3>\n\n### Description:\nCheck password for a public Download Share\n\n### Precondition:\nNone.\n\n### Postcondition:\nNone.\n\n### Further Information:\nNone.","operationId":"checkPublicDownloadSharePassword","parameters":[{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}},{"description":"Download share password","in":"query","name":"password","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"406":{"description":"Not Acceptable"}},"security":[],"summary":"Check public Download Share password","tags":["public"]},"post":{"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":[{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDownloadTokenGenerateRequest"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDownloadTokenGenerateResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-50000":{"description":"\n* [-50000] Download access key not found","summary":"Download access key not found","value":{"code":404,"debugInfo":"Download access key not found","errorCode":-50000,"message":"Not Found"}},"-50008":{"description":"\n* [-50008] Client-side encryption passwords should not be sent to the server","summary":"Client-side encryption passwords should not be sent to the server","value":{"code":400,"debugInfo":"Client-side encryption passwords should not be sent to the server","errorCode":-50008,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-50009":{"description":"\n* [-50009] Wrong password for Download Share link","summary":"Wrong password for Download Share link","value":{"code":401,"debugInfo":"Wrong password for Download Share link","errorCode":-50009,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-51000":{"description":"\n* [-51000] (Up-) Download Share is temporarily locked","summary":"(Up-) Download Share is temporarily locked","value":{"code":403,"debugInfo":"(Up-) Download Share is temporarily locked","errorCode":-51000,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-50000":{"description":"\n* [-50000] Download access key not found","summary":"Download access key not found","value":{"code":404,"debugInfo":"Download access key not found","errorCode":-50000,"message":"Not Found"}},"-50002":{"description":"\n* [-50002] Downloads limit reached","summary":"Downloads limit reached","value":{"code":404,"debugInfo":"Downloads limit reached","errorCode":-50002,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Generate download URL","tags":["public"]}},"/v4/public/shares/downloads/{access_key}/{token}":{"get":{"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":[{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}},{"description":"Download token","in":"path","name":"token","required":true,"schema":{"type":"string"}},{"description":"Range \n\ne.g. `bytes=0-999`","in":"header","name":"Range","required":false,"schema":{"type":"string"}},{"description":"Always return `application/octet-stream` instead of specific mimetype","in":"query","name":"generic_mimetype","required":false,"schema":{"type":"boolean"}},{"description":"Use Content-Disposition: `inline` instead of `attachment`","in":"query","name":"inline","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"},"206":{"description":"Partial Content"},"400":{"content":{"application/octet-stream":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80022":{"description":"\n* [-80022] Range cannot be set at ZIP download","summary":"Range cannot be set at ZIP download","value":{"code":400,"debugInfo":"Range cannot be set at ZIP download","errorCode":-80022,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/octet-stream":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-50000":{"description":"\n* [-50000] Download access key not found","summary":"Download access key not found","value":{"code":404,"debugInfo":"Download access key not found","errorCode":-50000,"message":"Not Found"}},"-50001":{"description":"\n* [-50001] Download token not found","summary":"Download token not found","value":{"code":404,"debugInfo":"Download token not found","errorCode":-50001,"message":"Not Found"}},"-50002":{"description":"\n* [-50002] Downloads limit reached","summary":"Downloads limit reached","value":{"code":404,"debugInfo":"Downloads limit reached","errorCode":-50002,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/octet-stream]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"416":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Download range doesn't match pattern","summary":"Range Not Satisfiable","value":{"code":416,"debugInfo":"Download range '...' doesn't match pattern '...'","errorCode":null,"message":"Range Not Satisfiable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Range Not Satisfiable"}},"security":[],"summary":"Download file with token","tags":["public"]},"head":{"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":[{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}},{"description":"Download token","in":"path","name":"token","required":true,"schema":{"type":"string"}},{"description":"Range \n\ne.g. `bytes=0-999`","in":"header","name":"Range","required":false,"schema":{"type":"string"}},{"description":"Always return `application/octet-stream` instead of specific mimetype","in":"query","name":"generic_mimetype","required":false,"schema":{"type":"boolean"}},{"description":"Use Content-Disposition: `inline` instead of `attachment`","in":"query","name":"inline","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"},"206":{"description":"Partial Content"},"400":{"content":{"application/octet-stream":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80022":{"description":"\n* [-80022] Range cannot be set at ZIP download","summary":"Range cannot be set at ZIP download","value":{"code":400,"debugInfo":"Range cannot be set at ZIP download","errorCode":-80022,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/octet-stream":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-50000":{"description":"\n* [-50000] Download access key not found","summary":"Download access key not found","value":{"code":404,"debugInfo":"Download access key not found","errorCode":-50000,"message":"Not Found"}},"-50001":{"description":"\n* [-50001] Download token not found","summary":"Download token not found","value":{"code":404,"debugInfo":"Download token not found","errorCode":-50001,"message":"Not Found"}},"-50002":{"description":"\n* [-50002] Downloads limit reached","summary":"Downloads limit reached","value":{"code":404,"debugInfo":"Downloads limit reached","errorCode":-50002,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/octet-stream]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"416":{"content":{"application/octet-stream":{"examples":{"null":{"description":"Download range doesn't match pattern","summary":"Range Not Satisfiable","value":{"code":416,"debugInfo":"Download range '...' doesn't match pattern '...'","errorCode":null,"message":"Range Not Satisfiable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Range Not Satisfiable"}},"security":[],"summary":"Download file with token","tags":["public"]}},"/v4/public/shares/uploads/{access_key}":{"get":{"description":"### Description:  \nProvides information about the desired Upload Share.\n\n### Precondition:\nOnly `userUserPublicKeyList` is returned to the users who owns one of the following permissions: <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span>, <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage upload share</span>\n\n### Postcondition:\nNone.\n\n### Further Information:\nIf no password is set, the returned information is reduced to the following attributes (if available):\n\n* `name`\n* `createdAt`\n* `isProtected`\n* `isEncrypted`\n* `showUploadedFiles`\n* `userUserPublicKeyList` (if parent is end-to-end encrypted)\n\nOnly if the password is transmitted as `X-Sds-Share-Password` header, all values are returned.\n","operationId":"requestPublicUploadShareInfo","parameters":[{"description":"Upload share password. Should be base64-encoded.\n\nPlain X-Sds-Share-Passwords are *deprecated* and will be removed in the future","in":"header","name":"X-Sds-Share-Password","schema":{"type":"string"}},{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUploadShare"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-50505":{"description":"\n* [-50505] No room user has a keypair","summary":"No room user has a keypair","value":{"code":400,"debugInfo":"No room user has a keypair","errorCode":-50505,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-50502":{"description":"\n* [-50502] Wrong password for Upload Share link","summary":"Wrong password for Upload Share link","value":{"code":401,"debugInfo":"Wrong password for Upload Share link","errorCode":-50502,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-50501":{"description":"\n* [-50501] Upload access key not found","summary":"Upload access key not found","value":{"code":404,"debugInfo":"Upload access key not found","errorCode":-50501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request public Upload Share information","tags":["public"]},"post":{"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":[{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShareUploadChannelRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShareUploadChannelResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-50505":{"description":"\n* [-50505] No room user has a keypair","summary":"No room user has a keypair","value":{"code":400,"debugInfo":"No room user has a keypair","errorCode":-50505,"message":"Bad Request"}},"-50506":{"description":"\n* [-50506] Exceeds the number of files for this Upload Share","summary":"Exceeds the number of files for this Upload Share","value":{"code":400,"debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80037":{"description":"\n* [-80037] Exceeds maximum data length for AES GCM encryption","summary":"Exceeds maximum data length for AES GCM encryption","value":{"code":400,"debugInfo":"Exceeds maximum data length for AES GCM encryption","errorCode":-80037,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-50502":{"description":"\n* [-50502] Wrong password for Upload Share link","summary":"Wrong password for Upload Share link","value":{"code":401,"debugInfo":"Wrong password for Upload Share link","errorCode":-50502,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-51000":{"description":"\n* [-51000] (Up-) Download Share is temporarily locked","summary":"(Up-) Download Share is temporarily locked","value":{"code":403,"debugInfo":"(Up-) Download Share is temporarily locked","errorCode":-51000,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-50501":{"description":"\n* [-50501] Upload access key not found","summary":"Upload access key not found","value":{"code":404,"debugInfo":"Upload access key not found","errorCode":-50501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"504":{"content":{"application/json":{"examples":{"-90027":{"description":"\n* [-90027] S3 connection failed","summary":"S3 connection failed","value":{"code":504,"debugInfo":"S3 connection failed","errorCode":-90027,"message":"Gateway Timeout"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Gateway Timeout"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-50504":{"description":"\n* [-50504] Exceeds the quota for this Upload Share","summary":"Exceeds the quota for this Upload Share","value":{"code":507,"debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"security":[],"summary":"Create new file upload channel","tags":["public"]}},"/v4/public/shares/uploads/{access_key}/{upload_id}":{"delete":{"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":[{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}},{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-50506":{"description":"\n* [-50506] Exceeds the number of files for this Upload Share","summary":"Exceeds the number of files for this Upload Share","value":{"code":400,"debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-50501":{"description":"\n* [-50501] Upload access key not found","summary":"Upload access key not found","value":{"code":404,"debugInfo":"Upload access key not found","errorCode":-50501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"504":{"content":{"application/json":{"examples":{"-90027":{"description":"\n* [-90027] S3 connection failed","summary":"S3 connection failed","value":{"code":504,"debugInfo":"S3 connection failed","errorCode":-90027,"message":"Gateway Timeout"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Gateway Timeout"},"507":{"content":{"application/json":{"examples":{"-50504":{"description":"\n* [-50504] Exceeds the quota for this Upload Share","summary":"Exceeds the quota for this Upload Share","value":{"code":507,"debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"security":[],"summary":"Cancel file upload","tags":["public"]},"get":{"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":[{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}},{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3ShareUploadStatus"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-90034":{"description":"\n* [-90034] Corresponding S3 upload ID not found","summary":"Corresponding S3 upload ID not found","value":{"code":404,"debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"security":[],"summary":"Request status of S3 file upload","tags":["public"]},"post":{"description":"### Description:  \nChunked upload of files via Upload Share.\n\n### Precondition:\nValid upload ID.\n\n### Postcondition:\nChunk of file is uploaded.\n\n### Further Information:\nChunked uploads (range requests) are supported.\n\nFollowing `Content-Types` are supported by this API:\n* `multipart/form-data`\n* provided `Content-Type`  \n\nFor both file upload types set the correct `Content-Type` header and body.  \n\n### Examples:  \n\n* `multipart/form-data`\n```\nPOST /api/v4/public/shares/uploads/{access_key}{upload_id} HTTP/1.1\n\nHeader:\n...\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n...\n\nBody:\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"file\"; filename=\"file.txt\"\nContent-Type: text/plain\n\nContent of file.txt\n------WebKitFormBoundary7MA4YWxkTrZu0gW--\n```\n\n* any other `Content-Type`  \n```\nPOST /api/v4/public/shares/uploads/{access_key}{upload_id} HTTP/1.1\n\nHeader:\n...\nContent-Type: { ... }\n...\n\nBody:\nraw content\n```","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"uploadFileAsMultipartPublic_1","parameters":[{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}},{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}},{"description":"Content-Range \n\ne.g. `bytes 0-999/3980`","in":"header","name":"Content-Range","required":false,"schema":{"type":"string"}},{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"description":"File","format":"binary","type":"string"}},"required":["file"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}},"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-50505":{"description":"\n* [-50505] No room user has a keypair","summary":"No room user has a keypair","value":{"code":400,"debugInfo":"No room user has a keypair","errorCode":-50505,"message":"Bad Request"}},"-50506":{"description":"\n* [-50506] Exceeds the number of files for this Upload Share","summary":"Exceeds the number of files for this Upload Share","value":{"code":400,"debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80021":{"description":"\n* [-80021] Incorrect upload Content-Range","summary":"Incorrect upload Content-Range","value":{"code":400,"debugInfo":"Incorrect upload Content-Range","errorCode":-80021,"message":"Bad Request"}},"-80037":{"description":"\n* [-80037] Exceeds maximum data length for AES GCM encryption","summary":"Exceeds maximum data length for AES GCM encryption","value":{"code":400,"debugInfo":"Exceeds maximum data length for AES GCM encryption","errorCode":-80037,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-50501":{"description":"\n* [-50501] Upload access key not found","summary":"Upload access key not found","value":{"code":404,"debugInfo":"Upload access key not found","errorCode":-50501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-50504":{"description":"\n* [-50504] Exceeds the quota for this Upload Share","summary":"Exceeds the quota for this Upload Share","value":{"code":507,"debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"security":[],"summary":"Upload file","tags":["public"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}},{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFileKeyList"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUploadedFileData"}}},"description":"Created"},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUploadedFileData"}}},"description":"Accepted"},"400":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-40763":{"description":"\n* [-40763] File key must be set for an upload into encrypted room","summary":"File key must be set for an upload into encrypted room","value":{"code":400,"debugInfo":"File key must be set for an upload into encrypted room","errorCode":-40763,"message":"Bad Request"}},"-50505":{"description":"\n* [-50505] No room user has a keypair","summary":"No room user has a keypair","value":{"code":400,"debugInfo":"No room user has a keypair","errorCode":-50505,"message":"Bad Request"}},"-50506":{"description":"\n* [-50506] Exceeds the number of files for this Upload Share","summary":"Exceeds the number of files for this Upload Share","value":{"code":400,"debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-50501":{"description":"\n* [-50501] Upload access key not found","summary":"Upload access key not found","value":{"code":404,"debugInfo":"Upload access key not found","errorCode":-50501,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"504":{"content":{"application/json":{"examples":{"-90027":{"description":"\n* [-90027] S3 connection failed","summary":"S3 connection failed","value":{"code":504,"debugInfo":"S3 connection failed","errorCode":-90027,"message":"Gateway Timeout"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Gateway Timeout"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-50504":{"description":"\n* [-50504] Exceeds the quota for this Upload Share","summary":"Exceeds the quota for this Upload Share","value":{"code":507,"debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"security":[],"summary":"Complete file upload","tags":["public"]}},"/v4/public/shares/uploads/{access_key}/{upload_id}/s3":{"put":{"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":[{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}},{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteS3ShareUploadRequest"}}},"required":true},"responses":{"202":{"description":"Accepted"},"400":{"content":{"application/json":{"examples":{"-20503":{"description":"\n* [-20503] Upload channel is closed","summary":"Upload channel is closed","value":{"code":400,"debugInfo":"Upload channel is closed","errorCode":-20503,"message":"Bad Request"}},"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-40763":{"description":"\n* [-40763] File key must be set for an upload into encrypted room","summary":"File key must be set for an upload into encrypted room","value":{"code":400,"debugInfo":"File key must be set for an upload into encrypted room","errorCode":-40763,"message":"Bad Request"}},"-50505":{"description":"\n* [-50505] No room user has a keypair","summary":"No room user has a keypair","value":{"code":400,"debugInfo":"No room user has a keypair","errorCode":-50505,"message":"Bad Request"}},"-50506":{"description":"\n* [-50506] Exceeds the number of files for this Upload Share","summary":"Exceeds the number of files for this Upload Share","value":{"code":400,"debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80045":{"description":"\n* [-80045] Invalid Etag(s)","summary":"Invalid Etag(s)","value":{"code":400,"debugInfo":"Invalid Etag(s)","errorCode":-80045,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-50501":{"description":"\n* [-50501] Upload access key not found","summary":"Upload access key not found","value":{"code":404,"debugInfo":"Upload access key not found","errorCode":-50501,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}},"-90034":{"description":"\n* [-90034] Corresponding S3 upload ID not found","summary":"Corresponding S3 upload ID not found","value":{"code":404,"debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"security":[],"summary":"Complete S3 file upload","tags":["public"]}},"/v4/public/shares/uploads/{access_key}/{upload_id}/s3_urls":{"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Access key","in":"path","name":"access_key","required":true,"schema":{"type":"string"}},{"description":"Upload channel ID","in":"path","name":"upload_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePresignedUrlsRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresignedUrlList"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-20503":{"description":"\n* [-20503] Upload channel is closed","summary":"Upload channel is closed","value":{"code":400,"debugInfo":"Upload channel is closed","errorCode":-20503,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80046":{"description":"\n* [-80046] Invalid size","summary":"Invalid size","value":{"code":400,"debugInfo":"Invalid size","errorCode":-80046,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-90034":{"description":"\n* [-90034] Corresponding S3 upload ID not found","summary":"Corresponding S3 upload ID not found","value":{"code":404,"debugInfo":"Corresponding S3 upload ID not found","errorCode":-90034,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"504":{"content":{"application/json":{"examples":{"-90027":{"description":"\n* [-90027] S3 connection failed","summary":"S3 connection failed","value":{"code":504,"debugInfo":"S3 connection failed","errorCode":-90027,"message":"Gateway Timeout"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Gateway Timeout"},"507":{"content":{"application/json":{"examples":{"-50504":{"description":"\n* [-50504] Exceeds the quota for this Upload Share","summary":"Exceeds the quota for this Upload Share","value":{"code":507,"debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"security":[],"summary":"Generate presigned URLs for S3 file upload","tags":["public"]}},"/v4/public/software/third_party_dependencies":{"get":{"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":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ThirdPartyDependenciesData"},"type":"array"}}},"description":"OK"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request third-party software dependencies","tags":["public"]}},"/v4/public/software/version":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoftwareVersionData"}}},"description":"OK"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request software version information","tags":["public"]}},"/v4/public/system/info":{"get":{"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":[{"description":"Show only enabled authentication methods","in":"query","name":"is_enabled","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemInfo"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request system information","tags":["public"]}},"/v4/public/system/info/auth/ad":{"get":{"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":[{"description":"Show only global available items","in":"query","name":"is_global_available","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryAuthInfo"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request Active Directory authentication information","tags":["public"]}},"/v4/public/system/info/auth/openid":{"get":{"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":[{"description":"Show only global available items","in":"query","name":"is_global_available","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdAuthInfo"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request OpenID Connect provider authentication information","tags":["public"]}},"/v4/public/time":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SdsServerTime"}}},"description":"OK"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request system time","tags":["public"]}},"/v4/resources/user/notifications/scopes":{"get":{"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":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationScopeList"}}},"description":"OK"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request list of subscription scopes","tags":["resources"]}},"/v4/resources/users/{user_id}/avatar/{uuid}":{"get":{"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":[{"description":"UUID of the avatar","in":"path","name":"uuid","required":true,"schema":{"type":"string"}},{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"examples":{"-70028":{"description":"\n* [-70028] Avatar not found","summary":"Avatar not found","value":{"code":404,"debugInfo":"Avatar not found","errorCode":-70028,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"security":[],"summary":"Request user avatar","tags":["resources"]}},"/v4/roles":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request all roles with assigned rights","tags":["roles"]}},"/v4/roles/{role_id}/groups":{"delete":{"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":[{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupIds"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleGroupList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-71006":{"description":"\n* [-71006] At least one role user / group required","summary":"At least one role user / group required","value":{"code":400,"debugInfo":"At least one role user / group required","errorCode":-71006,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-71001":{"description":"\n* [-71001] Role not found","summary":"Role not found","value":{"code":404,"debugInfo":"Role not found","errorCode":-71001,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Revoke granted role from group(s)","tags":["roles"]},"get":{"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":[{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleGroupList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-71001":{"description":"\n* [-71001] Role not found","summary":"Role not found","value":{"code":404,"debugInfo":"Role not found","errorCode":-71001,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request groups with specific role","tags":["roles"]},"post":{"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":[{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupIds"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleGroupList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-71002":{"description":"\n* [-71002] Role can not be added","summary":"Role can not be added","value":{"code":400,"debugInfo":"Role can not be added","errorCode":-71002,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}},"-71001":{"description":"\n* [-71001] Role not found","summary":"Role not found","value":{"code":404,"debugInfo":"Role not found","errorCode":-71001,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Assign group(s) to the role","tags":["roles"]}},"/v4/roles/{role_id}/users":{"delete":{"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":[{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIds"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleUserList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-71003":{"description":"\n* [-71003] Role can not be removed","summary":"Role can not be removed","value":{"code":400,"debugInfo":"Role can not be removed","errorCode":-71003,"message":"Bad Request"}},"-71006":{"description":"\n* [-71006] At least one role user / group required","summary":"At least one role user / group required","value":{"code":400,"debugInfo":"At least one role user / group required","errorCode":-71006,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}},"-71001":{"description":"\n* [-71001] Role not found","summary":"Role not found","value":{"code":404,"debugInfo":"Role not found","errorCode":-71001,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Revoke granted role from user(s)","tags":["roles"]},"get":{"description":"### Description:  \nGet all users with a specific role.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.\n\n### Postcondition:\nList of users is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isMember:eq:false|user:cn:searchString`  \nGet all users that are **NOT** member of that role **AND** whose (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) is like `searchString`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `user` | User filter | `cn` | User contains value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`). | `search String` |\n| `isMember` | Filter the users which are (not) member of that role | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`displayName`</del> | User display name filter (use `user` filter) | `cn` | User display name contains value (`firstName` **OR** `lastName` **OR** `email`). | `search String` |\n\n</details>","operationId":"requestRoleUsers","parameters":[{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleUserList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-71001":{"description":"\n* [-71001] Role not found","summary":"Role not found","value":{"code":404,"debugInfo":"Role not found","errorCode":-71001,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request users with specific role","tags":["roles"]},"post":{"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":[{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIds"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleUserList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-71006":{"description":"\n* [-71006] At least one role user / group required","summary":"At least one role user / group required","value":{"code":400,"debugInfo":"At least one role user / group required","errorCode":-71006,"message":"Bad Request"}},"-71010":{"description":"\n* [-71010] Guest user can not have additional roles","summary":"Guest user can not have additional roles","value":{"code":400,"debugInfo":"Guest user can not have additional roles","errorCode":-71010,"message":"Bad Request"}},"-71011":{"description":"\n* [-71011] Only guest users can be converted to internal user","summary":"Only guest users can be converted to internal user","value":{"code":400,"debugInfo":"Only guest users can be converted to internal user","errorCode":-71011,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}},"-71001":{"description":"\n* [-71001] Role not found","summary":"Role not found","value":{"code":404,"debugInfo":"Role not found","errorCode":-71001,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-70564":{"description":"\n* [-10012] Wrong token","summary":"User with provided username already exists","value":{"code":409,"debugInfo":"User with provided username already exists","errorCode":-70564,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Assign user(s) to the role","tags":["roles"]}},"/v4/settings":{"get":{"description":"### Description:  \nRetrieve customer related settings. \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read config</span> required.\n\n### Postcondition:\nList of available settings is returned.\n\n### Further Information:\nNone.\n\n### Configurable customer settings:\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description                                                                                                                                                           | Value |\n| :--- |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- |\n| `homeRoomParentName` | Name of the container in which all user's home rooms are located.<br>`null` if `homeRoomsActive` is `false`.                                                          | `String` |\n| `homeRoomQuota` | Refers to the quota of each single user's home room.<br>`0` represents no quota.<br>`null` if `homeRoomsActive` is `false`.                                           | `positive Long` |\n| `homeRoomsActive` | If set to `true`, every user with an Active Directory account or OpenID Connect account gets a personal homeroom.<br>Once activated, this **CANNOT** be deactivated. | `true or false` |\n\n\n</details>","operationId":"requestSettings","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerSettingsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request customer settings","tags":["settings"]},"put":{"description":"### Description:  \nSet customer related settings.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> required.\n\n### Postcondition:\nProvided settings are updated.\n\n### Further Information:\nNone.\n\n### Configurable customer settings\n<details open style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting | Description                                                                                                                                                          | Value |\n| :--- |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- |\n| `homeRoomParentName` | Name of the container in which all user's home rooms are located.<br>`null` if `homeRoomsActive` is `false`.                                                         | `String` |\n| `homeRoomQuota` | Refers to the quota of each single user's home room.<br>`0` represents no quota.<br>`null` if `homeRoomsActive` is `false`.                                          | `positive Long` |\n| `homeRoomsActive` | If set to `true`, every user with an Active Directory account or OpenID Connect account gets a personal homeroom.<br>Once activated, this **CANNOT** be deactivated. | `true or false` |\n\n</details>\n\n### Node naming convention:\n* Node (room, folder, file) names are limited to **150** characters.\n* Illegal names:  \n`'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9', (and any of those with an extension)`\n* Illegal characters in names:  \n`'\\\\', '<','>', ':', '\\\"', '|', '?', '*', '/', leading '-', trailing '.' `\n","operationId":"setSettings","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerSettingsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerSettingsResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"null":{"description":"Node with specified name already exists","summary":"Node already exists","value":{"code":409,"debugInfo":"Node with specified name already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Set customer settings","tags":["settings"]}},"/v4/settings/keypair":{"delete":{"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* Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n* Existence of own key pair\n\n### Postcondition:\nKey pair is removed (cf. further information below).\n\n### Further Information:\nPlease set a new system rescue key pair first and re-encrypt file keys with it.  \nIf no version is set, deleted key pair with lowest preference value.  \nAlthough, `version` **SHOULD** be set.\n","operationId":"removeSystemRescueKeyPair","parameters":[{"description":"Version (NEW)","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove system rescue key pair","tags":["settings"]},"get":{"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:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n\n### Postcondition:\nKey pair is returned.\n\n### Further Information:\nIf more than one key pair exists the one with highest preference value is returned.\n","operationId":"requestSystemRescueKeyPair","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Version (NEW)","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request system rescue key pair","tags":["settings"]},"post":{"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:\n* Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n* Existence of own key pair\n\n### Postcondition:\nSystem rescue key pair is set and client-side encryption is enabled.\n\n### Further Information:\nSets the ability for this customer to encrypt rooms.  \nOnce enabled on customer level, it **CANNOT** be unset.  \nOn activation, a customer rescue key pair **MUST** be set.\n","operationId":"setSystemRescueKeyPair","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-70021":{"description":"\n* [-70021] User does already have a keypair","summary":"User does already have a keypair","value":{"code":409,"debugInfo":"User does already have a keypair","errorCode":-70021,"message":"Conflict"}},"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-70023":{"description":"\n* [-70023] Invalid private key format","summary":"Invalid private key format","value":{"code":400,"debugInfo":"Invalid private key format","errorCode":-70023,"message":"Bad Request"}},"-70024":{"description":"\n* [-70024] Customer encryption cannot be disabled","summary":"Customer encryption cannot be disabled","value":{"code":400,"debugInfo":"Customer encryption cannot be disabled","errorCode":-70024,"message":"Bad Request"}},"-70025":{"description":"\n* [-70025] Customer encryption is already enabled","summary":"Customer encryption is already enabled","value":{"code":400,"debugInfo":"Customer encryption is already enabled","errorCode":-70025,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-90020":{"description":"\n* [-90020] Client-side encryption is not enabled","summary":"Client-side encryption is not enabled","value":{"code":400,"debugInfo":"Client-side encryption is not enabled","errorCode":-90020,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Activate client-side encryption for customer","tags":["settings"]}},"/v4/settings/keypairs":{"get":{"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* Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n* Existence of own key pair\n\n### Postcondition:\nList of key pairs is returned.\n\n### Further Information:\nIn the case of an algorithm migration of a system rescue key, one should create the new key pair before deleting the old one.  \nThis allows re-encrypting file keys with the new key pair, using the old one.  \n\nThis API allows to retrieve both key pairs, in contrast to `GET /settings/keypair`, which only delivers the preferred one.\n","operationId":"requestAllSystemRescueKeyPairs","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserKeyPairContainer"},"type":"array"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request all system rescue key pairs","tags":["settings"]},"post":{"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:\n* Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>\n* Existence of own key pair\n\n### Postcondition:\nSystem rescue key pair is created.  \nCopy of old private key is preserved.\n\n### Further Information:\nYou can submit your old private key, encrypted with your current password.  \nThis allows migrating file keys encrypted with your old key pair to the new one.\n","operationId":"createAndPreserveKeyPair","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyPairRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-70023":{"description":"\n* [-70023] Invalid private key format","summary":"Invalid private key format","value":{"code":400,"debugInfo":"Invalid private key format","errorCode":-70023,"message":"Bad Request"}},"-70024":{"description":"\n* [-70024] Customer encryption cannot be disabled","summary":"Customer encryption cannot be disabled","value":{"code":400,"debugInfo":"Customer encryption cannot be disabled","errorCode":-70024,"message":"Bad Request"}},"-70025":{"description":"\n* [-70025] Customer encryption is already enabled","summary":"Customer encryption is already enabled","value":{"code":400,"debugInfo":"Customer encryption is already enabled","errorCode":-70025,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-90020":{"description":"\n* [-90020] Client-side encryption is not enabled","summary":"Client-side encryption is not enabled","value":{"code":400,"debugInfo":"Client-side encryption is not enabled","errorCode":-90020,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create system rescue key pair and preserve copy of old private key","tags":["settings"]}},"/v4/settings/notifications/channels":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of notification channels","tags":["settings"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelActivationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-70121":{"description":"\n* [-70121] Notification channel not found","summary":"Notification channel not found","value":{"code":400,"debugInfo":"Notification channel not found","errorCode":-70121,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Toggle notification channels","tags":["settings"]}},"/v4/settings/webhooks":{"get":{"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 criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:desc|isEnabled:asc`  \nSort by `name` descending and `isEnabled` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`id`** | Webhook id |\n| **`name`** | Webhook name |\n| **`isEnabled`** | Webhook isEnabled |\n| **`createdAt`** | Creation date |\n| **`updatedAt`** | Last modification date |\n| **`expiration`** | Expiration date |\n\n</details>\n","operationId":"requestListOfWebhooks","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of webhooks","tags":["settings"]},"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80010":{"description":"\n* [-80010] Invalid URL","summary":"Invalid URL","value":{"code":400,"debugInfo":"Invalid URL","errorCode":-80010,"message":"Bad Request"}},"-80060":{"description":"\n* [-80060] Invalid event type","summary":"Invalid event type","value":{"code":400,"debugInfo":"Invalid event type","errorCode":-80060,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-91001":{"description":"\n* [-91001] Exceeds number of allowed webhooks","summary":"Exceeds number of allowed webhooks","value":{"code":403,"debugInfo":"Exceeds number of allowed webhooks","errorCode":-91001,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create webhook","tags":["settings"]}},"/v4/settings/webhooks/event_types":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of event types","tags":["settings"]}},"/v4/settings/webhooks/{webhook_id}":{"delete":{"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":[{"description":"Webhook ID","in":"path","name":"webhook_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove webhook","tags":["settings"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Webhook ID","in":"path","name":"webhook_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request webhook","tags":["settings"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Webhook ID","in":"path","name":"webhook_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80010":{"description":"\n* [-80010] Invalid URL","summary":"Invalid URL","value":{"code":400,"debugInfo":"Invalid URL","errorCode":-80010,"message":"Bad Request"}},"-80060":{"description":"\n* [-80060] Invalid event type","summary":"Invalid event type","value":{"code":400,"debugInfo":"Invalid event type","errorCode":-80060,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update webhook","tags":["settings"]}},"/v4/settings/webhooks/{webhook_id}/reset_lifetime":{"post":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Webhook ID","in":"path","name":"webhook_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-91000":{"description":"\n* [-91000] Webhook not found","summary":"Webhook not found","value":{"code":404,"debugInfo":"Webhook not found","errorCode":-91000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Reset webhook lifetime","tags":["settings"]}},"/v4/shares/downloads":{"delete":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDownloadSharesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-60000":{"description":"\n* [-60000] Download Share not found","summary":"Download Share not found","value":{"code":404,"debugInfo":"Download Share not found","errorCode":-60000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove Download Shares","tags":["shares"]},"get":{"description":"### Description:  \nRetrieve a list of Download Shares.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of available Download Shares is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical (**AND**). createdBy and updatedBy searches several user-related attributes.\n\nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:cn:searchString_1|createdBy:cn:searchString_2`\nFilter by file name contains `searchString_1` **AND** creator info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains `searchString_2`.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `name` | Alias or node name filter | `cn` | Alias or node name contains value. | `search String` |\n| `createdAt` | Creation date filter | `ge, le` | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01` | `Date (yyyy-MM-dd)` |\n| `createdBy` | Creator info filter | `cn, eq` | Creator info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains value. | `search String` |\n| `createdById` | Creator ID filter | `eq` | Creator ID equals value. | `positive Integer` |\n| `accessKey` | Share access key filter | `cn` | Share access key contains values. | `search String` |\n| `nodeId` | Source node ID | `eq` | Source node (room, folder, file) ID equals value. | `positive Integer` |\n| `updatedBy` | Modifier info filter | `cn, eq` | Modifier info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains value. | `search String` |\n| `updatedById` | Modifier ID filter | `eq` | Modifier ID equals value. | `positive Integer` |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`userId`</del>  | Creator user ID | `eq` | Creator user ID equals value. Use `createdById` instead | `positive Integer` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`name:asc|expireAt:desc`  \nSort by `name` ascending **AND** by `expireAt` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `name` | Alias or node name |\n| `notifyCreator` | Notify creator on every download |\n| `expireAt` | Expiration date |\n| `createdAt` | Creation date |\n| `createdBy` | Creator first name, last name |\n| `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |\n\n</details>\n","operationId":"requestDownloadShares","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShareList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of Download Shares","tags":["shares"]},"post":{"description":"### Description:\nCreate a new Download Share.\n\n### Precondition:\nUser with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage download share</span> permissions on target node.\n\n### Postcondition:\nDownload Share is created.\n\n### Further Information:\n\nIf the target node is a room: subordinary rooms are excluded from a Download Share.\n\n* `name` is limited to **150** characters.\n* `notes` are limited to **255** characters.\n* `password` is limited to **1024** characters.\n\nUse `POST /shares/downloads/{share_id}/email` API for sending emails.  \n\nForbidden characters in passwords: [`&`, `'`, `<`, `>`]\n\nPlease keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters\nmay not be displayed correctly in short messages (SMS).","operationId":"createDownloadShare","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDownloadShareRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-10002":{"description":"\n* [-10002] Password is not secure","summary":"Password is not secure","value":{"code":400,"debugInfo":"Password is not secure","errorCode":-10002,"message":"Bad Request"}},"-10013":{"description":"\n* [-10013] Not valid IETF language tag","summary":"Not valid IETF language tag","value":{"code":400,"debugInfo":"Not valid IETF language tag","errorCode":-10013,"message":"Bad Request"}},"-50003":{"description":"\n* [-50003] Password for encrypted Download Shares not allowed","summary":"Password for encrypted Download Shares not allowed","value":{"code":400,"debugInfo":"Password for encrypted Download Shares not allowed","errorCode":-50003,"message":"Bad Request"}},"-50004":{"description":"\n* [-50004] Download Shares of encrypted containers not allowed","summary":"Download Shares of encrypted containers not allowed","value":{"code":400,"debugInfo":"Download Shares of encrypted containers not allowed","errorCode":-50004,"message":"Bad Request"}},"-50005":{"description":"\n* [-50005] File key must be set on Download Share in encrypted containers","summary":"File key must be set on Download Share in encrypted containers","value":{"code":400,"debugInfo":"File key must be set on Download Share in encrypted containers","errorCode":-50005,"message":"Bad Request"}},"-50006":{"description":"\n* [-50006] Keypair must be set on Download Share in encrypted containers","summary":"Keypair must be set on Download Share in encrypted containers","value":{"code":400,"debugInfo":"Keypair must be set on Download Share in encrypted containers","errorCode":-50006,"message":"Bad Request"}},"-50007":{"description":"\n* [-50007] Download Shares in unencrypted rooms must not have keys","summary":"Download Shares in unencrypted rooms must not have keys","value":{"code":400,"debugInfo":"Download Shares in unencrypted rooms must not have keys","errorCode":-50007,"message":"Bad Request"}},"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-70023":{"description":"\n* [-70023] Invalid private key format","summary":"Invalid private key format","value":{"code":400,"debugInfo":"Invalid private key format","errorCode":-70023,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}},"-80009":{"description":"\n* [-80009] Invalid email address","summary":"Invalid email address","value":{"code":400,"debugInfo":"Invalid email address","errorCode":-80009,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}},"-80030":{"description":"\n* [-80030] SMS disabled","summary":"SMS disabled","value":{"code":400,"debugInfo":"SMS disabled","errorCode":-80030,"message":"Bad Request"}},"-80040":{"description":"\n* [-80040] Invalid phone number\n\nMust be a FQTN (cf. E.123 / E.164 Format)","summary":"Invalid phone number","value":{"code":400,"debugInfo":"Invalid phone number","errorCode":-80040,"message":"Bad Request"}},"-80062":{"description":"\n* [-80062] Invalid File key","summary":"Invalid File key","value":{"code":400,"debugInfo":"Invalid File key","errorCode":-80062,"message":"Bad Request"}},"-80064":{"description":"\n* [-80064] Policy Violation","summary":"Policy Violation","value":{"code":400,"debugInfo":"Policy Violation","errorCode":-80064,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"502":{"content":{"application/json":{"examples":{"-90090":{"description":"\n* [-90090] Could not send text message via SMS","summary":"Could not send text message via SMS","value":{"code":502,"debugInfo":"Could not send text message via SMS","errorCode":-90090,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Gateway"}},"summary":"Create new Download Share","tags":["shares"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDownloadSharesBulkRequest"}}},"required":true},"responses":{"200":{"description":"No Content"},"204":{"description":"No Content"},"400":{"content":{"*/*":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80063":{"description":"\n* [-80063] Too many items","summary":"Too many items","value":{"code":400,"debugInfo":"Too many items","errorCode":-80063,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"*/*":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"*/*":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"*/*":{"examples":{"-60000":{"description":"\n* [-60000] Download Share not found","summary":"Download Share not found","value":{"code":404,"debugInfo":"Download Share not found","errorCode":-60000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"*/*":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"*/*":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"502":{"content":{"*/*":{"examples":{"-90090":{"description":"\n* [-90090] Could not send text message via SMS","summary":"Could not send text message via SMS","value":{"code":502,"debugInfo":"Could not send text message via SMS","errorCode":-90090,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Gateway"}},"summary":"Update a list of Download Shares","tags":["shares"]}},"/v4/shares/downloads/{share_id}":{"delete":{"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":[{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-60000":{"description":"\n* [-60000] Download Share not found","summary":"Download Share not found","value":{"code":404,"debugInfo":"Download Share not found","errorCode":-60000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove Download Share","tags":["shares"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-60000":{"description":"\n* [-60000] Download Share not found","summary":"Download Share not found","value":{"code":404,"debugInfo":"Download Share not found","errorCode":-60000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request Download Share","tags":["shares"]},"put":{"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: [`&`, `'`, `<`, `>`]\n\nPlease keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters\nmay not be displayed correctly in short messages (SMS).","operationId":"updateDownloadShare","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDownloadShareRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10002":{"description":"\n* [-10002] Password is not secure","summary":"Password is not secure","value":{"code":400,"debugInfo":"Password is not secure","errorCode":-10002,"message":"Bad Request"}},"-10013":{"description":"\n* [-10013] Not valid IETF language tag","summary":"Not valid IETF language tag","value":{"code":400,"debugInfo":"Not valid IETF language tag","errorCode":-10013,"message":"Bad Request"}},"-50003":{"description":"\n* [-50003] Password for encrypted Download Shares not allowed","summary":"Password for encrypted Download Shares not allowed","value":{"code":400,"debugInfo":"Password for encrypted Download Shares not allowed","errorCode":-50003,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}},"-80030":{"description":"\n* [-80030] SMS disabled","summary":"SMS disabled","value":{"code":400,"debugInfo":"SMS disabled","errorCode":-80030,"message":"Bad Request"}},"-80040":{"description":"\n* [-80040] Invalid phone number\n\nMust be a FQTN (cf. E.123 / E.164 Format)","summary":"Invalid phone number","value":{"code":400,"debugInfo":"Invalid phone number","errorCode":-80040,"message":"Bad Request"}},"-80041":{"description":"\n* [-80041] Invalid country code\n\nMust be a valid two-letter code (cf. ISO 3166-2)","summary":"Invalid country code","value":{"code":400,"debugInfo":"Invalid country code","errorCode":-80041,"message":"Bad Request"}},"-80064":{"description":"\n* [-80064] Policy Violation","summary":"Policy Violation","value":{"code":400,"debugInfo":"Policy Violation","errorCode":-80064,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-60000":{"description":"\n* [-60000] Download Share not found","summary":"Download Share not found","value":{"code":404,"debugInfo":"Download Share not found","errorCode":-60000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"502":{"content":{"application/json":{"examples":{"-90090":{"description":"\n* [-90090] Could not send text message via SMS","summary":"Could not send text message via SMS","value":{"code":502,"debugInfo":"Could not send text message via SMS","errorCode":-90090,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Gateway"}},"summary":"Update Download Share","tags":["shares"]}},"/v4/shares/downloads/{share_id}/email":{"post":{"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:\n\n* Forbidden characters in the email body: [`<`, `>`]\n","operationId":"sendDownloadShareLinkViaEmail","parameters":[{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShareLinkEmail"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80009":{"description":"\n* [-80009] Invalid email address","summary":"Invalid email address","value":{"code":400,"debugInfo":"Invalid email address","errorCode":-80009,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-60000":{"description":"\n* [-60000] Download Share not found","summary":"Download Share not found","value":{"code":404,"debugInfo":"Download Share not found","errorCode":-60000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Send an existing Download Share link via email","tags":["shares"]}},"/v4/shares/downloads/{share_id}/qr":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadShare"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-60000":{"description":"\n* [-60000] Download Share not found","summary":"Download Share not found","value":{"code":404,"debugInfo":"Download Share not found","errorCode":-60000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request Download Share via QR Code","tags":["shares"]}},"/v4/shares/uploads":{"delete":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUploadSharesRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-60500":{"description":"\n* [-60500] Upload Share not found","summary":"Upload Share not found","value":{"code":404,"debugInfo":"Upload Share not found","errorCode":-60500,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove Upload Shares","tags":["shares"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShareList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of Upload Shares","tags":["shares"]},"post":{"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\nPlease keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters\nmay not be displayed correctly in short messages (SMS).","operationId":"createUploadShare","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUploadShareRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-10002":{"description":"\n* [-10002] Password is not secure","summary":"Password is not secure","value":{"code":400,"debugInfo":"Password is not secure","errorCode":-10002,"message":"Bad Request"}},"-10013":{"description":"\n* [-10013] Not valid IETF language tag","summary":"Not valid IETF language tag","value":{"code":400,"debugInfo":"Not valid IETF language tag","errorCode":-10013,"message":"Bad Request"}},"-41200":{"description":"\n* [-41200] Path is too long","summary":"Path is too long","value":{"code":400,"debugInfo":"Path is too long","errorCode":-41200,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}},"-80009":{"description":"\n* [-80009] Invalid email address","summary":"Invalid email address","value":{"code":400,"debugInfo":"Invalid email address","errorCode":-80009,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}},"-80030":{"description":"\n* [-80030] SMS disabled","summary":"SMS disabled","value":{"code":400,"debugInfo":"SMS disabled","errorCode":-80030,"message":"Bad Request"}},"-80040":{"description":"\n* [-80040] Invalid phone number\n\nMust be a FQTN (cf. E.123 / E.164 Format)","summary":"Invalid phone number","value":{"code":400,"debugInfo":"Invalid phone number","errorCode":-80040,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"502":{"content":{"application/json":{"examples":{"-90090":{"description":"\n* [-90090] Could not send text message via SMS","summary":"Could not send text message via SMS","value":{"code":502,"debugInfo":"Could not send text message via SMS","errorCode":-90090,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Gateway"}},"summary":"Create new Upload Share","tags":["shares"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUploadSharesBulkRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"*/*":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}},"-80063":{"description":"\n* [-80063] Too many items","summary":"Too many items","value":{"code":400,"debugInfo":"Too many items","errorCode":-80063,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"*/*":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"*/*":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"*/*":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-60500":{"description":"\n* [-60500] Upload Share not found","summary":"Upload Share not found","value":{"code":404,"debugInfo":"Upload Share not found","errorCode":-60500,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"*/*":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"*/*":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"502":{"content":{"*/*":{"examples":{"-90090":{"description":"\n* [-90090] Could not send text message via SMS","summary":"Could not send text message via SMS","value":{"code":502,"debugInfo":"Could not send text message via SMS","errorCode":-90090,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Gateway"}},"summary":"Update List of Upload Shares","tags":["shares"]}},"/v4/shares/uploads/{share_id}":{"delete":{"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":[{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-60500":{"description":"\n* [-60500] Upload Share not found","summary":"Upload Share not found","value":{"code":404,"debugInfo":"Upload Share not found","errorCode":-60500,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove Upload Share","tags":["shares"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-60500":{"description":"\n* [-60500] Upload Share not found","summary":"Upload Share not found","value":{"code":404,"debugInfo":"Upload Share not found","errorCode":-60500,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request Upload Share","tags":["shares"]},"put":{"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: [`&`, `'`, `<`, `>`]\n\nPlease keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters\nmay not be displayed correctly in short messages (SMS).","operationId":"updateUploadShare","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUploadShareRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10002":{"description":"\n* [-10002] Password is not secure","summary":"Password is not secure","value":{"code":400,"debugInfo":"Password is not secure","errorCode":-10002,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}},"-80030":{"description":"\n* [-80030] SMS disabled","summary":"SMS disabled","value":{"code":400,"debugInfo":"SMS disabled","errorCode":-80030,"message":"Bad Request"}},"-80040":{"description":"\n* [-80040] Invalid phone number\n\nMust be a FQTN (cf. E.123 / E.164 Format)","summary":"Invalid phone number","value":{"code":400,"debugInfo":"Invalid phone number","errorCode":-80040,"message":"Bad Request"}},"-80041":{"description":"\n* [-80041] Invalid country code\n\nMust be a valid two-letter code (cf. ISO 3166-2)","summary":"Invalid country code","value":{"code":400,"debugInfo":"Invalid country code","errorCode":-80041,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-60500":{"description":"\n* [-60500] Upload Share not found","summary":"Upload Share not found","value":{"code":404,"debugInfo":"Upload Share not found","errorCode":-60500,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"502":{"content":{"application/json":{"examples":{"-90090":{"description":"\n* [-90090] Could not send text message via SMS","summary":"Could not send text message via SMS","value":{"code":502,"debugInfo":"Could not send text message via SMS","errorCode":-90090,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Gateway"}},"summary":"Update Upload Share","tags":["shares"]}},"/v4/shares/uploads/{share_id}/email":{"post":{"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:\n\n* Forbidden characters in the email body: [`<`, `>`]\n","operationId":"sendUploadShareLinkViaEmail","parameters":[{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShareLinkEmail"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80009":{"description":"\n* [-80009] Invalid email address","summary":"Invalid email address","value":{"code":400,"debugInfo":"Invalid email address","errorCode":-80009,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-60500":{"description":"\n* [-60500] Upload Share not found","summary":"Upload Share not found","value":{"code":404,"debugInfo":"Upload Share not found","errorCode":-60500,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Send an existing Upload Share link via email","tags":["shares"]}},"/v4/shares/uploads/{share_id}/qr":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadShare"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-60500":{"description":"\n* [-60500] Upload Share not found","summary":"Upload Share not found","value":{"code":404,"debugInfo":"Upload Share not found","errorCode":-60500,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request Upload Share via QR Code","tags":["shares"]}},"/v4/system/config/actions/test/ad":{"post":{"description":"### Description:  \nTest Active Directory configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> of the Provider Customer required.\n\n### Postcondition:\nActive Directory configuration is returned if successful.\n\n### Further Information:\nDRACOON tries to establish a connection with the provided information.","operationId":"testAdConfig","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestActiveDirectoryConfigRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestActiveDirectoryConfigResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}},"-90051":{"description":"\n* [-90051] Active Directory login failed","summary":"Active Directory login failed","value":{"code":401,"debugInfo":"Active Directory login failed","errorCode":-90051,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90052":{"description":"\n* [-90052] Active Directory connection Failed","summary":"Active Directory connection Failed","value":{"code":404,"debugInfo":"Active Directory connection Failed","errorCode":-90052,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Test Active Directory configuration","tags":["system-auth-config"]}},"/v4/system/config/actions/test/radius":{"post":{"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> 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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90072":{"description":"\n* [-90072] RADIUS configuration not found","summary":"RADIUS configuration not found","value":{"code":404,"debugInfo":"RADIUS configuration not found","errorCode":-90072,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"},"502":{"content":{"application/json":{"examples":{"-90070":{"description":"\n* [-90070] RADIUS connection failed","summary":"RADIUS connection failed","value":{"code":502,"debugInfo":"RADIUS connection failed","errorCode":-90070,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Gateway"}},"summary":"Test RADIUS server availability","tags":["system-auth-config"]}},"/v4/system/config/auth/ads":{"get":{"description":"### Description:  \nRetrieve a list of configured Active Directories.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> of the Provider Customer required.\n\n### Postcondition:\nList of Active Directory configurations is returned.\n\n### Further Information:\nNone.","operationId":"requestAdConfigs","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfigList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of Active Directory configurations","tags":["system-auth-config"]},"post":{"description":"### Description:\nCreate a new Active Directory configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> of the Provider Customer required.\n\n### Postcondition:\nNew Active Directory configuration created.\n\n### Further Information:\nNone.","operationId":"createAdConfig","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateActiveDirectoryConfigRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-90055":{"description":"\n* [-90055] Invalid Active Directory configuration","summary":"Invalid Active Directory configuration","value":{"code":502,"debugInfo":"Invalid Active Directory configuration","errorCode":-90055,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-90056":{"description":"\n* [-90056] Active Directory name already exists","summary":"Active Directory name already exists","value":{"code":409,"debugInfo":"Active Directory name already exists","errorCode":-90056,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create Active Directory configuration","tags":["system-auth-config"]}},"/v4/system/config/auth/ads/{ad_id}":{"delete":{"description":"### Description:\nDelete an existing Active Directory configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> of the Provider Customer required.\n\n### Postcondition:\nActive Directory configuration is removed.\n\n### Further Information:\nNone.","operationId":"removeAdConfig","parameters":[{"description":"Active Directory ID","in":"path","name":"ad_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90050":{"description":"\n* [-90050] Active Directory configuration not found","summary":"Active Directory configuration not found","value":{"code":404,"debugInfo":"Active Directory configuration not found","errorCode":-90050,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-90058":{"description":"\n* [-90058] Cannot delete Active Directory configuration with active users","summary":"Cannot delete Active Directory configuration with active users","value":{"code":409,"debugInfo":"Cannot delete Active Directory configuration with active users","errorCode":-90058,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove Active Directory configuration","tags":["system-auth-config"]},"get":{"description":"### Description:  \nRetrieve the configuration of an Active Directory.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> of the Provider Customer required.\n\n### Postcondition:\nActive Directory configuration is returned.\n\n### Further Information:\nNone.","operationId":"requestAdConfig","parameters":[{"description":"Active Directory ID","in":"path","name":"ad_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90050":{"description":"\n* [-90050] Active Directory configuration not found","summary":"Active Directory configuration not found","value":{"code":404,"debugInfo":"Active Directory configuration not found","errorCode":-90050,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request Active Directory configuration","tags":["system-auth-config"]},"put":{"description":"### Description:  \nUpdate an existing Active Directory configuration.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> of the Provider Customer required.\n\n### Postcondition:\nActive Directory configuration updated.\n\n### Further Information:\nNone.","operationId":"updateAdConfig","parameters":[{"description":"Active Directory ID","in":"path","name":"ad_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateActiveDirectoryConfigRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveDirectoryConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-90055":{"description":"\n* [-90055] Invalid Active Directory configuration","summary":"Invalid Active Directory configuration","value":{"code":502,"debugInfo":"Invalid Active Directory configuration","errorCode":-90055,"message":"Bad Gateway"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-90050":{"description":"\n* [-90050] Active Directory configuration not found","summary":"Active Directory configuration not found","value":{"code":404,"debugInfo":"Active Directory configuration not found","errorCode":-90050,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-90056":{"description":"\n* [-90056] Active Directory name already exists","summary":"Active Directory name already exists","value":{"code":409,"debugInfo":"Active Directory name already exists","errorCode":-90056,"message":"Conflict"}},"-90063":{"description":"\n* [-90063] Cannot activate user import due to active users at other customers","summary":"Cannot activate user import due to active users at other customers","value":{"code":409,"debugInfo":"Cannot activate user import due to active users at other customers","errorCode":-90063,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update Active Directory configuration","tags":["system-auth-config"]}},"/v4/system/config/auth/openid/idps":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OpenIdIdpConfig"},"type":"array"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of OpenID Connect IDP configurations","tags":["system-auth-config"]},"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOpenIdIdpConfigRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80010":{"description":"\n* [-80010] Invalid URL","summary":"Invalid URL","value":{"code":400,"debugInfo":"Invalid URL","errorCode":-80010,"message":"Bad Request"}},"-80032":{"description":"\n* [-80032] Invalid URI","summary":"Invalid URI","value":{"code":400,"debugInfo":"Invalid URI","errorCode":-80032,"message":"Bad Request"}},"-90049":{"description":"\n* [-90049] Invalid OpenID Connect flow","summary":"Invalid OpenID Connect flow","value":{"code":400,"debugInfo":"Invalid OpenID Connect flow","errorCode":-90049,"message":"Bad Request"}},"-90074":{"description":"\n* [-90074] Invalid OpenID Connect user info source","summary":"Invalid OpenID Connect user info source","value":{"code":400,"debugInfo":"Invalid OpenID Connect user info source","errorCode":-90074,"message":"Bad Request"}},"-90086":{"description":"\n* [-90086] Invalid PKCE code challenge method","summary":"Invalid PKCE code challenge method","value":{"code":400,"debugInfo":"Invalid PKCE code challenge method","errorCode":-90086,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-90036":{"description":"\n* [-90036] OpenID Connect IDP configuration with same name already exists","summary":"OpenID Connect IDP configuration with same name already exists","value":{"code":409,"debugInfo":"OpenID Connect IDP configuration with same name already exists","errorCode":-90036,"message":"Conflict"}},"-90037":{"description":"\n* [-90037] OpenID Connect IDP configuration with same issuer already exists","summary":"OpenID Connect IDP configuration with same issuer already exists","value":{"code":409,"debugInfo":"OpenID Connect IDP configuration with same issuer already exists","errorCode":-90037,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create OpenID Connect IDP configuration","tags":["system-auth-config"]}},"/v4/system/config/auth/openid/idps/{idp_id}":{"delete":{"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":[{"description":"OpenID Connect IDP configuration ID","in":"path","name":"idp_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90035":{"description":"\n* [-90035] OpenID Connect IDP configuration not found","summary":"OpenID Connect IDP configuration not found","value":{"code":404,"debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-90038":{"description":"\n* [-90038] Cannot delete OpenID Connect IDP configuration with active users","summary":"Cannot delete OpenID Connect IDP configuration with active users","value":{"code":409,"debugInfo":"Cannot delete OpenID Connect IDP configuration with active users","errorCode":-90038,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove OpenID Connect IDP configuration","tags":["system-auth-config"]},"get":{"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":[{"description":"OpenID Connect IDP configuration ID","in":"path","name":"idp_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90035":{"description":"\n* [-90035] OpenID Connect IDP configuration not found","summary":"OpenID Connect IDP configuration not found","value":{"code":404,"debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request OpenID Connect IDP configuration","tags":["system-auth-config"]},"put":{"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":[{"description":"OpenID Connect IDP configuration ID","in":"path","name":"idp_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOpenIdIdpConfigRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenIdIdpConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80010":{"description":"\n* [-80010] Invalid URL","summary":"Invalid URL","value":{"code":400,"debugInfo":"Invalid URL","errorCode":-80010,"message":"Bad Request"}},"-80032":{"description":"\n* [-80032] Invalid URI","summary":"Invalid URI","value":{"code":400,"debugInfo":"Invalid URI","errorCode":-80032,"message":"Bad Request"}},"-90049":{"description":"\n* [-90049] Invalid OpenID Connect flow","summary":"Invalid OpenID Connect flow","value":{"code":400,"debugInfo":"Invalid OpenID Connect flow","errorCode":-90049,"message":"Bad Request"}},"-90074":{"description":"\n* [-90074] Invalid OpenID Connect user info source","summary":"Invalid OpenID Connect user info source","value":{"code":400,"debugInfo":"Invalid OpenID Connect user info source","errorCode":-90074,"message":"Bad Request"}},"-90086":{"description":"\n* [-90086] Invalid PKCE code challenge method","summary":"Invalid PKCE code challenge method","value":{"code":400,"debugInfo":"Invalid PKCE code challenge method","errorCode":-90086,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-30000":{"description":"\n* [-30000] Group not found","summary":"Group not found","value":{"code":404,"debugInfo":"Group not found","errorCode":-30000,"message":"Not Found"}},"-90035":{"description":"\n* [-90035] OpenID Connect IDP configuration not found","summary":"OpenID Connect IDP configuration not found","value":{"code":404,"debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-90036":{"description":"\n* [-90036] OpenID Connect IDP configuration with same name already exists","summary":"OpenID Connect IDP configuration with same name already exists","value":{"code":409,"debugInfo":"OpenID Connect IDP configuration with same name already exists","errorCode":-90036,"message":"Conflict"}},"-90037":{"description":"\n* [-90037] OpenID Connect IDP configuration with same issuer already exists","summary":"OpenID Connect IDP configuration with same issuer already exists","value":{"code":409,"debugInfo":"OpenID Connect IDP configuration with same issuer already exists","errorCode":-90037,"message":"Conflict"}},"-90063":{"description":"\n* [-90063] Cannot activate user import due to active users at other customers","summary":"Cannot activate user import due to active users at other customers","value":{"code":409,"debugInfo":"Cannot activate user import due to active users at other customers","errorCode":-90063,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update OpenID Connect IDP configuration","tags":["system-auth-config"]}},"/v4/system/config/auth/radius":{"delete":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90072":{"description":"\n* [-90072] RADIUS configuration not found","summary":"RADIUS configuration not found","value":{"code":404,"debugInfo":"RADIUS configuration not found","errorCode":-90072,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove RADIUS configuration","tags":["system-auth-config"]},"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90072":{"description":"\n* [-90072] RADIUS configuration not found","summary":"RADIUS configuration not found","value":{"code":404,"debugInfo":"RADIUS configuration not found","errorCode":-90072,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request RADIUS configuration","tags":["system-auth-config"]},"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusConfigCreateRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusConfig"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80014":{"description":"\n* [-80014] Invalid hostname or IP address","summary":"Invalid hostname or IP address","value":{"code":400,"debugInfo":"Invalid hostname or IP address","errorCode":-80014,"message":"Bad Request"}},"-80033":{"description":"\n* [-80033] Invalid port number","summary":"Invalid port number","value":{"code":400,"debugInfo":"Invalid port number","errorCode":-80033,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-90073":{"description":"\n* [-90073] RADIUS configuration already exists","summary":"RADIUS configuration already exists","value":{"code":409,"debugInfo":"RADIUS configuration already exists","errorCode":-90073,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create RADIUS configuration","tags":["system-auth-config"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusConfigUpdateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80014":{"description":"\n* [-80014] Invalid hostname or IP address","summary":"Invalid hostname or IP address","value":{"code":400,"debugInfo":"Invalid hostname or IP address","errorCode":-80014,"message":"Bad Request"}},"-80033":{"description":"\n* [-80033] Invalid port number","summary":"Invalid port number","value":{"code":400,"debugInfo":"Invalid port number","errorCode":-80033,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90072":{"description":"\n* [-90072] RADIUS configuration not found","summary":"RADIUS configuration not found","value":{"code":404,"debugInfo":"RADIUS configuration not found","errorCode":-90072,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update RADIUS configuration","tags":["system-auth-config"]}},"/v4/system/config/oauth/clients":{"get":{"description":"### Description:  \nRetrieve a list of configured OAuth clients.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nList of OAuth clients is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isStandard:eq:true`  \nGet standard OAuth clients.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `isStandard` | Standard client filter | `eq` |  | `true or false` |\n| `isExternal` | External client filter | `eq` |  | `true or false` |\n| `isEnabled` | Enabled/disabled clients filter | `eq` |  | `true or false` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`clientName:desc|isStandard:asc`  \nSort by `clientName` descending **AND** `isStandard` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `clientName` | Client name |\n| `isStandard` | Is a standard client |\n| `isExternal` | Is a external client |\n| `isEnabled` | Is a enabled client |\n\n</details>","operationId":"requestOAuthClients","parameters":[{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OAuthClient"},"type":"array"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of OAuth clients","tags":["system-auth-config"]},"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOAuthClientRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthClient"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-10002":{"description":"\n* [-10002] Password is not secure","summary":"Password is not secure","value":{"code":400,"debugInfo":"Password is not secure","errorCode":-10002,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}},"-80032":{"description":"\n* [-80032] Invalid URI","summary":"Invalid URI","value":{"code":400,"debugInfo":"Invalid URI","errorCode":-80032,"message":"Bad Request"}},"-90083":{"description":"\n* [-90083] Invalid OAuth grant type","summary":"Invalid OAuth grant type","value":{"code":400,"debugInfo":"Invalid OAuth grant type","errorCode":-90083,"message":"Bad Request"}},"-90085":{"description":"\n* [-90085] Invalid OAuth token validity","summary":"Invalid OAuth token validity","value":{"code":400,"debugInfo":"Invalid OAuth token validity","errorCode":-90085,"message":"Bad Request"}},"-90091":{"description":"\n* [-90091] OAuth grant type refresh token can only be used in combination with authorization code or password","summary":"OAuth grant type refresh token can only be used in combination with authorization code or password","value":{"code":400,"debugInfo":"OAuth grant type refresh token can only be used in combination with authorization code or password","errorCode":-90091,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-90081":{"description":"\n* [-90081] OAuth client ID already exists","summary":"OAuth client ID already exists","value":{"code":409,"debugInfo":"OAuth client ID already exists","errorCode":-90081,"message":"Conflict"}},"-90087":{"description":"\n* [-90087] OAuth client name already exists","summary":"OAuth client name already exists","value":{"code":409,"debugInfo":"OAuth client name already exists","errorCode":-90087,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create OAuth client","tags":["system-auth-config"]}},"/v4/system/config/oauth/clients/{client_id}":{"delete":{"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":[{"description":"OAuth client ID","in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-90088":{"description":"\n* [-90088] OAuth standard client cannot be changed","summary":"OAuth standard client cannot be changed","value":{"code":403,"debugInfo":"OAuth standard client cannot be changed","errorCode":-90088,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90080":{"description":"\n* [-90080] OAuth client not found","summary":"OAuth client not found","value":{"code":404,"debugInfo":"OAuth client not found","errorCode":-90080,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove OAuth client","tags":["system-auth-config"]},"get":{"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":[{"description":"OAuth client ID","in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthClient"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90080":{"description":"\n* [-90080] OAuth client not found","summary":"OAuth client not found","value":{"code":404,"debugInfo":"OAuth client not found","errorCode":-90080,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request OAuth client","tags":["system-auth-config"]},"put":{"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":[{"description":"OAuth client ID","in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOAuthClientRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthClient"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10002":{"description":"\n* [-10002] Password is not secure","summary":"Password is not secure","value":{"code":400,"debugInfo":"Password is not secure","errorCode":-10002,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80032":{"description":"\n* [-80032] Invalid URI","summary":"Invalid URI","value":{"code":400,"debugInfo":"Invalid URI","errorCode":-80032,"message":"Bad Request"}},"-90083":{"description":"\n* [-90083] Invalid OAuth grant type","summary":"Invalid OAuth grant type","value":{"code":400,"debugInfo":"Invalid OAuth grant type","errorCode":-90083,"message":"Bad Request"}},"-90085":{"description":"\n* [-90085] Invalid OAuth token validity","summary":"Invalid OAuth token validity","value":{"code":400,"debugInfo":"Invalid OAuth token validity","errorCode":-90085,"message":"Bad Request"}},"-90087":{"description":"\n* [-90087] OAuth client name already exists","summary":"OAuth client name already exists","value":{"code":409,"debugInfo":"OAuth client name already exists","errorCode":-90087,"message":"Conflict"}},"-90091":{"description":"\n* [-90091] OAuth grant type refresh token can only be used in combination with authorization code or password","summary":"OAuth grant type refresh token can only be used in combination with authorization code or password","value":{"code":400,"debugInfo":"OAuth grant type refresh token can only be used in combination with authorization code or password","errorCode":-90091,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-90088":{"description":"\n* [-90088] OAuth standard client cannot be changed","summary":"OAuth standard client cannot be changed","value":{"code":403,"debugInfo":"OAuth standard client cannot be changed","errorCode":-90088,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90080":{"description":"\n* [-90080] OAuth client not found","summary":"OAuth client not found","value":{"code":404,"debugInfo":"OAuth client not found","errorCode":-90080,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update OAuth client","tags":["system-auth-config"]}},"/v4/system/config/policies/classifications":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.30.0</h3>\n\n### Description:  \nRetrieve a list of classification policies:\n* `shareClassificationPolicies`\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nList of configured classification policies is returned.\n\n### Further Information:\n`classificationRequiresSharePassword`: When a node has this classification or higher, it cannot be shared without a password. If the node is an encrypted file this policy has no effect. `0` means no password will be enforced.\n","operationId":"requestClassificationPoliciesConfig","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassificationPoliciesConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request classification policies","tags":["system-policies-config"]},"put":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.30.0</h3>\n\n### Description:\nChange current classification policies:\n* `shareClassificationPolicies`\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nClassification policies are changed.\n\n### Further Information:\n`classificationRequiresSharePassword`: When a node has this classification or higher, it cannot be shared without a password. If the node is an encrypted file this policy has no effect. `0` means no password will be enforced.\n\n","operationId":"changeClassificationPoliciesConfig","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateClassificationPoliciesConfig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassificationPoliciesConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-90001":{"description":"\n* [-90001] Invalid settings configuration","summary":"Invalid settings configuration","value":{"code":400,"debugInfo":"Invalid settings configuration","errorCode":-90001,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Change classification policies","tags":["system-policies-config"]}},"/v4/system/config/policies/guest_users":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.40.0</h3>\n\n### Description:  \nRetrieve guest user policies.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> of the Provider Customer required.\n\n### Postcondition:\nGuest user policies are returned.\n\n### Further Information:\nNone.","operationId":"requestGuestUsersPoliciesConfig","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestUsersPoliciesConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request guest user policies","tags":["system-policies-config"]},"put":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.40.0</h3>\n\n### Description:\nChange current guest user policies.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nGuest user policies are changed.  \n\n### Further Information:\nNone.","operationId":"changeGuestUsersPoliciesConfig","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGuestUsersPoliciesConfig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestUsersPoliciesConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Change guest user policies","tags":["system-policies-config"]}},"/v4/system/config/policies/mfa":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.37.0</h3>\n\n### Description:  \nRetrieve a list of multi-factor authentication policies.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> of the Provider Customer required.\n\n### Postcondition:\nList of configured multi-factor authentication policies is returned.\n\n### Further Information:\nNone.","operationId":"requestMfaPoliciesConfig","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaPoliciesConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"examples":{"-89000":{"description":"\n* [-89000] This feature is not available in this product package","summary":"This feature is not available in this product package","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request MFA policies","tags":["system-policies-config"]},"put":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.37.0</h3>\n\n### Description:\nChange current multi-factor authentication policies.  \n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and\nrole <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> of the Provider Customer required.\n\n### Postcondition:\nMulti-factor authentication policies are changed.  \n\n### Further Information:\nNone.","operationId":"changeMfaPoliciesConfig","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMfaPoliciesConfig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaPoliciesConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"examples":{"-89000":{"description":"\n* [-89000] This feature is not available in this product package","summary":"This feature is not available in this product package","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Change MFA policies","tags":["system-policies-config"]}},"/v4/system/config/policies/passwords":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPoliciesConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request password policies","tags":["system-policies-config"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePasswordPoliciesConfig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPoliciesConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-90001":{"description":"\n* [-90001] Invalid settings configuration","summary":"Invalid settings configuration","value":{"code":400,"debugInfo":"Invalid settings configuration","errorCode":-90001,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Change password policies","tags":["system-policies-config"]}},"/v4/system/config/policies/passwords/enforce_change":{"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Enforce login password change for all users","tags":["system-policies-config"]}},"/v4/system/config/policies/passwords/{password_type}":{"get":{"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":[{"description":"Password type","in":"path","name":"password_type","required":true,"schema":{"enum":["login","encryption","shares"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPoliciesConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80036":{"description":"\n* [-80036] Invalid password type","summary":"Invalid password type","value":{"code":400,"debugInfo":"Invalid password type","errorCode":-80036,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request password policies for a certain password type","tags":["system-policies-config"]}},"/v4/system/config/settings/auth":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request authentication settings","tags":["system-settings-config"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10100":{"description":"\n* [-10100] Invalid authentication method","summary":"Invalid authentication method","value":{"code":400,"debugInfo":"Invalid authentication method","errorCode":-10100,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-10102":{"description":"\n* [-10102] At least one authentication method must be enabled","summary":"At least one authentication method must be enabled","value":{"code":400,"debugInfo":"At least one authentication method must be enabled","errorCode":-10102,"message":"Bad Request"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update authentication settings","tags":["system-settings-config"]}},"/v4/system/config/settings/defaults":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemDefaults"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request system defaults","tags":["system-settings-config"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSystemDefaults"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemDefaults"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10013":{"description":"\n* [-10013] Not valid IETF language tag","summary":"Not valid IETF language tag","value":{"code":400,"debugInfo":"Not valid IETF language tag","errorCode":-10013,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80018":{"description":"\n* [-80018] Not between 0 and 9999","summary":"Not between 0 and 9999","value":{"code":400,"debugInfo":"Not between 0 and 9999","errorCode":-80018,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update system defaults","tags":["system-settings-config"]}},"/v4/system/config/settings/eventlog":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventlogConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request eventlog settings","tags":["system-settings-config"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEventlogConfig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventlogConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80018":{"description":"\n* [-80018] Not between 0 and 9999","summary":"Not between 0 and 9999","value":{"code":400,"debugInfo":"Not between 0 and 9999","errorCode":-80018,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update eventlog settings","tags":["system-settings-config"]}},"/v4/system/config/settings/general":{"get":{"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| `authTokenRestrictions` | Determines auth token restrictions. (e.g. restricted access token validity) | `object` |\n\n</details>\n\n### Deprecated configurable general settings:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting                           | Description | Value |\n|:----------------------------------| :--- | :--- |\n| <del>`mediaServerEnabled`</del>   | Determines whether media server is enabled.<br>Returns boolean value dependent on conjunction of `mediaServerConfigEnabled` AND `mediaServerEnabled` | `true or false` |\n| <del>`weakPasswordEnabled`</del>  | Determines whether weak password is allowed.<br>Use `GET /system/config/policies/passwords` API to get configured password policies. | `true or false` |\n| <del>`hideLoginInputFields`</del> | Determines whether input fields for login should be enabled | `true or false` |\n\n</details>","operationId":"requestGeneralSettings","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralSettings"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request general settings","tags":["system-settings-config"]},"put":{"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| `authTokenRestrictions` | Determines auth token restrictions. (e.g. restricted access token validity) | `object` |\n\n</details>\n\n### Deprecated configurable general settings:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| Setting                           | Description | Value |\n|:----------------------------------| :--- | :--- |\n| <del>`mediaServerEnabled`</del>   | Determines whether media server is enabled.<br>**CANNOT** be enabled if media server configuration is disabled in `core-service.properties`.<br>Check `mediaServerConfigEnabled` with `GET /system/config/settings/infrastructure`. | `true or false` |\n| <del>`weakPasswordEnabled`</del>  | Determines whether weak password is allowed.<br>Use `PUT /system/config/policies/passwords` API to change configured password policies. | `true or false` |\n| <del>`hideLoginInputFields`</del> | Determines whether input fields for login should be enabled | `true or false` |\n\n</details>","operationId":"updateGeneralSettings","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGeneralSettings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralSettings"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-90010":{"description":"\n* [-90010] Client-side encryption is already enable and cannot be disabled","summary":"Client-side encryption is already enable and cannot be disabled","value":{"code":400,"debugInfo":"Client-side encryption is already enable and cannot be disabled","errorCode":-90010,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-90001":{"description":"\n* [-90001] Invalid settings configuration","summary":"Invalid settings configuration","value":{"code":400,"debugInfo":"Invalid settings configuration","errorCode":-90001,"message":"Bad Request"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90026":{"description":"\n* [-90026] S3 configuration not found","summary":"S3 configuration not found","value":{"code":404,"debugInfo":"S3 configuration not found","errorCode":-90026,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update general settings","tags":["system-settings-config"]}},"/v4/system/config/settings/infrastructure":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfrastructureProperties"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request infrastructure properties","tags":["system-settings-config"]}},"/v4/system/config/settings/syslog":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyslogConfig"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request syslog settings","tags":["system-settings-config"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSyslogConfig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyslogConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80012":{"description":"\n* [-80012] Illegal protocol","summary":"Illegal protocol","value":{"code":400,"debugInfo":"Illegal protocol","errorCode":-80012,"message":"Bad Request"}},"-80014":{"description":"\n* [-80014] Invalid hostname or IP address","summary":"Invalid hostname or IP address","value":{"code":400,"debugInfo":"Invalid hostname or IP address","errorCode":-80014,"message":"Bad Request"}},"-80033":{"description":"\n* [-80033] Invalid port number","summary":"Invalid port number","value":{"code":400,"debugInfo":"Invalid port number","errorCode":-80033,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update syslog settings","tags":["system-settings-config"]}},"/v4/system/config/storage/s3":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Config"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90026":{"description":"\n* [-90026] S3 configuration not found","summary":"S3 configuration not found","value":{"code":404,"debugInfo":"S3 configuration not found","errorCode":-90026,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request S3 storage configuration","tags":["system-storage-config"]},"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3ConfigCreateRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Config"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80010":{"description":"\n* [-80010] Invalid URL","summary":"Invalid URL","value":{"code":400,"debugInfo":"Invalid URL","errorCode":-80010,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}},"-90001":{"description":"\n* [-90001] Invalid settings configuration","summary":"Invalid settings configuration","value":{"code":400,"debugInfo":"Invalid settings configuration","errorCode":-90001,"message":"Bad Request"}},"-90025":{"description":"\n* [-90025] S3 configuration already exists","summary":"S3 configuration already exists","value":{"code":400,"debugInfo":"S3 configuration already exists","errorCode":-90025,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create S3 storage configuration","tags":["system-storage-config"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3ConfigUpdateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Config"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80010":{"description":"\n* [-80010] Invalid URL","summary":"Invalid URL","value":{"code":400,"debugInfo":"Invalid URL","errorCode":-80010,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}},"-90001":{"description":"\n* [-90001] Invalid settings configuration","summary":"Invalid settings configuration","value":{"code":400,"debugInfo":"Invalid settings configuration","errorCode":-90001,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90026":{"description":"\n* [-90026] S3 configuration not found","summary":"S3 configuration not found","value":{"code":404,"debugInfo":"S3 configuration not found","errorCode":-90026,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update S3 storage configuration","tags":["system-storage-config"]}},"/v4/system/config/storage/s3/tags":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}},"-90032":{"description":"\n* [-90032] S3 tags are disabled","summary":"S3 tags are disabled","value":{"code":412,"debugInfo":"S3 tags are disabled","errorCode":-90032,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of configured S3 tags","tags":["system-storage-config"]},"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3TagCreateRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Tag"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-90031":{"description":"\n* [-90031] Limit of mandatory S3 tags has been reached","summary":"Limit of mandatory S3 tags has been reached","value":{"code":400,"debugInfo":"Limit of mandatory S3 tags has been reached","errorCode":-90031,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-90028":{"description":"\n* [-90028] S3 tag already exists","summary":"S3 tag already exists","value":{"code":409,"debugInfo":"S3 tag already exists","errorCode":-90028,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}},"-90032":{"description":"\n* [-90032] S3 tags are disabled","summary":"S3 tags are disabled","value":{"code":412,"debugInfo":"S3 tags are disabled","errorCode":-90032,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create S3 tag","tags":["system-storage-config"]}},"/v4/system/config/storage/s3/tags/{id}":{"delete":{"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":[{"description":"S3 tag ID","in":"path","name":"id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90029":{"description":"\n* [-90029] S3 tag not found","summary":"S3 tag not found","value":{"code":404,"debugInfo":"S3 tag not found","errorCode":-90029,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}},"-90032":{"description":"\n* [-90032] S3 tags are disabled","summary":"S3 tags are disabled","value":{"code":412,"debugInfo":"S3 tags are disabled","errorCode":-90032,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove S3 tag","tags":["system-storage-config"]},"get":{"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":[{"description":"S3 tag ID","in":"path","name":"id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Tag"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90029":{"description":"\n* [-90029] S3 tag not found","summary":"S3 tag not found","value":{"code":404,"debugInfo":"S3 tag not found","errorCode":-90029,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}},"-90030":{"description":"\n* [-90030] S3 storage disabled","summary":"S3 storage disabled","value":{"code":412,"debugInfo":"S3 storage disabled","errorCode":-90030,"message":"Precondition Failed"}},"-90032":{"description":"\n* [-90032] S3 tags are disabled","summary":"S3 tags are disabled","value":{"code":412,"debugInfo":"S3 tags are disabled","errorCode":-90032,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request S3 tag","tags":["system-storage-config"]}},"/v4/uploads/{token}":{"delete":{"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":[{"description":"Upload token","in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-50506":{"description":"\n* [-50506] Exceeds the number of files for this Upload Share","summary":"Exceeds the number of files for this Upload Share","value":{"code":400,"debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-90033":{"description":"\n* [-90033] S3 direct upload is enforced","summary":"S3 direct upload is enforced","value":{"code":400,"debugInfo":"S3 direct upload is enforced","errorCode":-90033,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-20502":{"description":"\n* [-20502] Invalid (up-) download token","summary":"Invalid (up-) download token","value":{"code":401,"debugInfo":"Invalid (up-) download token","errorCode":-20502,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-50501":{"description":"\n* [-50501] Upload access key not found","summary":"Upload access key not found","value":{"code":404,"debugInfo":"Upload access key not found","errorCode":-50501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-50504":{"description":"\n* [-50504] Exceeds the quota for this Upload Share","summary":"Exceeds the quota for this Upload Share","value":{"code":507,"debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"security":[],"summary":"Cancel file upload","tags":["uploads"]},"post":{"description":"### Description:  \nUpload a (chunk of a) file.\n\n### Precondition:\nValid upload token.\n\n### Postcondition:\nChunk uploaded.\n\n### Further Information:\nRange requests are supported.  \n\nFollowing `Content-Types` are supported by this API:\n* `multipart/form-data`\n* provided `Content-Type`\n\nFor both file upload types set the correct `Content-Type` header and body.  \n\n### Examples:  \n\n* `multipart/form-data`\n```\nPOST /api/v4/uploads/{token} HTTP/1.1\n\nHeader:\n...\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n...\n\nBody:\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"file\"; filename=\"file.txt\"\nContent-Type: text/plain\n\nContent of file.txt\n------WebKitFormBoundary7MA4YWxkTrZu0gW--\n```\n\n* any other `Content-Type` \n```\nPOST /api/v4/uploads/{token} HTTP/1.1\n\nHeader:\n...\nContent-Type: { ... }\n...\n\nBody:\nraw content\n```\n","externalDocs":{"description":"Range Requests","url":"https://tools.ietf.org/html/rfc7233"},"operationId":"uploadFileByTokenAsMultipart_1","parameters":[{"description":"Upload token","in":"path","name":"token","required":true,"schema":{"type":"string"}},{"description":"Content-Range \n\ne.g. `bytes 0-999/3980`","in":"header","name":"Content-Range","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"description":"File","format":"binary","type":"string"}},"required":["file"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}},"description":"OK"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkUploadResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-50506":{"description":"\n* [-50506] Exceeds the number of files for this Upload Share","summary":"Exceeds the number of files for this Upload Share","value":{"code":400,"debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80021":{"description":"\n* [-80021] Incorrect upload Content-Range","summary":"Incorrect upload Content-Range","value":{"code":400,"debugInfo":"Incorrect upload Content-Range","errorCode":-80021,"message":"Bad Request"}},"-80037":{"description":"\n* [-80037] Exceeds maximum data length for AES GCM encryption","summary":"Exceeds maximum data length for AES GCM encryption","value":{"code":400,"debugInfo":"Exceeds maximum data length for AES GCM encryption","errorCode":-80037,"message":"Bad Request"}},"-90033":{"description":"\n* [-90033] S3 direct upload is enforced","summary":"S3 direct upload is enforced","value":{"code":400,"debugInfo":"S3 direct upload is enforced","errorCode":-90033,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-20502":{"description":"\n* [-20502] Invalid (up-) download token","summary":"Invalid (up-) download token","value":{"code":401,"debugInfo":"Invalid (up-) download token","errorCode":-20502,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-50501":{"description":"\n* [-50501] Upload access key not found","summary":"Upload access key not found","value":{"code":404,"debugInfo":"Upload access key not found","errorCode":-50501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-50504":{"description":"\n* [-50504] Exceeds the quota for this Upload Share","summary":"Exceeds the quota for this Upload Share","value":{"code":507,"debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"security":[],"summary":"Upload file","tags":["uploads"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Upload token","in":"path","name":"token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteUploadRequest"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"Created"},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Node"}}},"description":"Accepted"},"400":{"content":{"application/json":{"examples":{"-40001":{"description":"\n* [-40001] (Target) room is not encrypted","summary":"(Target) room is not encrypted","value":{"code":400,"debugInfo":"(Target) room is not encrypted","errorCode":-40001,"message":"Bad Request"}},"-40755":{"description":"\n* [-40755] Bad node name","summary":"Bad node name","value":{"code":400,"debugInfo":"Bad node name","errorCode":-40755,"message":"Bad Request"}},"-40763":{"description":"\n* [-40763] File key must be set for an upload into encrypted room","summary":"File key must be set for an upload into encrypted room","value":{"code":400,"debugInfo":"File key must be set for an upload into encrypted room","errorCode":-40763,"message":"Bad Request"}},"-50503":{"description":"\n* [-50503] Illegal resolution strategy","summary":"Illegal resolution strategy","value":{"code":400,"debugInfo":"Illegal resolution strategy","errorCode":-50503,"message":"Bad Request"}},"-50506":{"description":"\n* [-50506] Exceeds the number of files for this Upload Share","summary":"Exceeds the number of files for this Upload Share","value":{"code":400,"debugInfo":"Exceeds the number of files for this Upload Share","errorCode":-50506,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80034":{"description":"\n* [-80034] Keeping Share Links is only allowed with conflict mode overwrite","summary":"Keeping Share Links is only allowed with conflict mode overwrite","value":{"code":400,"debugInfo":"Keeping Share Links is only allowed with conflict mode overwrite","errorCode":-80034,"message":"Bad Request"}},"-90033":{"description":"\n* [-90033] S3 direct upload is enforced","summary":"S3 direct upload is enforced","value":{"code":400,"debugInfo":"S3 direct upload is enforced","errorCode":-90033,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-20502":{"description":"\n* [-20502] Invalid (up-) download token","summary":"Invalid (up-) download token","value":{"code":401,"debugInfo":"Invalid (up-) download token","errorCode":-20502,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-20501":{"description":"\n* [-20501] Upload not found","summary":"Upload not found","value":{"code":404,"debugInfo":"Upload not found","errorCode":-20501,"message":"Not Found"}},"-40000":{"description":"\n* [-40000] Container not found","summary":"Container not found","value":{"code":404,"debugInfo":"Container not found","errorCode":-40000,"message":"Not Found"}},"-40751":{"description":"\n* [-40751] File not found","summary":"File not found","value":{"code":404,"debugInfo":"File not found","errorCode":-40751,"message":"Not Found"}},"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-50501":{"description":"\n* [-50501] Upload access key not found","summary":"Upload access key not found","value":{"code":404,"debugInfo":"Upload access key not found","errorCode":-50501,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-40010":{"description":"\n* [-40010] Container cannot be overwritten","summary":"Container cannot be overwritten","value":{"code":409,"debugInfo":"Container cannot be overwritten","errorCode":-40010,"message":"Conflict"}},"-41001":{"description":"\n* [-41001] Node exists already","summary":"Node exists already","value":{"code":409,"debugInfo":"Node exists already","errorCode":-41001,"errorInfos":{"conflictNodes":[{"errorCode":-41001,"errorMessage":"Node exists already","name":"...","nodeId":"#"}]},"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"507":{"content":{"application/json":{"examples":{"-40200":{"description":"\n* [-40200] Exceeds the free node quota in room","summary":"Exceeds the free node quota in room","value":{"code":507,"debugInfo":"Exceeds the free node quota in room","errorCode":-40200,"message":"Insufficient Storage"}},"-50504":{"description":"\n* [-50504] Exceeds the quota for this Upload Share","summary":"Exceeds the quota for this Upload Share","value":{"code":507,"debugInfo":"Exceeds the quota for this Upload Share","errorCode":-50504,"message":"Insufficient Storage"}},"-90200":{"description":"\n* [-90200] Exceeds the free customer quota","summary":"Exceeds the free customer quota","value":{"code":507,"debugInfo":"Exceeds the free customer quota","errorCode":-90200,"message":"Insufficient Storage"}},"-90201":{"description":"\n* [-90201] Exceeds the free customer physical disk space","summary":"Exceeds the free customer physical disk space","value":{"code":507,"debugInfo":"Exceeds the free customer physical disk space","errorCode":-90201,"message":"Insufficient Storage"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Insufficient Storage"}},"security":[],"summary":"Complete file upload","tags":["uploads"]}},"/v4/user/account":{"get":{"description":"### Description:  \nRetrieves all information regarding the current user's account.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nUser information is returned.\n\n### Further Information:\nSetting the query parameter `more_info` to `true`, causes the API to return more details e.g. the user's groups.  \n\n`customer` (`CustomerData`) attribute in `UserAccount` response model is deprecated. Please use response from `GET /user/account/customer` instead.","operationId":"requestUserInfo","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Get more info for this user\n\ne.g. list of user groups","in":"query","name":"more_info","required":false,"schema":{"type":"boolean"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccount"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"summary":"Request user account information","tags":["user"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserAccountRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccount"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10100":{"description":"\n* [-10100] Invalid authentication method","summary":"Invalid authentication method","value":{"code":400,"debugInfo":"Invalid authentication method","errorCode":-10100,"message":"Bad Request"}},"-70103":{"description":"\n* [-70103] Accepted EULA cannot be undone","summary":"Accepted EULA cannot be undone","value":{"code":400,"debugInfo":"Accepted EULA cannot be undone","errorCode":-70103,"message":"Bad Request"}},"-70104":{"description":"\n* [-70104] EULA is already accepted","summary":"EULA is already accepted","value":{"code":400,"debugInfo":"EULA is already accepted","errorCode":-70104,"message":"Bad Request"}},"-70105":{"description":"\n* [-70105] Username change not allowed","summary":"Username change not allowed","value":{"code":400,"debugInfo":"Username change not allowed","errorCode":-70105,"message":"Bad Request"}},"-70107":{"description":"\n* [-70107] E-Mail change not allowed","summary":"E-Mail change not allowed","value":{"code":400,"debugInfo":"E-Mail change not allowed","errorCode":-70107,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80009":{"description":"\n* [-80009] Invalid email address","summary":"Invalid email address","value":{"code":400,"debugInfo":"Invalid email address","errorCode":-80009,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-70105":{"description":"\n* [-70105] Username change not allowed","summary":"Username change not allowed","value":{"code":400,"debugInfo":"Username change not allowed","errorCode":-70105,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-70560":{"description":"\n* [-70560] User with provided Basic authentication login already exists","summary":"User with provided Basic authentication login already exists","value":{"code":409,"debugInfo":"User with provided Basic authentication login already exists","errorCode":-70560,"message":"Conflict"}},"-70561":{"description":"\n* [-70561] User with provided Active Directory username already exists","summary":"User with provided Active Directory username already exists","value":{"code":409,"debugInfo":"User with provided Active Directory username already exists","errorCode":-70561,"message":"Conflict"}},"-70562":{"description":"\n* [-70562] User with provided RADIUS login already exists","summary":"User with provided RADIUS login already exists","value":{"code":409,"debugInfo":"User with provided RADIUS login already exists","errorCode":-70562,"message":"Conflict"}},"-70563":{"description":"\n* [-70563] User with provided OpenID Connect username already exists","summary":"User with provided OpenID Connect username already exists","value":{"code":409,"debugInfo":"User with provided OpenID Connect username already exists","errorCode":-70563,"message":"Conflict"}},"-70564":{"description":"\n* [-70564] User with provided username already exists","summary":"User with provided username already exists","value":{"code":409,"debugInfo":"User with provided username already exists","errorCode":-70564,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update user account","tags":["user"]}},"/v4/user/account/avatar":{"delete":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Reset avatar","tags":["user"]},"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request avatar","tags":["user"]},"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"description":"File","format":"binary","type":"string"}},"required":["file"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80042":{"description":"\n* [-80042] Invalid media type for user avatar","summary":"Invalid media type for user avatar","value":{"code":400,"debugInfo":"Invalid media type for user avatar","errorCode":-80042,"message":"Bad Request"}},"-80043":{"description":"\n* [-80043] File size of an avatar image is too large","summary":"File size of an avatar image is too large","value":{"code":400,"debugInfo":"File size of an avatar image is too large","errorCode":-80043,"message":"Bad Request"}},"-80044":{"description":"\n* [-80044] Avatar dimensions are invalid","summary":"Avatar dimensions are invalid","value":{"code":400,"debugInfo":"Avatar dimensions are invalid","errorCode":-80044,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Change avatar","tags":["user"]}},"/v4/user/account/customer":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerData"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request customer information for user","tags":["user"]},"put":{"deprecated":true,"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableCustomerEncryptionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerData"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-70023":{"description":"\n* [-70023] Invalid private key format","summary":"Invalid private key format","value":{"code":400,"debugInfo":"Invalid private key format","errorCode":-70023,"message":"Bad Request"}},"-70024":{"description":"\n* [-70024] Customer encryption cannot be disabled","summary":"Customer encryption cannot be disabled","value":{"code":400,"debugInfo":"Customer encryption cannot be disabled","errorCode":-70024,"message":"Bad Request"}},"-70025":{"description":"\n* [-70025] Customer encryption is already enabled","summary":"Customer encryption is already enabled","value":{"code":400,"debugInfo":"Customer encryption is already enabled","errorCode":-70025,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-90020":{"description":"\n* [-90020] Client-side encryption is not enabled","summary":"Client-side encryption is not enabled","value":{"code":400,"debugInfo":"Client-side encryption is not enabled","errorCode":-90020,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Activate client-side encryption for customer","tags":["user"]}},"/v4/user/account/customer/keypair":{"get":{"deprecated":true,"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request customer's key pair","tags":["user"]}},"/v4/user/account/keypair":{"delete":{"description":"### Description:  \nDelete user key pair.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nKey pair is deleted.\n\n### Further Information:\nIf parameter `version` is not set and two key versions exist, this API deletes version A.      \nIf two keys with the same version are set, this API deletes the older one.\n\nThis will also remove all file keys that were encrypted with the user public key.\nIf the user had exclusive access to some files, those are removed as well since decrypting them became impossible.","operationId":"removeUserKeyPair","parameters":[{"description":"Version (NEW)","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove user's key pair","tags":["user"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Version (NEW)","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request user's key pair","tags":["user"]},"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserKeyPairContainer"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-70021":{"description":"\n* [-70021] User does already have a keypair","summary":"User does already have a keypair","value":{"code":409,"debugInfo":"User does already have a keypair","errorCode":-70021,"message":"Conflict"}},"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-70023":{"description":"\n* [-70023] Invalid private key format","summary":"Invalid private key format","value":{"code":400,"debugInfo":"Invalid private key format","errorCode":-70023,"message":"Bad Request"}},"-70027":{"description":"\n* [-70027] Customer encryption is not enabled","summary":"Customer encryption is not enabled","value":{"code":400,"debugInfo":"Customer encryption is not enabled","errorCode":-70027,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-70021":{"description":"\n* [-70021] User does already have a keypair","summary":"User does already have a keypair","value":{"code":409,"debugInfo":"User does already have a keypair","errorCode":-70021,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Set user's key pair","tags":["user"]}},"/v4/user/account/keypairs":{"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserKeyPairContainer"},"type":"array"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-70020":{"description":"\n* [-70020] User does not have a keypair","summary":"User does not have a keypair","value":{"code":403,"debugInfo":"User does not have a keypair","errorCode":-70020,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request all user key pairs","tags":["user"]},"post":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyPairRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-70022":{"description":"\n* [-70022] Invalid public key format","summary":"Invalid public key format","value":{"code":400,"debugInfo":"Invalid public key format","errorCode":-70022,"message":"Bad Request"}},"-70023":{"description":"\n* [-70023] Invalid private key format","summary":"Invalid private key format","value":{"code":400,"debugInfo":"Invalid private key format","errorCode":-70023,"message":"Bad Request"}},"-70027":{"description":"\n* [-70027] Customer encryption is not enabled","summary":"Customer encryption is not enabled","value":{"code":400,"debugInfo":"Customer encryption is not enabled","errorCode":-70027,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-70021":{"description":"\n* [-70021] User does already have a keypair","summary":"User does already have a keypair","value":{"code":409,"debugInfo":"User does already have a keypair","errorCode":-70021,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create key pair and preserve copy of old private key","tags":["user"]}},"/v4/user/account/mfa":{"delete":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.37.0</h3>\n\n### Description:\nUsing emergency code for login\n\n### Precondition:\nUser has MFA enabled and is already logged in with account/pw (aka pre-Auth-Role)\n\n### Postcondition:\nAll MFA-setups for the user are deleted.\n\n### Further Information:\n\n\n","operationId":"useEmergencyCode","parameters":[{"in":"query","name":"emergency_code","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-10110":{"description":"\n* [-10110] Second factor token not valid","summary":"Second factor token not valid","value":{"code":400,"debugInfo":"Second factor token not valid","errorCode":-10110,"message":"Bad Request"}},"-10111":{"description":"\n* [-10111] Could not find MFA setup","summary":"Could not find MFA setup","value":{"code":400,"debugInfo":"Could not find MFA setup","errorCode":-10111,"message":"Bad Request"}},"-10113":{"description":"\n* [-10113] Cannot delete last MFA setup when MFA is enforced","summary":"Cannot delete last MFA setup when MFA is enforced","value":{"code":400,"debugInfo":"Cannot delete last MFA setup when MFA is enforced","errorCode":-10113,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Using emergency-code","tags":["user"]},"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.37.0</h3>\n\n### Description:\nRequest information about the user's mfa status\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nNone.\n\n### Further Information:\nNone.","operationId":"getMfaStatusForUser","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMfaStatusResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request information about the user's mfa status","tags":["user"]}},"/v4/user/account/mfa/totp":{"get":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.37.0</h3>\n\n### Description:  \nGet setup information for multi-factor authentication (TOTP).\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nNone. \n\n### Further Information:\nNone.","operationId":"getTotpSetupInformation","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TotpSetupResponse"}}},"description":"Created"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"examples":{"-89000":{"description":"\n* [-89000] This feature is not available in this product package","summary":"This feature is not available in this product package","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"null":{"description":"Already exists","summary":"Already exists","value":{"code":409,"debugInfo":"Already exists","errorCode":null,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request information to setup TOTP as second authentication factor","tags":["user"]},"post":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.37.0</h3>\n\n### Description:\nConfirm second factor TOTP setup with a generated OTP.\n\n### Precondition:\nAuthenticated user  \n\n### Postcondition:\nSecond factor TOTP is enabled.\n\n### Further Information:\nNone.","operationId":"confirmTotpSetup","parameters":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaTotpConfirmationRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-10110":{"description":"\n* [-10110] Second factor token not valid","summary":"Second factor token not valid","value":{"code":400,"debugInfo":"Second factor token not valid","errorCode":-10110,"message":"Bad Request"}},"-10111":{"description":"\n* [-10111] Could not find MFA setup","summary":"Could not find MFA setup","value":{"code":400,"debugInfo":"Could not find MFA setup","errorCode":-10111,"message":"Bad Request"}},"-10112":{"description":"\n* [-10112] Error when creating MFA shared key with provided information","summary":"Error when creating MFA shared key with provided information","value":{"code":400,"debugInfo":"Error when creating MFA shared key with provided information","errorCode":-10112,"message":"Bad Request"}},"-80067":{"description":"\n* [-80067] Invalid OTP","summary":"Invalid OTP","value":{"code":400,"debugInfo":"Invalid OTP","errorCode":-80067,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"examples":{"-89000":{"description":"\n* [-89000] This feature is not available in this product package","summary":"This feature is not available in this product package","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Confirm second factor TOTP setup with a generated OTP","tags":["user"]}},"/v4/user/account/mfa/totp/{id}":{"delete":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.37.0</h3>\n\n### Description:  \nDelete multi-factor authentication TOTP setup with a valid OTP code.\n\n### Precondition:\nAuthenticated user  \nMulti-factor authentication is **NOT** enforced\n\n### Postcondition:\nSecond factor TOTP is disabled.\n\n### Further Information:\nNone.","operationId":"deleteMfaTotpSetup","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"valid_otp","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-10110":{"description":"\n* [-10110] Second factor token not valid","summary":"Second factor token not valid","value":{"code":400,"debugInfo":"Second factor token not valid","errorCode":-10110,"message":"Bad Request"}},"-10111":{"description":"\n* [-10111] Could not find MFA setup","summary":"Could not find MFA setup","value":{"code":400,"debugInfo":"Could not find MFA setup","errorCode":-10111,"message":"Bad Request"}},"-10113":{"description":"\n* [-10113] Cannot delete last MFA setup when MFA is enforced","summary":"Cannot delete last MFA setup when MFA is enforced","value":{"code":400,"debugInfo":"Cannot delete last MFA setup when MFA is enforced","errorCode":-10113,"message":"Bad Request"}},"-80067":{"description":"\n* [-80067] Invalid OTP","summary":"Invalid OTP","value":{"code":400,"debugInfo":"Invalid OTP","errorCode":-80067,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Disable a MFA TOTP setup with generated OTP","tags":["user"]}},"/v4/user/account/password":{"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeUserPasswordRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-10002":{"description":"\n* [-10002] Password is not secure","summary":"Password is not secure","value":{"code":400,"debugInfo":"Password is not secure","errorCode":-10002,"message":"Bad Request"}},"-10105":{"description":"\n* [-10105] Password cannot be reset for this user","summary":"Password cannot be reset for this user","value":{"code":400,"debugInfo":"Password cannot be reset for this user","errorCode":-10105,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"summary":"Change user's password","tags":["user"]}},"/v4/user/logout":{"post":{"deprecated":true,"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":[{"description":"Invalidate all tokens","in":"query","name":"everywhere","required":false,"schema":{"type":"boolean"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Invalidate authentication token","tags":["user"]}},"/v4/user/notifications/config":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationConfigList"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of notification configurations","tags":["user"]}},"/v4/user/notifications/config/{id}":{"put":{"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":[{"description":"Unique identifier for a notification configuration","in":"path","name":"id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationConfigChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationConfig"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-70120":{"description":"\n* [-70120] Notification configuration not found","summary":"Notification configuration not found","value":{"code":400,"debugInfo":"Notification configuration not found","errorCode":-70120,"message":"Bad Request"}},"-70121":{"description":"\n* [-70121] Notification channel not found","summary":"Notification channel not found","value":{"code":400,"debugInfo":"Notification channel not found","errorCode":-70121,"message":"Bad Request"}},"-70122":{"description":"\n* [-70122] Notification channel is disabled","summary":"Notification channel is disabled","value":{"code":400,"debugInfo":"Notification channel is disabled","errorCode":-70122,"message":"Bad Request"}},"-70123":{"description":"\n* [-70123] Illegal notification channel","summary":"Illegal notification channel","value":{"code":400,"debugInfo":"Illegal notification channel","errorCode":-70123,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update notification configuration","tags":["user"]}},"/v4/user/oauth/approvals":{"get":{"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 criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`clientName:desc`  \nSort by `clientName` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `clientName` | Client name |\n\n</details>","operationId":"requestOAuthApprovals","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OAuthApproval"},"type":"array"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of OAuth client approvals","tags":["user"]}},"/v4/user/oauth/approvals/{client_id}":{"delete":{"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":[{"description":"OAuth client ID","in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-90080":{"description":"\n* [-90080] OAuth client not found","summary":"OAuth client not found","value":{"code":404,"debugInfo":"OAuth client not found","errorCode":-90080,"message":"Not Found"}},"-90093":{"description":"\n* [-90093] OAuth client approval not found","summary":"OAuth client approval not found","value":{"code":404,"debugInfo":"OAuth client approval not found","errorCode":-90093,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove OAuth client approval","tags":["user"]}},"/v4/user/oauth/authorizations":{"get":{"description":"### Description:  \nRetrieve information about all OAuth client authorizations.\n\n### Precondition:\nAuthenticated user.\n\n### Postcondition:\nList of OAuth client authorizations is returned.\n\n### Further Information:\n\n### Filtering:\nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`isStandard:eq:true`  \nGet standard OAuth clients.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `isStandard` | Standard client filter | `eq` |  | `true or false` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`clientName:desc`  \nSort by `clientName` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `clientName` | Client name |\n\n</details>","operationId":"requestOAuthAuthorizations","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OAuthAuthorization"},"type":"array"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request list of OAuth client authorizations","tags":["user"]}},"/v4/user/oauth/authorizations/{client_id}":{"delete":{"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":[{"description":"OAuth client ID","in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-90082":{"description":"\n* [-90082] OAuth client authorization not found","summary":"OAuth client authorization not found","value":{"code":404,"debugInfo":"OAuth client authorization not found","errorCode":-90082,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove all OAuth authorizations of a client","tags":["user"]}},"/v4/user/oauth/authorizations/{client_id}/{authorization_id}":{"delete":{"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":[{"description":"OAuth client ID","in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"description":"OAuth authorization ID","in":"path","name":"authorization_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-90082":{"description":"\n* [-90082] OAuth client authorization not found","summary":"OAuth client authorization not found","value":{"code":404,"debugInfo":"OAuth client authorization not found","errorCode":-90082,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove a OAuth authorization","tags":["user"]}},"/v4/user/ping":{"get":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"text/plain":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"text/plain":{"examples":{"null":{"description":"Acceptable Content-Types are: `[text/plain]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"}},"summary":"(authenticated) Ping","tags":["user"]}},"/v4/user/profileAttributes":{"get":{"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":[{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributesResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request user profile attributes","tags":["user"]},"post":{"deprecated":true,"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributesRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributes"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80015":{"description":"\n* [-80015] Invalid key value list because there are duplicate keys present","summary":"Invalid key value list because there are duplicate keys present","value":{"code":400,"debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Set user profile attributes","tags":["user"]},"put":{"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<br/><br/><span style=\"font-weight: bold; color: red;\"> &#128679; **Warning: Please note that the response with HTTP status code 200 (OK) is deprecated and will be replaced with HTTP status code 204 (No content)!**</span><br/>\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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileAttributes"}}},"description":"OK **(DEPRECATED: WILL BE REPLACED BY 204: \"No content\")**"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80015":{"description":"\n* [-80015] Invalid key value list because there are duplicate keys present","summary":"Invalid key value list because there are duplicate keys present","value":{"code":400,"debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Add or edit user profile attributes","tags":["user"]}},"/v4/user/profileAttributes/{key}":{"delete":{"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":[{"description":"Key","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"examples":{"-70550":{"description":"\n* [-70550] Attribute not found","summary":"Attribute not found","value":{"code":404,"debugInfo":"Attribute not found","errorCode":-70550,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove user profile attribute","tags":["user"]}},"/v4/user/subscriptions/download_shares":{"get":{"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 criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`downloadShareId:desc|authParentId:asc`  \nSort by `downloadShareId` descending **AND** `authParentId` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`downloadShareId`** | Download Share ID |\n| **`authParentId`** | Auth parent ID |\n\n</details>","operationId":"listDownloadShareSubscriptions","parameters":[{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedDownloadShareList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"List Download Share subscriptions","tags":["user"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionsBulkRequest"}}},"required":true},"responses":{"201":{"description":"Created"},"204":{"description":"No Content"},"400":{"content":{"*/*":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80063":{"description":"\n* [-80063] Too many items","summary":"Too many items","value":{"code":400,"debugInfo":"Too many items","errorCode":-80063,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"*/*":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"*/*":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"*/*":{"examples":{"-60000":{"description":"\n* [-60000] Download Share not found","summary":"Download Share not found","value":{"code":404,"debugInfo":"Download Share not found","errorCode":-60000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"*/*":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"*/*":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Subscribe or Unsubscribe a List of Download Shares for notifications","tags":["user"]}},"/v4/user/subscriptions/download_shares/{share_id}":{"delete":{"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":[{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-60000":{"description":"\n* [-60000] Download Share not found","summary":"Download Share not found","value":{"code":404,"debugInfo":"Download Share not found","errorCode":-60000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Unsubscribe Download Share from notifications","tags":["user"]},"post":{"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":[{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedDownloadShare"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-60000":{"description":"\n* [-60000] Download Share not found","summary":"Download Share not found","value":{"code":404,"debugInfo":"Download Share not found","errorCode":-60000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Subscribe Download Share for notifications","tags":["user"]}},"/v4/user/subscriptions/nodes":{"get":{"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 criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`nodeId:desc|authParentId:asc`  \nSort by `nodeId` descending **AND** `authParentId` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`nodeId`** | Node ID |\n| **`authParentId`** | Auth parent ID |\n\n</details>","operationId":"listNodeSubscriptions","parameters":[{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedNodeList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-70120":{"description":"\n* [-70120] Notification configuration not found","summary":"Notification configuration not found","value":{"code":400,"debugInfo":"Notification configuration not found","errorCode":-70120,"message":"Bad Request"}},"-70121":{"description":"\n* [-70121] Notification channel not found","summary":"Notification channel not found","value":{"code":400,"debugInfo":"Notification channel not found","errorCode":-70121,"message":"Bad Request"}},"-70122":{"description":"\n* [-70122] Notification channel is disabled","summary":"Notification channel is disabled","value":{"code":400,"debugInfo":"Notification channel is disabled","errorCode":-70122,"message":"Bad Request"}},"-70123":{"description":"\n* [-70123] Illegal notification channel","summary":"Illegal notification channel","value":{"code":400,"debugInfo":"Illegal notification channel","errorCode":-70123,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"List node subscriptions","tags":["user"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionsBulkRequest"}}},"required":true},"responses":{"201":{"description":"Created"},"204":{"description":"No Content"},"400":{"content":{"*/*":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80061":{"description":"\n* [-80061] Cannot subscribe node\n\n(rooms and files only)","summary":"Cannot subscribe node","value":{"code":400,"debugInfo":"Cannot subscribe node","errorCode":-80061,"message":"Bad Request"}},"-80063":{"description":"\n* [-80063] Too many items","summary":"Too many items","value":{"code":400,"debugInfo":"Too many items","errorCode":-80063,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"*/*":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"*/*":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"*/*":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"*/*":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"*/*":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Subscribe or Unsubscribe a List of nodes for notifications","tags":["user"]}},"/v4/user/subscriptions/nodes/{node_id}":{"delete":{"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":[{"description":"Node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Unsubscribe node from notifications","tags":["user"]},"post":{"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":[{"description":"Node ID","in":"path","name":"node_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedNode"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80061":{"description":"\n* [-80061] Cannot subscribe node\n\n(rooms and files only)","summary":"Cannot subscribe node","value":{"code":400,"debugInfo":"Cannot subscribe node","errorCode":-80061,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Subscribe node for notifications","tags":["user"]}},"/v4/user/subscriptions/upload_shares":{"get":{"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 criteria are possible.  \nFields are connected via logical conjunction **AND**.\n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`uploadShareId:desc|targetNodeId:asc`  \nSort by `uploadShareId` descending **AND** `targetNodeId` ascending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| **`uploadShareId`** | Upload Share ID |\n| **`targetNodeId`** | Target node ID |\n\n</details>","operationId":"listUploadShareSubscriptions","parameters":[{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedUploadShareList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"List Upload Share subscriptions","tags":["user"]},"put":{"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":[{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionsBulkRequest"}}},"required":true},"responses":{"201":{"description":"Created"},"204":{"description":"No Content"},"400":{"content":{"*/*":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80063":{"description":"\n* [-80063] Too many items","summary":"Too many items","value":{"code":400,"debugInfo":"Too many items","errorCode":-80063,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"*/*":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"*/*":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"*/*":{"examples":{"-60500":{"description":"\n* [-60500] Upload Share not found","summary":"Upload Share not found","value":{"code":404,"debugInfo":"Upload Share not found","errorCode":-60500,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"*/*":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"*/*":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Subscribe or Unsubscribe a List of Upload Shares for notifications","tags":["user"]}},"/v4/user/subscriptions/upload_shares/{share_id}":{"delete":{"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":[{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-60500":{"description":"\n* [-60500] Upload Share not found","summary":"Upload Share not found","value":{"code":404,"debugInfo":"Upload Share not found","errorCode":-60500,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Unsubscribe Upload Share from notifications","tags":["user"]},"post":{"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":[{"description":"Share ID","in":"path","name":"share_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribedUploadShare"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-60500":{"description":"\n* [-60500] Upload Share not found","summary":"Upload Share not found","value":{"code":404,"debugInfo":"Upload Share not found","errorCode":-60500,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Subscribe Upload Share for notifications","tags":["user"]}},"/v4/users":{"get":{"description":"### Description:  \nReturns a list of DRACOON users.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.\n\n### Postcondition:\nList of users is returned.\n\n### Further Information:\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**)  \nExcept for `login`, `firstName` and  `lastName` - these are connected via logical disjunction (**OR**)  \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`login:cn:searchString_1|firstName:cn:searchString_2|lockStatus:eq:2`  \nFilter users by login contains `searchString_1` **OR** firstName contains `searchString_2` **AND** those who are **NOT** locked.\n\n</details>\n\n### Filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR`  | Operator Description | `VALUE`                                                                                                                                                                                                                                                                                                                                                                                              |\n| :--- | :--- |:------------| :--- |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `email` | Email filter | `eq`, `cn`  | Email contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `userName` | User name filter | `eq`, `cn`  | UserName contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `firstName` | User first name filter | `cn`        | User first name contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `lastName` | User last name filter | `cn`        | User last name contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `isLocked` | User lock status filter | `eq`        |  | `true or false`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `effectiveRoles` | Filter users with DIRECT or DIRECT **AND** EFFECTIVE roles<ul><li>`false`: DIRECT roles</li><li>`true`: DIRECT **AND** EFFECTIVE roles</li></ul>DIRECT means: e.g. user gets role **directly** granted from someone with _grant permission_ right.<br>EFFECTIVE means: e.g. user gets role through **group membership**. | `eq`        |  | `true or false`<br>default: `false`                                                                                                                                                                                                                                                                                                                                                                  |\n| `createdAt` | Creation date filter | `ge, le`    | Creation date is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `createdAt:ge:2016-12-31`&#124;`createdAt:le:2018-01-01` | `Date (yyyy-MM-dd)`                                                                                                                                                                                                                                                                                                                                                                                  |\n| `phone` | Phone filter | `eq`        | Phone equals value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `isEncryptionEnabled` | Encryption status filter<ul><li>client-side encryption</li><li>private key possession</li></ul> | `eq`        |  | `true or false`                                                                                                                                                                                                                                                                                                                                                                                      |\n| `hasRole` | User role filter<br>Depends on **effectiveRoles**.<br>For more Roles information please call `GET /roles API` | `eq`, `neq` | User role  equals value. | <ul><li>`CONFIG_MANAGER` - Manage global configs</li><li>`USER_MANAGER` - Manage Users</li><li>`GROUP_MANAGER` - Manage User-Groups</li><li>`ROOM_MANAGER` - Manage top level Data Rooms</li><li>`LOG_AUDITOR` - Read logs</li><li>`NONMEMBER_VIEWER` - View users and groups when having room manage permission</li><li>`USER` - Regular User role</li><li>`GUEST_USER` - Guest User role</li></ul> |\n\n</details>\n\n### Deprecated filtering options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| <del>`lockStatus`</del> | User lock status filter | `eq` | User lock status equals value. | <ul><li>`0` - Locked</li><li>`1` - Web access allowed</li><li>`2` - Web and mobile access allowed</li></ul> |\n| <del>`login`</del> | User login filter | `cn` | User login contains value. | `search String` |\n\n</details>\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER`  \n`ORDER` can be `asc` or `desc`.  \nMultiple sort fields are supported.  \n\n<details style=\"padding-left: 10px\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Example</strong></summary>\n\n`firstName:asc|lastLoginSuccessAt:desc`  \nSort by `firstName` ascending **AND** by `lastLoginSuccessAt` descending.\n\n</details>\n\n### Sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `userName` | User name |\n| `email` | User email |\n| `firstName` | User first name |\n| `lastName` | User last name |\n| `isLocked` | User lock status |\n| `lastLoginSuccessAt` | Last successful login date |\n| `expireAt` | Expiration date |\n| `createdAt` | Creation date |\n\n</details>\n\n### Deprecated sorting options:\n<details style=\"padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;\">\n<summary style=\"cursor: pointer; outline: none\"><strong>Expand</strong></summary>\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| <del>`gender`</del> | Gender |\n| <del>`lockStatus`</del> | User lock status |\n| <del>`login`</del> | User login |\n\n</details>","operationId":"requestUsers","parameters":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Include custom user attributes.","in":"query","name":"include_attributes","required":false,"schema":{"type":"boolean"}},{"description":"Include roles","in":"query","name":"include_roles","required":false,"schema":{"type":"boolean"}},{"description":"Include hasManageableRooms (deprecated)","in":"query","name":"include_manageable_rooms","required":false,"schema":{"type":"boolean"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request users","tags":["users"]},"post":{"description":"### Description:\nCreate a new user.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.\n\n### Postcondition:\nNew user is created.\n\n### Further Information:\n* If a user should **NOT** expire, leave `expireAt` empty.\n* All input fields are limited to **150** characters\n* Forbidden characters in first or last name: [`<`, `>`]\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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-10002":{"description":"\n* [-10002] Password is not secure","summary":"Password is not secure","value":{"code":400,"debugInfo":"Password is not secure","errorCode":-10002,"message":"Bad Request"}},"-10013":{"description":"\n* [-10013] Not valid IETF language tag","summary":"Not valid IETF language tag","value":{"code":400,"debugInfo":"Not valid IETF language tag","errorCode":-10013,"message":"Bad Request"}},"-10100":{"description":"\n* [-10100] Invalid authentication method","summary":"Invalid authentication method","value":{"code":400,"debugInfo":"Invalid authentication method","errorCode":-10100,"message":"Bad Request"}},"-10102":{"description":"\n* [-10102] At least one authentication method must be enabled","summary":"At least one authentication method must be enabled","value":{"code":400,"debugInfo":"At least one authentication method must be enabled","errorCode":-10102,"message":"Bad Request"}},"-70106":{"description":"\n* [-70106] Only one authentication method allowed","summary":"Only one authentication method allowed","value":{"code":400,"debugInfo":"Only one authentication method allowed","errorCode":-70106,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}},"-80009":{"description":"\n* [-80009] Invalid email address","summary":"Invalid email address","value":{"code":400,"debugInfo":"Invalid email address","errorCode":-80009,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}},"-80028":{"description":"\n* [-80028] Due to existing dependency the input must be null","summary":"Due to existing dependency the input must be null","value":{"code":400,"debugInfo":"Due to existing dependency the input must be null","errorCode":-80028,"message":"Bad Request"}},"-80038":{"description":"\n* [-80038] Deactivation of initial password change is only allowed without notification","summary":"Deactivation of initial password change is only allowed without notification","value":{"code":400,"debugInfo":"Deactivation of initial password change is only allowed without notification","errorCode":-80038,"message":"Bad Request"}},"-80064":{"description":"\n* [-80064] Policy Violation","summary":"Policy Violation","value":{"code":400,"debugInfo":"Policy Violation","errorCode":-80064,"message":"Bad Request"}},"-90002":{"description":"\n* [-90002] No distinct authentication configuration","summary":"No distinct authentication configuration","value":{"code":400,"debugInfo":"No distinct authentication configuration","errorCode":-90002,"message":"Bad Request"}},"-90059":{"description":"\n* [-90059] No valid Active Directory configuration found","summary":"No valid Active Directory configuration found","value":{"code":400,"debugInfo":"No valid Active Directory configuration found","errorCode":-90059,"message":"Bad Request"}}},"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/PasswordPolicyViolationResponse"}]}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"-70505":{"description":"\n* [-70505] Maximum number of users reached","summary":"Maximum number of users reached","value":{"code":403,"debugInfo":"Maximum number of users reached","errorCode":-70505,"message":"Forbidden"}},"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-90035":{"description":"\n* [-90035] OpenID Connect IDP configuration not found","summary":"OpenID Connect IDP configuration not found","value":{"code":404,"debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035,"message":"Not Found"}},"-90050":{"description":"\n* [-90050] Active Directory configuration not found","summary":"Active Directory configuration not found","value":{"code":404,"debugInfo":"Active Directory configuration not found","errorCode":-90050,"message":"Not Found"}},"-90059":{"description":"\n* [-90059] No valid OpenID Connect IDP configuration found","summary":"No valid OpenID Connect IDP configuration found","value":{"code":404,"debugInfo":"No valid OpenID Connect IDP configuration found","errorCode":-90059,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-70560":{"description":"\n* [-70560] User with provided Basic authentication login already exists","summary":"User with provided Basic authentication login already exists","value":{"code":409,"debugInfo":"User with provided Basic authentication login already exists","errorCode":-70560,"message":"Conflict"}},"-70561":{"description":"\n* [-70561] User with provided Active Directory username already exists","summary":"User with provided Active Directory username already exists","value":{"code":409,"debugInfo":"User with provided Active Directory username already exists","errorCode":-70561,"message":"Conflict"}},"-70562":{"description":"\n* [-70562] User with provided RADIUS login already exists","summary":"User with provided RADIUS login already exists","value":{"code":409,"debugInfo":"User with provided RADIUS login already exists","errorCode":-70562,"message":"Conflict"}},"-70563":{"description":"\n* [-70563] User with provided OpenID Connect username already exists","summary":"User with provided OpenID Connect username already exists","value":{"code":409,"debugInfo":"User with provided OpenID Connect username already exists","errorCode":-70563,"message":"Conflict"}},"-70564":{"description":"\n* [-70564] User with provided username already exists","summary":"User with provided username already exists","value":{"code":409,"debugInfo":"User with provided username already exists","errorCode":-70564,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Create new user","tags":["users"]}},"/v4/users/{user_id}":{"delete":{"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":[{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-71006":{"description":"\n* [-71006] At least one role user / group required","summary":"At least one role user / group required","value":{"code":400,"debugInfo":"At least one role user / group required","errorCode":-71006,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-41000":{"description":"\n* [-41000] Node not found","summary":"Node not found","value":{"code":404,"debugInfo":"Node not found","errorCode":-41000,"message":"Not Found"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove user","tags":["users"]},"get":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"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**.","in":"query","name":"effective_roles","required":false,"schema":{"type":"boolean"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request user","tags":["users"]},"put":{"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10013":{"description":"\n* [-10013] Not valid IETF language tag","summary":"Not valid IETF language tag","value":{"code":400,"debugInfo":"Not valid IETF language tag","errorCode":-10013,"message":"Bad Request"}},"-10100":{"description":"\n* [-10100] Invalid authentication method","summary":"Invalid authentication method","value":{"code":400,"debugInfo":"Invalid authentication method","errorCode":-10100,"message":"Bad Request"}},"-10102":{"description":"\n* [-10102] At least one authentication method must be enabled","summary":"At least one authentication method must be enabled","value":{"code":400,"debugInfo":"At least one authentication method must be enabled","errorCode":-10102,"message":"Bad Request"}},"-40006":{"description":"\n* [-40006] At least one non-expiring admin user / group required","summary":"At least one non-expiring admin user / group required","value":{"code":400,"debugInfo":"At least one non-expiring admin user / group required","errorCode":-40006,"message":"Bad Request"}},"-70105":{"description":"\n* [-70105] Username change not allowed","summary":"Username change not allowed","value":{"code":400,"debugInfo":"Username change not allowed","errorCode":-70105,"message":"Bad Request"}},"-70106":{"description":"\n* [-70106] Only one authentication method allowed","summary":"Only one authentication method allowed","value":{"code":400,"debugInfo":"Only one authentication method allowed","errorCode":-70106,"message":"Bad Request"}},"-70107":{"description":"\n* [-70107] E-Mail change not allowed","summary":"E-Mail change not allowed","value":{"code":400,"debugInfo":"E-Mail change not allowed","errorCode":-70107,"message":"Bad Request"}},"-70509":{"description":"\n* [-70509] Illegal user lock status code","summary":"Illegal user lock status code","value":{"code":400,"debugInfo":"Illegal user lock status code","errorCode":-70509,"message":"Bad Request"}},"-71006":{"description":"\n* [-71006] At least one role user / group required","summary":"At least one role user / group required","value":{"code":400,"debugInfo":"At least one role user / group required","errorCode":-71006,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80005":{"description":"\n* [-80005] Invalid boolean value","summary":"Invalid boolean value","value":{"code":400,"debugInfo":"Invalid boolean value","errorCode":-80005,"message":"Bad Request"}},"-80006":{"description":"\n* [-80006] Expiration date is in the past","summary":"Expiration date is in the past","value":{"code":400,"debugInfo":"Expiration date is in the past","errorCode":-80006,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80008":{"description":"\n* [-80008] The year is too far in the future","summary":"The year is too far in the future","value":{"code":400,"debugInfo":"The year is too far in the future","errorCode":-80008,"message":"Bad Request"}},"-80028":{"description":"\n* [-80028] Due to existing dependency the input must be null","summary":"Due to existing dependency the input must be null","value":{"code":400,"debugInfo":"Due to existing dependency the input must be null","errorCode":-80028,"message":"Bad Request"}},"-80038":{"description":"\n* [-80038] Deactivation of initial password change is only allowed without notification","summary":"Deactivation of initial password change is only allowed without notification","value":{"code":400,"debugInfo":"Deactivation of initial password change is only allowed without notification","errorCode":-80038,"message":"Bad Request"}},"-80064":{"description":"\n* [-80064] Policy Violation","summary":"Policy Violation","value":{"code":400,"debugInfo":"Policy Violation","errorCode":-80064,"message":"Bad Request"}},"-90002":{"description":"\n* [-90002] No distinct authentication configuration","summary":"No distinct authentication configuration","value":{"code":400,"debugInfo":"No distinct authentication configuration","errorCode":-90002,"message":"Bad Request"}},"-90059":{"description":"\n* [-90059] No valid Active Directory configuration found","summary":"No valid Active Directory configuration found","value":{"code":400,"debugInfo":"No valid Active Directory configuration found","errorCode":-90059,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"examples":{"-89000":{"description":"\n* [-89000] This feature is not available in this product package","summary":"This feature is not available in this product package","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70105":{"description":"\n* [-70105] Username change not allowed","summary":"Username change not allowed","value":{"code":400,"debugInfo":"Username change not allowed","errorCode":-70105,"message":"Bad Request"}},"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}},"-90035":{"description":"\n* [-90035] OpenID Connect IDP configuration not found","summary":"OpenID Connect IDP configuration not found","value":{"code":404,"debugInfo":"OpenID Connect IDP configuration not found","errorCode":-90035,"message":"Not Found"}},"-90050":{"description":"\n* [-90050] Active Directory configuration not found","summary":"Active Directory configuration not found","value":{"code":404,"debugInfo":"Active Directory configuration not found","errorCode":-90050,"message":"Not Found"}},"-90059":{"description":"\n* [-90059] No valid OpenID Connect IDP configuration found","summary":"No valid OpenID Connect IDP configuration found","value":{"code":404,"debugInfo":"No valid OpenID Connect IDP configuration found","errorCode":-90059,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"409":{"content":{"application/json":{"examples":{"-70560":{"description":"\n* [-70560] User with provided Basic authentication login already exists","summary":"User with provided Basic authentication login already exists","value":{"code":409,"debugInfo":"User with provided Basic authentication login already exists","errorCode":-70560,"message":"Conflict"}},"-70561":{"description":"\n* [-70561] User with provided Active Directory username already exists","summary":"User with provided Active Directory username already exists","value":{"code":409,"debugInfo":"User with provided Active Directory username already exists","errorCode":-70561,"message":"Conflict"}},"-70562":{"description":"\n* [-70562] User with provided RADIUS login already exists","summary":"User with provided RADIUS login already exists","value":{"code":409,"debugInfo":"User with provided RADIUS login already exists","errorCode":-70562,"message":"Conflict"}},"-70563":{"description":"\n* [-70563] User with provided OpenID Connect username already exists","summary":"User with provided OpenID Connect username already exists","value":{"code":409,"debugInfo":"User with provided OpenID Connect username already exists","errorCode":-70563,"message":"Conflict"}},"-70564":{"description":"\n* [-70564] User with provided username already exists","summary":"User with provided username already exists","value":{"code":409,"debugInfo":"User with provided username already exists","errorCode":-70564,"message":"Conflict"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Update user's metadata","tags":["users"]}},"/v4/users/{user_id}/groups":{"get":{"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":[{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request groups that user is a member of or / and can become a member","tags":["users"]}},"/v4/users/{user_id}/last_admin_rooms":{"get":{"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":[{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LastAdminUserRoomList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request rooms where the user is last admin","tags":["users"]}},"/v4/users/{user_id}/mfa/emergency_code":{"post":{"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128640; Since v4.37.0</h3>\n\n### Description:  \nRequest emergency MFA code for a specific user.\n\n### Precondition:\nRight <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.\n\n### Postcondition:\nEmergency MFA code is returned.\n\n### Further Information:\nEmergency code can be used instead of standard MFA authentication to disable all MFA setups.","operationId":"requestEmergencyMfaCode","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmergencyMfaCodeResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-10111":{"description":"\n* [-10111] Could not find MFA setup","summary":"Could not find MFA setup","value":{"code":400,"debugInfo":"Could not find MFA setup","errorCode":-10111,"message":"Bad Request"}},"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request emergency MFA code","tags":["users"]}},"/v4/users/{user_id}/roles":{"get":{"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":[{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request user's granted roles","tags":["users"]}},"/v4/users/{user_id}/rooms":{"get":{"deprecated":true,"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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomTreeDataList"}}},"description":"OK"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80024":{"description":"\n* [-80024] Invalid range parameters","summary":"Invalid range parameters","value":{"code":400,"debugInfo":"Invalid range parameters","errorCode":-80024,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request rooms granted to the user or / and rooms that can be granted","tags":["users"]}},"/v4/users/{user_id}/userAttributes":{"get":{"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":[{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Range offset","in":"query","name":"offset","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Range limit.\n\nMaximum 500.\n\n For more results please use paging (`offset` + `limit`).","in":"query","name":"limit","required":false,"schema":{"format":"int32","type":"integer"}},{"description":"Filter string","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Sort string","in":"query","name":"sort","required":false,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributesResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Request custom user attributes","tags":["users"]},"post":{"deprecated":true,"description":"<h3 style='padding: 5px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px; display: table-cell;'>&#128679; Deprecated since v4.28.0</h3>\n\n### 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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAttributes"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}},"description":"Created"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80015":{"description":"\n* [-80015] Invalid key value list because there are duplicate keys present","summary":"Invalid key value list because there are duplicate keys present","value":{"code":400,"debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Set custom user attributes","tags":["users"]},"put":{"description":"### Description:  \nAdd or edit custom user attributes.\n<br/><br/><span style=\"font-weight: bold; color: red;\"> &#128679; **Warning: Please note that the response with HTTP status code 200 (OK) is deprecated and will be replaced with HTTP status code 204 (No content)!**</span><br/>\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":[{"description":"Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))","in":"header","name":"X-Sds-Date-Format","schema":{"enum":["UTC","LOCAL","OFFSET","EPOCH","LEET"],"type":"string"}},{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAttributes"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserData"}}},"description":"OK **(DEPRECATED: WILL BE REPLACED BY 204: \"No content\")**"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80007":{"description":"\n* [-80007] Maximum allowed length is exceeded","summary":"Maximum allowed length is exceeded","value":{"code":400,"debugInfo":"Maximum allowed length is exceeded","errorCode":-80007,"message":"Bad Request"}},"-80015":{"description":"\n* [-80015] Invalid key value list because there are duplicate keys present","summary":"Invalid key value list because there are duplicate keys present","value":{"code":400,"debugInfo":"Invalid key value list because there are duplicate keys present","errorCode":-80015,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Add or edit custom user attributes","tags":["users"]}},"/v4/users/{user_id}/userAttributes/{key}":{"delete":{"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":[{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Key","in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Authentication token","in":"header","name":"X-Sds-Auth-Token","schema":{"type":"string"}}],"responses":{"200":{"description":"No Content"},"204":{"description":"No Content"},"400":{"content":{"application/json":{"examples":{"-80000":{"description":"\n* [-80000] Mandatory fields cannot be empty","summary":"Mandatory fields cannot be empty","value":{"code":400,"debugInfo":"Mandatory fields cannot be empty","errorCode":-80000,"message":"Bad Request"}},"-80001":{"description":"\n* [-80001] Invalid positive number","summary":"Invalid positive number","value":{"code":400,"debugInfo":"Invalid positive number","errorCode":-80001,"message":"Bad Request"}},"-80002":{"description":"\n* [-80002] Invalid number","summary":"Invalid number","value":{"code":400,"debugInfo":"Invalid number","errorCode":-80002,"message":"Bad Request"}},"-80023":{"description":"\n* [-80023] Input contains invalid characters","summary":"Input contains invalid characters","value":{"code":400,"debugInfo":"Input contains invalid characters","errorCode":-80023,"message":"Bad Request"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"examples":{"-10006":{"description":"\n* [-10006] User is not authorized to perform this operation","summary":"User is not authorized to perform this operation","value":{"code":401,"debugInfo":"User is not authorized to perform this operation","errorCode":-10006,"message":"Unauthorized"}},"-10012":{"description":"\n* [-10012] Wrong token","summary":"Wrong token","value":{"code":401,"debugInfo":"Wrong token","errorCode":-10012,"message":"Unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"examples":{"null":{"description":"Insufficient rights to perform the operation","summary":"Forbidden","value":{"code":403,"debugInfo":"","errorCode":null,"message":"Forbidden"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"examples":{"-70501":{"description":"\n* [-70501] User not found","summary":"User not found","value":{"code":404,"debugInfo":"User not found","errorCode":-70501,"message":"Not Found"}},"-70550":{"description":"\n* [-70550] Attribute not found","summary":"Attribute not found","value":{"code":404,"debugInfo":"Attribute not found","errorCode":-70550,"message":"Not Found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"406":{"content":{"application/json":{"examples":{"null":{"description":"Acceptable Content-Types are: `[application/json]`","summary":"Content type not acceptable","value":{"code":406,"debugInfo":"Content type '...' not acceptable. Acceptable Content-Types are: [...]","errorCode":null,"message":"Not Acceptable"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Acceptable"},"412":{"content":{"application/json":{"examples":{"-10103":{"description":"\n* [-10103] EULA must be accepted","summary":"EULA must be accepted","value":{"code":412,"debugInfo":"EULA must be accepted","errorCode":-10103,"message":"Precondition Failed"}},"-10104":{"description":"\n* [-10104] Password must be changed","summary":"Password must be changed","value":{"code":412,"debugInfo":"Password must be changed","errorCode":-10104,"message":"Precondition Failed"}},"-10109":{"description":"\n* [-10109] E-Mail must be set","summary":"E-Mail must be set","value":{"code":412,"debugInfo":"E-Mail must be set","errorCode":-10109,"message":"Precondition Failed"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Precondition Failed"}},"summary":"Remove custom user attribute","tags":["users"]}}},"components":{"schemas":{"ActiveDirectory":{"description":"Active Directory information","properties":{"alias":{"description":"Unique name for an Active Directory configuration","type":"string"},"id":{"description":"ID","format":"int32","type":"integer"},"isGlobalAvailable":{"description":"Is available for all customers","type":"boolean"}},"required":["alias","id","isGlobalAvailable"],"type":"object"},"ActiveDirectoryAuthInfo":{"description":"List of Active Directories","properties":{"items":{"description":"List of available Active Directories","items":{"$ref":"#/components/schemas/ActiveDirectory"},"type":"array"}},"required":["items"],"type":"object"},"ActiveDirectoryConfig":{"description":"Active Directory configuration","properties":{"adExportGroup":{"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.","type":"string"},"alias":{"description":"Unique name for an Active Directory configuration","type":"string"},"createHomeFolder":{"default":false,"deprecated":true,"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.","type":"boolean"},"homeFolderParent":{"deprecated":true,"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","type":"integer"},"id":{"description":"ID","format":"int32","type":"integer"},"ldapUsersDomain":{"description":"Search scope of Active Directory; only users below this node can log on.","type":"string"},"sdsImportGroup":{"description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64","type":"integer"},"serverAdminName":{"description":"Distinguished Name (DN) of Active Directory administrative account","type":"string"},"serverIp":{"description":"IPv4 or IPv6 address or host name","type":"string"},"serverPort":{"description":"Port","format":"int32","maximum":65535,"minimum":0,"type":"integer"},"sslFingerPrint":{"description":"SSL finger print of Active Directory server.\n\nMandatory for LDAPS connections.\n\nFormat: `Algorithm/Fingerprint`","type":"string"},"useLdaps":{"description":"Determines whether LDAPS should be used instead of plain LDAP.","type":"boolean"},"userFilter":{"description":"Name of Active Directory attribute that is used as login name.","type":"string"},"userImport":{"description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account.","type":"boolean"}},"required":["adExportGroup","alias","id","ldapUsersDomain","serverAdminName","serverIp","serverPort","useLdaps","userFilter","userImport"],"type":"object"},"ActiveDirectoryConfigList":{"description":"List of Active Directory configurations","properties":{"items":{"description":"List of Active Directory configurations","items":{"$ref":"#/components/schemas/ActiveDirectoryConfig"},"type":"array"}},"required":["items"],"type":"object"},"AlgorithmVersionInfo":{"description":"Algorithm information","properties":{"description":{"description":"Algorithm description","type":"string"},"status":{"description":"Algorithm status\n\nDerived from preference value and threshold","enum":["REQUIRED","DISCOURAGED"],"type":"string"},"version":{"description":"Algorithm version","type":"string"}},"required":["description","status","version"],"type":"object"},"AlgorithmVersionInfoList":{"description":"Information of all available algorithms","properties":{"fileKeyAlgorithms":{"description":"List of file key algorithms","items":{"$ref":"#/components/schemas/AlgorithmVersionInfo"},"type":"array"},"keyPairAlgorithms":{"description":"List of key pair algorithms","items":{"$ref":"#/components/schemas/AlgorithmVersionInfo"},"type":"array"}},"required":["fileKeyAlgorithms","keyPairAlgorithms"],"type":"object"},"AttributesResponse":{"description":"Ranged list of attributes","properties":{"items":{"description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"AuditNodeInfo":{"description":"Audit node info","properties":{"countChildren":{"description":"Number of direct children\n\n(no recursion; for rooms only)","format":"int64","type":"integer"},"nodeId":{"description":"Node ID","format":"int64","type":"integer"},"nodeIsEncrypted":{"description":"Encryption state","type":"boolean"},"nodeName":{"description":"Node name","type":"string"},"nodeParentId":{"description":"Parent room ID","format":"int64","type":"integer"},"nodeParentPath":{"description":"Parent node path\n\n`/` if node is a root node (room)","type":"string"}},"required":["nodeId","nodeName","nodeParentPath"],"type":"object"},"AuditNodeInfoResponse":{"properties":{"items":{"description":"List of audit node info items","items":{"$ref":"#/components/schemas/AuditNodeInfo"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"AuditNodeResponse":{"description":"Audit node report","properties":{"auditUserPermissionList":{"description":"List of assigned users with permissions","items":{"$ref":"#/components/schemas/AuditUserPermission"},"type":"array"},"nodeCntChildren":{"description":"Number of direct children\n\n(no recursion; for rooms only)","format":"int32","type":"integer"},"nodeCreatedAt":{"description":"Creation date","format":"date-time","type":"string"},"nodeCreatedBy":{"$ref":"#/components/schemas/UserInfo"},"nodeHasActivitiesLog":{"default":true,"description":"Is activities log active (for rooms only)","type":"boolean"},"nodeHasRecycleBin":{"deprecated":true,"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).","type":"boolean"},"nodeId":{"description":"Node ID","format":"int64","type":"integer"},"nodeIsEncrypted":{"description":"Encryption state","type":"boolean"},"nodeName":{"description":"Node name","type":"string"},"nodeParentId":{"description":"Parent node ID (room or folder)","format":"int64","type":"integer"},"nodeParentPath":{"description":"Parent node path\n\n`/` if node is a root node (room)","type":"string"},"nodeQuota":{"description":"Quota in byte","format":"int64","type":"integer"},"nodeRecycleBinRetentionPeriod":{"description":"Retention period for deleted nodes in days","format":"int32","maximum":9999,"minimum":0,"type":"integer"},"nodeSize":{"description":"Node size in byte","format":"int64","type":"integer"},"nodeUpdatedAt":{"description":"Modification date","format":"date-time","type":"string"},"nodeUpdatedBy":{"$ref":"#/components/schemas/UserInfo"}},"required":["auditUserPermissionList","nodeCntChildren","nodeId","nodeName","nodeParentPath"],"type":"object"},"AuditUserPermission":{"description":"Audit user permissions report","properties":{"permissions":{"$ref":"#/components/schemas/NodePermissions"},"userFirstName":{"description":"User first name","type":"string"},"userId":{"description":"Unique identifier for the user","format":"int64","type":"integer"},"userLastName":{"description":"User last name","type":"string"},"userLogin":{"description":"User login name","type":"string"}},"required":["permissions","userFirstName","userId","userLastName","userLogin"],"type":"object"},"AuthConfig":{"description":"Authentication settings","properties":{"authMethods":{"description":"List of authentication methods","items":{"$ref":"#/components/schemas/AuthMethod"},"type":"array"}},"required":["authMethods"],"type":"object"},"AuthMethod":{"description":"Authentication method","properties":{"isEnabled":{"description":"Is enabled","type":"boolean"},"name":{"description":"Authentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`","type":"string"},"priority":{"description":"Priority (smaller values have higher priority)","format":"int32","type":"integer"}},"required":["isEnabled","name","priority"],"type":"object"},"AuthTokenRestrictions":{"description":"Auth token restrictions","properties":{"accessTokenValidity":{"description":"&#128640; Since v4.13.0\n\nRestricted OAuth access token validity (in seconds)","format":"int32","type":"integer"},"refreshTokenValidity":{"description":"&#128640; Since v4.13.0\n\nRestricted OAuth refresh token validity (in seconds)","format":"int32","type":"integer"},"restrictionEnabled":{"description":"&#128640; Since v4.13.0\n\nDefines if OAuth token restrictions are enabled","type":"boolean"}},"type":"object"},"Avatar":{"description":"User avatar information","properties":{"avatarUri":{"description":"Avatar URI","type":"string"},"avatarUuid":{"description":"Avatar UUID","type":"string"},"isCustomAvatar":{"description":"Determines whether user updated his / her avatar with own image","type":"boolean"}},"required":["avatarUri","avatarUuid","isCustomAvatar"],"type":"object"},"ChangeGroupMembersRequest":{"description":"List of user IDs","properties":{"ids":{"description":"List of user IDs","items":{"description":"List of user IDs","format":"int64","type":"integer"},"type":"array"}},"required":["ids"],"type":"object"},"ChangeNodeCommentRequest":{"description":"Request model for updating a node comment","properties":{"text":{"description":"Comment text","type":"string"}},"required":["text"],"type":"object"},"ChangeUserPasswordRequest":{"description":"Request model for updating user's password","properties":{"newPassword":{"description":"New password","type":"string"},"oldPassword":{"description":"Old password","type":"string"}},"required":["newPassword","oldPassword"],"type":"object"},"CharacterRules":{"description":"Password character rules","properties":{"mustContainCharacters":{"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"],"items":{"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"],"type":"string"},"type":"array"},"numberOfCharacteristicsToEnforce":{"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","maximum":4,"minimum":0,"type":"integer"}},"required":["mustContainCharacters","numberOfCharacteristicsToEnforce"],"type":"object"},"ChunkUploadResponse":{"description":"Chunk upload response","properties":{"hash":{"description":"Hash value of transferred chunk","type":"string"},"size":{"description":"Chunk size","format":"int64","type":"integer"}},"required":["size"],"type":"object"},"ClassificationPoliciesConfig":{"description":"Set of classification policies","properties":{"shareClassificationPolicies":{"$ref":"#/components/schemas/ShareClassificationPolicies"}},"type":"object"},"Comment":{"description":"Node comment information","properties":{"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"id":{"description":"Comment ID","format":"int64","type":"integer"},"isChanged":{"description":"Determines whether comment was edited or not","type":"boolean"},"isDeleted":{"description":"Determines whether comment was deleted or not","type":"boolean"},"text":{"description":"Comment text","type":"string"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"}},"required":["createdAt","createdBy","id","isChanged","isDeleted","text","updatedAt","updatedBy"],"type":"object"},"CommentList":{"description":"List of node comments","properties":{"items":{"description":"List of node comments","items":{"$ref":"#/components/schemas/Comment"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"CompleteS3FileUploadRequest":{"description":"Request model for completing a S3 file upload","properties":{"fileKey":{"$ref":"#/components/schemas/FileKey"},"fileName":{"description":"New file name to store with","type":"string"},"keepShareLinks":{"default":false,"description":"Preserve Download Share Links and point them to the new node.","type":"boolean"},"parts":{"description":"List of S3 file upload parts","items":{"$ref":"#/components/schemas/S3FileUploadPart"},"type":"array"},"resolutionStrategy":{"default":"autorename","description":"Node conflict resolution strategy:\n\n* `autorename`\n\n* `overwrite`\n\n* `fail`","enum":["autorename","overwrite","fail"],"type":"string"}},"required":["parts"],"type":"object"},"CompleteS3ShareUploadRequest":{"description":"Request model for completing a S3 file upload","properties":{"parts":{"description":"List of S3 file upload parts","items":{"$ref":"#/components/schemas/S3FileUploadPart"},"type":"array"},"userFileKeyList":{"description":"List of user file keys","items":{"$ref":"#/components/schemas/UserFileKey"},"type":"array"}},"required":["parts"],"type":"object"},"CompleteUploadRequest":{"description":"The body must be empty if public upload token is used.\n\nThe `resolutionStrategy` in that case will be always `autorename`","properties":{"fileKey":{"$ref":"#/components/schemas/FileKey"},"fileName":{"description":"New file name to store with","type":"string"},"keepShareLinks":{"default":false,"description":"Preserve Download Share Links and point them to the new node.","type":"boolean"},"resolutionStrategy":{"default":"autorename","description":"Node conflict resolution strategy:\n\n* `autorename`\n\n* `overwrite`\n\n* `fail`","enum":["autorename","overwrite","fail"],"type":"string"},"userFileKeyList":{"$ref":"#/components/schemas/UserFileKeyList"}},"type":"object"},"ConfigOptionList":{"description":"List of key-value pairs","properties":{"items":{"description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"},"type":"array"}},"required":["items"],"type":"object"},"ConfigRoomRequest":{"description":"Request model for configuring a room","properties":{"adminGroupIds":{"description":"List of group ids\n\nA room requires at least one admin (user or group)","items":{"description":"List of group ids\n\nA room requires at least one admin (user or group)","format":"int64","type":"integer"},"type":"array"},"adminIds":{"description":"List of user ids\n\nA room requires at least one admin (user or group)","items":{"description":"List of user ids\n\nA room requires at least one admin (user or group)","format":"int64","type":"integer"},"type":"array"},"classification":{"default":2,"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.","enum":[1,2,3,4],"format":"int32","type":"integer"},"hasActivitiesLog":{"default":true,"description":"Is activities log active (for rooms only)","type":"boolean"},"inheritPermissions":{"description":"Inherit permissions from parent room\n\n(default: `false` if `parentId` is `0`; otherwise: `true`)","type":"boolean"},"newGroupMemberAcceptance":{"default":"autoallow","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.","enum":["autoallow","pending"],"type":"string"},"recycleBinRetentionPeriod":{"description":"Retention period for deleted nodes in days","format":"int32","maximum":9999,"minimum":0,"type":"integer"},"takeOverPermissions":{"description":"Take over existing permissions","type":"boolean"}},"type":"object"},"CopyNode":{"description":"Copied node information","properties":{"id":{"description":"Source node ID","format":"int64","type":"integer"},"name":{"description":"New node name","type":"string"},"timestampCreation":{"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","type":"string"},"timestampModification":{"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","type":"string"}},"required":["id"],"type":"object"},"CopyNodesRequest":{"description":"Request model for copying nodes","properties":{"items":{"description":"List of nodes to be copied","items":{"$ref":"#/components/schemas/CopyNode"},"type":"array"},"keepShareLinks":{"default":false,"description":"Preserve Download Share Links and point them to the new node.","type":"boolean"},"nodeIds":{"deprecated":true,"description":"&#128679; Deprecated since v4.5.0\n\nNode IDs\n\nPlease use `items` instead.","items":{"deprecated":true,"description":"Node IDs\n\nPlease use `items` instead.","format":"int64","type":"integer"},"type":"array"},"resolutionStrategy":{"default":"autorename","description":"Node conflict resolution strategy:\n\n* `autorename`\n\n* `overwrite`\n\n* `fail`","enum":["autorename","overwrite","fail"],"type":"string"}},"type":"object"},"CreateActiveDirectoryConfigRequest":{"description":"Request model for creating an Active Directory configuration","properties":{"adExportGroup":{"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.","type":"string"},"alias":{"description":"Unique name for an Active Directory configuration","type":"string"},"createHomeFolder":{"default":false,"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.","type":"boolean"},"homeFolderParent":{"description":"DEPRECATED, will be ignored\n\nID of the room in which the individual rooms for users will be created.","format":"int64","type":"integer"},"ldapUsersDomain":{"description":"Search scope of Active Directory; only users below this node can log on.","type":"string"},"sdsImportGroup":{"description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64","type":"integer"},"serverAdminName":{"description":"Distinguished Name (DN) of Active Directory administrative account","type":"string"},"serverAdminPassword":{"description":"Password of Active Directory administrative account","type":"string"},"serverIp":{"description":"IPv4 or IPv6 address or host name","type":"string"},"serverPort":{"description":"Port","format":"int32","type":"integer"},"sslFingerPrint":{"description":"SSL finger print of Active Directory server.\n\nMandatory for LDAPS connections.\n\nFormat: `Algorithm/Fingerprint`","type":"string"},"useLdaps":{"default":false,"description":"Determines whether LDAPS should be used instead of plain LDAP.","type":"boolean"},"userFilter":{"description":"Name of Active Directory attribute that is used as login name.","type":"string"},"userImport":{"default":false,"description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account.","type":"boolean"}},"required":["alias","ldapUsersDomain","serverAdminName","serverAdminPassword","serverIp","serverPort","userFilter"],"type":"object"},"CreateDownloadShareRequest":{"description":"Request model for creating a Download Share","properties":{"creatorLanguage":{"deprecated":true,"description":"&#128679; Deprecated since v4.20.0\n\nLanguage tag for messages to creator","type":"string"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"fileKey":{"$ref":"#/components/schemas/FileKey"},"internalNotes":{"description":"&#128640; Since v4.11.0\n\nInternal notes","maximum":255,"type":"string"},"keyPair":{"$ref":"#/components/schemas/UserKeyPairContainer"},"mailBody":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nNotification email content","type":"string"},"mailRecipients":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient email addresses","type":"string"},"mailSubject":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nNotification email subject","type":"string"},"maxDownloads":{"description":"Max allowed downloads","format":"int32","type":"integer"},"name":{"description":"Alias name\n\n(default: name of the shared node)","type":"string"},"nodeId":{"description":"Source node ID","format":"int64","type":"integer"},"notes":{"description":"User notes","maximum":255,"type":"string"},"notifyCreator":{"default":false,"deprecated":true,"description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every download.","type":"boolean"},"password":{"description":"Access password, not allowed for encrypted shares","type":"string"},"receiverLanguage":{"description":"Language tag for messages to receiver","type":"string"},"sendMail":{"default":false,"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nNotify recipients via email\n\nPlease use `POST /shares/downloads/{share_id}/email` API instead.","type":"boolean"},"sendSms":{"default":false,"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nSend share password via SMS\n\nPlease use `textMessageRecipients` attribute instead.","type":"boolean"},"showCreatorName":{"default":false,"description":"Show creator first and last name.","type":"boolean"},"showCreatorUsername":{"default":false,"description":"Show creator email address.","type":"boolean"},"smsRecipients":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient MSISDNs","type":"string"},"textMessageRecipients":{"description":"&#128640; Since v4.11.0\n\nList of recipient FQTNs\n\nE.123 / E.164 Format","items":{"description":"List of recipient FQTNs\n\nE.123 / E.164 Format","type":"string"},"type":"array"}},"required":["nodeId"],"type":"object"},"CreateFileUploadRequest":{"description":"Request model for creating an upload channel","properties":{"classification":{"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)","enum":[1,2,3,4],"format":"int32","type":"integer"},"directS3Upload":{"default":false,"description":"&#128640; Since v4.15.0\n\nUpload direct to S3","type":"boolean"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"name":{"description":"File name","type":"string"},"notes":{"description":"User notes\n\nUse empty string to remove.","type":"string"},"parentId":{"description":"Parent node ID (room or folder)","format":"int64","type":"integer"},"size":{"description":"File size in byte","format":"int64","type":"integer"},"timestampCreation":{"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","type":"string"},"timestampModification":{"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","type":"string"}},"required":["name","parentId"],"type":"object"},"CreateFileUploadResponse":{"description":"Upload channel information","properties":{"token":{"description":"Upload token","type":"string"},"uploadId":{"description":"Upload (channel) ID","type":"string"},"uploadUrl":{"description":"(public) Upload URL","type":"string"}},"required":["token","uploadId","uploadUrl"],"type":"object"},"CreateFolderRequest":{"description":"Request model for creating a folder","properties":{"classification":{"description":"&#128640; Since v4.30.0\n\nClassification 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.","enum":[1,2,3,4],"format":"int32","type":"integer"},"name":{"description":"Name","type":"string"},"notes":{"description":"User notes\n\nUse empty string to remove.","type":"string"},"parentId":{"description":"Parent node ID (room or folder)","format":"int64","type":"integer"},"timestampCreation":{"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","type":"string"},"timestampModification":{"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","type":"string"}},"required":["name","parentId"],"type":"object"},"CreateGroupRequest":{"description":"Request model for creating a group","properties":{"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"name":{"description":"Group name","type":"string"}},"required":["name"],"type":"object"},"CreateKeyPairRequest":{"description":"Request model for creating a key pair","properties":{"previousPrivateKey":{"$ref":"#/components/schemas/PrivateKeyContainer"},"privateKeyContainer":{"$ref":"#/components/schemas/PrivateKeyContainer"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"}},"required":["previousPrivateKey","privateKeyContainer","publicKeyContainer"],"type":"object"},"CreateNodeCommentRequest":{"description":"Request model for creating a node comment","properties":{"text":{"description":"Comment text","type":"string"}},"required":["text"],"type":"object"},"CreateOAuthClientRequest":{"description":"Request model for creating an OAuth client","properties":{"accessTokenValidity":{"description":"Validity of the access token in seconds.","format":"int32","type":"integer"},"approvalValidity":{"description":"&#128640; Since v4.22.0\n\nValidity of the approval interval in seconds.","format":"int32","type":"integer"},"clientId":{"description":"ID of the OAuth client","type":"string"},"clientName":{"description":"Name, which is shown at the client configuration and authorization.","type":"string"},"clientSecret":{"description":"Secret, which client uses at authentication.","type":"string"},"clientType":{"description":"Determines whether client is a confidential or public client.","enum":["confidential","public"],"type":"string"},"grantTypes":{"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"],"items":{"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"],"type":"string"},"type":"array"},"redirectUris":{"description":"URIs, to which a user is redirected after authorization.","items":{"description":"URIs, to which a user is redirected after authorization.","type":"string"},"type":"array"},"refreshTokenValidity":{"description":"Validity of the refresh token in seconds.","format":"int32","type":"integer"}},"required":["clientName","grantTypes","redirectUris"],"type":"object"},"CreateOpenIdIdpConfigRequest":{"description":"Request model for creating an OpenID Connect IDP configuration","properties":{"authorizationEndPointUrl":{"description":"URL of the authorization endpoint","type":"string"},"clientId":{"description":"ID of the OpenID client","type":"string"},"clientSecret":{"description":"Secret, which client uses at authentication.","type":"string"},"fallbackMappingClaim":{"description":"Name of the claim which is used for the user mapping fallback.","type":"string"},"flow":{"description":"&#128640; Since v4.11.0\n\nFlow, which is used at authentication","enum":["authorization_code","hybrid"],"type":"string"},"issuer":{"description":"Issuer identifier of the IDP\n\nThe value is a case sensitive URL.","type":"string"},"jwksEndPointUrl":{"description":"URL of the JWKS endpoint","type":"string"},"mappingClaim":{"description":"Name of the claim which is used for the user mapping.","type":"string"},"name":{"description":"Name of the IDP","type":"string"},"pkceChallengeMethod":{"default":"plain","description":"PKCE code challenge method.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)","type":"string"},"pkceEnabled":{"default":false,"description":"Determines whether PKCE is enabled.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)","type":"boolean"},"redirectUris":{"description":"URIs, to which a user is redirected after authorization.","items":{"description":"URIs, to which a user is redirected after authorization.","type":"string"},"type":"array"},"scopes":{"description":"List of requested scopes","items":{"description":"List of requested scopes","type":"string"},"type":"array"},"tokenEndPointUrl":{"description":"URL of the token endpoint","type":"string"},"userImportEnabled":{"default":false,"description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account.","type":"boolean"},"userImportGroup":{"description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64","type":"integer"},"userInfoEndPointUrl":{"description":"URL of the user info endpoint","type":"string"},"userInfoSource":{"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"],"type":"string"},"userManagementUrl":{"description":"URL of the user management UI.\n\nUse empty string to remove.","type":"string"},"userUpdateEnabled":{"default":false,"description":"Determines if the DRACOON account is updated with data from AD / IDP.\n\nFor OpenID Connect, the scopes `email` and `profile` are needed.","type":"boolean"}},"required":["authorizationEndPointUrl","clientId","clientSecret","issuer","jwksEndPointUrl","mappingClaim","name","redirectUris","scopes","tokenEndPointUrl","userInfoEndPointUrl"],"type":"object"},"CreateRoomRequest":{"description":"Request model for creating a room","properties":{"adminGroupIds":{"description":"List of group ids\n\nA room requires at least one admin (user or group)","items":{"description":"List of group ids\n\nA room requires at least one admin (user or group)","format":"int64","type":"integer"},"type":"array"},"adminIds":{"description":"List of user ids\n\nA room requires at least one admin (user or group)","items":{"description":"List of user ids\n\nA room requires at least one admin (user or group)","format":"int64","type":"integer"},"type":"array"},"classification":{"default":2,"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.","enum":[1,2,3,4],"format":"int32","type":"integer"},"hasActivitiesLog":{"default":true,"description":"Is activities log active (for rooms only)","type":"boolean"},"hasRecycleBin":{"deprecated":true,"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).","type":"boolean"},"inheritPermissions":{"description":"Inherit permissions from parent room\n\n(default: `false` if `parentId` is `0`; otherwise: `true`)","type":"boolean"},"name":{"description":"Name","type":"string"},"newGroupMemberAcceptance":{"default":"autoallow","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.","enum":["autoallow","pending"],"type":"string"},"notes":{"description":"User notes\n\nUse empty string to remove.","type":"string"},"parentId":{"description":"Parent room ID or `null` (not 0) to create a top level room","format":"int64","type":"integer"},"quota":{"description":"Quota in byte","format":"int64","type":"integer"},"recycleBinRetentionPeriod":{"description":"Retention period for deleted nodes in days","format":"int32","maximum":9999,"minimum":0,"type":"integer"},"timestampCreation":{"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","type":"string"},"timestampModification":{"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","type":"string"}},"required":["name"],"type":"object"},"CreateShareUploadChannelRequest":{"description":"Request model for creating an upload channel","properties":{"directS3Upload":{"default":false,"description":"&#128640; Since v4.15.0\n\nUpload direct to S3","type":"boolean"},"name":{"description":"File name","type":"string"},"password":{"description":"Password","type":"string"},"size":{"description":"File size in byte","format":"int64","type":"integer"},"timestampCreation":{"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","type":"string"},"timestampModification":{"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","type":"string"}},"required":["name"],"type":"object"},"CreateShareUploadChannelResponse":{"description":"Upload channel information","properties":{"uploadId":{"description":"Upload (channel) ID","type":"string"},"uploadUrl":{"description":"(public) Upload URL","type":"string"}},"required":["uploadId","uploadUrl"],"type":"object"},"CreateUploadShareRequest":{"description":"Request model for creating an Upload Share","properties":{"creatorLanguage":{"deprecated":true,"description":"&#128679; Deprecated since v4.20.0\n\nLanguage tag for messages to creator","type":"string"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"filesExpiryPeriod":{"description":"Number of days after which uploaded files expire","format":"int32","type":"integer"},"internalNotes":{"description":"&#128640; Since v4.11.0\n\nInternal notes","maximum":255,"type":"string"},"mailBody":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nNotification email content","type":"string"},"mailRecipients":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient email addresses","type":"string"},"mailSubject":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nNotification email subject","type":"string"},"maxSize":{"description":"Maximal total size of uploaded files (in bytes)","format":"int64","type":"integer"},"maxSlots":{"description":"Maximal amount of files to upload","format":"int32","type":"integer"},"name":{"description":"Alias name\n\n(default: name of the shared node)","type":"string"},"notes":{"description":"User notes","maximum":255,"type":"string"},"notifyCreator":{"default":false,"deprecated":true,"description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every upload.","type":"boolean"},"password":{"description":"Password","type":"string"},"receiverLanguage":{"description":"Language tag for messages to receiver","type":"string"},"sendMail":{"default":false,"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nNotify recipients via email\n\nPlease use `POST /shares/uploads/{share_id}/email` API instead.","type":"boolean"},"sendSms":{"default":false,"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nSend share password via SMS\n\nPlease use `textMessageRecipients` attribute instead.","type":"boolean"},"showCreatorName":{"default":false,"description":"&#128640; Since v4.11.0\n\nShow creator first and last name.","type":"boolean"},"showCreatorUsername":{"default":false,"description":"&#128640; Since v4.11.0\n\nShow creator email address.","type":"boolean"},"showUploadedFiles":{"default":false,"description":"Allow display of already uploaded files","type":"boolean"},"smsRecipients":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient MSISDNs","type":"string"},"targetId":{"description":"Target room or folder ID","format":"int64","type":"integer"},"textMessageRecipients":{"description":"&#128640; Since v4.11.0\n\nList of recipient FQTNs\n\nE.123 / E.164 Format","items":{"description":"List of recipient FQTNs\n\nE.123 / E.164 Format","type":"string"},"type":"array"}},"required":["targetId"],"type":"object"},"CreateUserRequest":{"description":"Request model for creating an user","properties":{"authData":{"$ref":"#/components/schemas/UserAuthData"},"authMethods":{"deprecated":true,"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","items":{"$ref":"#/components/schemas/UserAuthMethod"},"type":"array"},"email":{"description":"Email ","type":"string"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"firstName":{"description":"User first name","type":"string"},"gender":{"default":"n","deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nGender\n\nDo NOT use `gender`! It will be ignored.","type":"string"},"isNonmemberViewer":{"description":"&#128640; Since v4.12.0\n\nDetermines whether user has the role NONMEMBER_VIEWER","type":"boolean"},"lastName":{"description":"User last name","type":"string"},"login":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nUser login name","type":"string"},"mfaConfig":{"$ref":"#/components/schemas/MfaConfig"},"needsToChangePassword":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nDetermines whether user has to change his / her initial password.\n\nuse `authDate.mustChangePassword` instead","type":"boolean"},"notifyUser":{"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","type":"boolean"},"password":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nAn initial password may be preset\n\nuse `authData` instead","type":"string"},"phone":{"description":"Phone number","type":"string"},"receiverLanguage":{"description":"IETF language tag","type":"string"},"title":{"deprecated":true,"description":"&#128679; Deprecated since v4.18.0\n\nJob title","type":"string"},"userName":{"description":"&#128640; Since v4.13.0\n\nUsername","type":"string"}},"required":["firstName","lastName"],"type":"object"},"CreateWebhookRequest":{"description":"Request model for creating a webhook","properties":{"eventTypeNames":{"description":"List of names of event types","items":{"description":"List of names of event types","type":"string"},"type":"array"},"isEnabled":{"description":"Is enabled","type":"boolean"},"name":{"description":"Name","type":"string"},"secret":{"description":"Secret; used for event message signatures","type":"string"},"triggerExampleEvent":{"description":"If set to true, an example event is being created","type":"boolean"},"url":{"description":"URL (must begin with the `HTTPS` scheme)","type":"string"}},"required":["eventTypeNames","name","url"],"type":"object"},"Customer":{"description":"Customer information","properties":{"activationCode":{"deprecated":true,"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","type":"string"},"cntGuestUser":{"description":"Number of guest user accounts","format":"int32","type":"integer"},"cntInternalUser":{"description":"Number of internal user accounts","format":"int32","type":"integer"},"companyName":{"description":"Company name","type":"string"},"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"customerAttributes":{"$ref":"#/components/schemas/CustomerAttributes"},"customerContractType":{"description":"Customer type","enum":["demo","free","pay"],"type":"string"},"customerUuid":{"description":"&#128640; Since v4.21.0\n\nCustomer UUID","type":"string"},"id":{"description":"Unique identifier for the customer","format":"int64","type":"integer"},"isLocked":{"default":false,"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.","type":"boolean"},"lastLoginAt":{"description":"Date of last seen login for the customer","format":"date-time","type":"string"},"lockStatus":{"default":false,"deprecated":true,"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.","type":"boolean"},"providerCustomerId":{"description":"Provider customer ID","type":"string"},"quotaMax":{"description":"Maximal disc space which can be allocated by customer in bytes. -1 for unlimited","format":"int64","type":"integer"},"quotaUsed":{"description":"Used amount of disc space in bytes","format":"int64","type":"integer"},"trialDaysLeft":{"description":"Number of days left for trial period (relevant only for type `demo`)\n\n(not used)","format":"int32","type":"integer"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"userMax":{"description":"Maximal number of users","format":"int32","type":"integer"},"userUsed":{"description":"Number of users which are already allocated.","format":"int32","type":"integer"},"webhooksMax":{"description":"&#128640; Since v4.19.0\n\nMaximal number of webhooks","format":"int64","type":"integer"}},"required":["cntGuestUser","cntInternalUser","companyName","createdAt","customerContractType","customerUuid","id","lockStatus","quotaMax","quotaUsed","userMax","userUsed"],"type":"object"},"CustomerAttributes":{"description":"List of customer attributes","properties":{"items":{"description":"List of customer attributes","items":{"$ref":"#/components/schemas/KeyValueEntry"},"type":"array"}},"required":["items"],"type":"object"},"CustomerData":{"description":"Customer information","properties":{"accountsLimit":{"description":"User accounts limit","format":"int32","type":"integer"},"accountsUsed":{"description":"User accounts used","format":"int32","type":"integer"},"cntGuestUser":{"description":"Number of guest user accounts","format":"int32","type":"integer"},"cntInternalUser":{"description":"Number of internal user accounts","format":"int32","type":"integer"},"customerEncryptionEnabled":{"description":"Clientside encryption for customer enabled","type":"boolean"},"id":{"description":"Unique identifier for the customer","format":"int64","type":"integer"},"isProviderCustomer":{"description":"Customer is Provider Customer","type":"boolean"},"name":{"description":"Customer name","type":"string"},"spaceLimit":{"description":"Space limit (in bytes). -1 for unlimited","format":"int64","type":"integer"},"spaceUsed":{"description":"Space used (in bytes)","format":"int64","type":"integer"}},"required":["accountsLimit","accountsUsed","cntGuestUser","cntInternalUser","customerEncryptionEnabled","id","isProviderCustomer","name","spaceLimit","spaceUsed"],"type":"object"},"CustomerList":{"description":"List of customers","properties":{"items":{"description":"List of customers","items":{"$ref":"#/components/schemas/Customer"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"CustomerSettingsRequest":{"description":"Request model for setting the customer settings","properties":{"homeRoomParentName":{"description":"Homeroom Parent Name","type":"string"},"homeRoomQuota":{"description":"Homeroom Quota in bytes","format":"int64","type":"integer"},"homeRoomsActive":{"description":"Homerooms active","type":"boolean"}},"type":"object"},"CustomerSettingsResponse":{"description":"Customer settings","properties":{"homeRoomParentId":{"description":"Homeroom Parent ID","format":"int64","type":"integer"},"homeRoomParentName":{"description":"Homeroom Parent Name","type":"string"},"homeRoomQuota":{"description":"Homeroom Quota in bytes","format":"int64","type":"integer"},"homeRoomsActive":{"description":"Homerooms active","type":"boolean"}},"required":["homeRoomsActive"],"type":"object"},"DeleteDeletedNodesRequest":{"description":"Request model for deleting nodes from recycle bin","properties":{"deletedNodeIds":{"description":"List of deleted node IDs","items":{"description":"List of deleted node IDs","format":"int64","type":"integer"},"type":"array"}},"required":["deletedNodeIds"],"type":"object"},"DeleteDownloadSharesRequest":{"description":"Request model for deleting Download Shares","properties":{"shareIds":{"description":"List of share IDs","items":{"description":"List of share IDs","format":"int64","type":"integer"},"type":"array"}},"required":["shareIds"],"type":"object"},"DeleteNodesRequest":{"description":"Request model for deleting nodes","properties":{"nodeIds":{"description":"List of node IDs","items":{"description":"List of node IDs","format":"int64","type":"integer"},"type":"array"}},"required":["nodeIds"],"type":"object"},"DeleteUploadSharesRequest":{"description":"Request model for deleting Upload Shares","properties":{"shareIds":{"description":"List of share IDs","items":{"description":"List of share IDs","format":"int64","type":"integer"},"type":"array"}},"required":["shareIds"],"type":"object"},"DeletedNode":{"description":"Deleted node information (Deleted node can be a folder or file)","properties":{"accessedAt":{"description":"Last access date","format":"date-time","type":"string"},"classification":{"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)","enum":[1,2,3,4],"format":"int32","type":"integer"},"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"deletedAt":{"description":"Deletion date","format":"date-time","type":"string"},"deletedBy":{"$ref":"#/components/schemas/UserInfo"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"},"id":{"description":"Node ID","format":"int64","type":"integer"},"isEncrypted":{"description":"Encryption state","type":"boolean"},"name":{"description":"Node name","type":"string"},"notes":{"description":"User notes","maximum":255,"type":"string"},"parentId":{"description":"Parent node ID (room or folder)","format":"int64","type":"integer"},"parentPath":{"description":"Parent node path\n\n`/` if node is a root node (room)","type":"string"},"referenceId":{"description":"&#128640; Since v4.37.0\n\nReference ID. Identical across all versions of a file","format":"int64","type":"integer"},"size":{"description":"Node size in byte","format":"int64","type":"integer"},"type":{"description":"Node type","enum":["folder","file"],"type":"string"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"}},"required":["name","parentId","parentPath","type"],"type":"object"},"DeletedNodeSummary":{"description":"Deleted node information (Deleted node can be a folder or file)","properties":{"cntVersions":{"description":"Number of deleted versions of this file","format":"int32","type":"integer"},"firstDeletedAt":{"description":"First deleted version","format":"date-time","type":"string"},"lastDeletedAt":{"description":"Last deleted version","format":"date-time","type":"string"},"lastDeletedNodeId":{"description":"Node ID of last deleted version","format":"int64","type":"integer"},"name":{"description":"Node name","type":"string"},"parentId":{"description":"Parent node ID (room or folder)","format":"int64","type":"integer"},"parentPath":{"description":"Parent node path\n\n`/` if node is a root node (room)","type":"string"},"referenceId":{"description":"&#128640; Since v4.37.0\n\nReference ID. Identical across all versions of a file","format":"int64","type":"integer"},"timestampCreation":{"description":"&#128640; Since v4.22.0\n\nTime the node was created on external file system","format":"date-time","type":"string"},"timestampModification":{"description":"&#128640; Since v4.22.0\n\nTime the content of a node was last modified on external file system","format":"date-time","type":"string"},"type":{"description":"Node type","enum":["folder","file"],"type":"string"}},"required":["cntVersions","firstDeletedAt","lastDeletedAt","lastDeletedNodeId","name","parentId","parentPath","type"],"type":"object"},"DeletedNodeSummaryList":{"description":"List of deleted nodes","properties":{"items":{"description":"List of deleted nodes (summary)","items":{"$ref":"#/components/schemas/DeletedNodeSummary"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"DeletedNodeVersionsList":{"description":"List of deleted versions of nodes","properties":{"items":{"description":"List of deleted nodes","items":{"$ref":"#/components/schemas/DeletedNode"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"DownloadShare":{"description":"Download Share information","properties":{"accessKey":{"description":"Share access key to generate secure link","type":"string"},"classification":{"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)","enum":[1,2,3,4],"format":"int32","type":"integer"},"cntDownloads":{"description":"Downloads counter (incremented on each download)","format":"int32","type":"integer"},"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"dataUrl":{"description":"Path to shared download node","type":"string"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"},"id":{"description":"Share ID","format":"int64","type":"integer"},"internalNotes":{"description":"&#128640; Since v4.11.0\n\nInternal notes","maximum":255,"type":"string"},"isEncrypted":{"description":"Encrypted share\n\n(this only applies to shared files, not folders)","type":"boolean"},"isProtected":{"description":"Is share protected by password","type":"boolean"},"maxDownloads":{"description":"Max allowed downloads","format":"int32","type":"integer"},"name":{"description":"Alias name","type":"string"},"nodeId":{"description":"Source node ID","format":"int64","type":"integer"},"nodePath":{"description":"Path to shared download node","type":"string"},"nodeType":{"description":"Node type","type":"string"},"notes":{"description":"User notes","maximum":255,"type":"string"},"notifyCreator":{"deprecated":true,"description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every download.","type":"boolean"},"recipients":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient email addresses","type":"string"},"showCreatorName":{"description":"Show creator first and last name.","type":"boolean"},"showCreatorUsername":{"description":"Show creator email address.","type":"boolean"},"smsRecipients":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient MSISDNs","type":"string"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"}},"required":["accessKey","cntDownloads","createdAt","createdBy","id","name","nodeId","notifyCreator"],"type":"object"},"DownloadShareLinkEmail":{"description":"Request model for sending an email of a Download Share link","properties":{"body":{"description":"Notification email content","type":"string"},"receiverLanguage":{"description":"Language tag for messages to receiver","type":"string"},"recipients":{"description":"List of recipient email addresses","items":{"description":"List of recipient email addresses","type":"string"},"type":"array"}},"required":["body","recipients"],"type":"object"},"DownloadShareList":{"description":"List of Download Shares","properties":{"items":{"description":"List of Download Shares","items":{"$ref":"#/components/schemas/DownloadShare"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"DownloadTokenGenerateResponse":{"description":"Download URL","properties":{"downloadUrl":{"description":"Download URL","type":"string"}},"required":["downloadUrl"],"type":"object"},"EmergencyMfaCodeResponse":{"description":"Emergency TOTP code","properties":{"code":{"description":"Emergency TOTP code which can be used instead of standard TOTP code","type":"string"}},"required":["code"],"type":"object"},"EnableCustomerEncryptionRequest":{"description":"Request model for enabling customer encryption","properties":{"dataSpaceRescueKey":{"$ref":"#/components/schemas/UserKeyPairContainer"},"enableCustomerEncryption":{"description":"Set `true` to enable encryption for this customer","type":"boolean"}},"required":["dataSpaceRescueKey","enableCustomerEncryption"],"type":"object"},"EncryptRoomRequest":{"description":"Request model for handling encryption settings for a room","properties":{"dataRoomRescueKey":{"$ref":"#/components/schemas/UserKeyPairContainer"},"isEncrypted":{"description":"Encryption state","type":"boolean"},"useDataSpaceRescueKey":{"description":"Use system emergency password (rescue key) for files in this room","type":"boolean"}},"required":["isEncrypted"],"type":"object"},"EncryptionInfo":{"description":"Encryption states","properties":{"dataSpaceKeyState":{"description":"DRACOON key state","enum":["none","available","pending"],"type":"string"},"roomKeyState":{"description":"Room key state","enum":["none","available","pending"],"type":"string"},"userKeyState":{"description":"User key state","enum":["none","available","pending"],"type":"string"}},"required":["dataSpaceKeyState","roomKeyState","userKeyState"],"type":"object"},"EncryptionPasswordPolicies":{"description":"Encryption password policies","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"description":"Minimum number of characters a password must contain","format":"int32","maximum":1024,"minimum":1,"type":"integer"},"rejectKeyboardPatterns":{"description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)","type":"boolean"},"rejectUserInfo":{"description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)","type":"boolean"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"}},"type":"object"},"ErrorResponse":{"description":"Error information","properties":{"code":{"description":"HTTP status code","format":"int32","type":"integer"},"debugInfo":{"description":"Debug information","type":"string"},"errorCode":{"description":"Internal error code","format":"int32","type":"integer"},"message":{"description":"HTTP status code description","type":"string"}},"required":["code","message"],"type":"object"},"EventType":{"description":"Event type information","properties":{"id":{"description":"ID","format":"int32","type":"integer"},"name":{"description":"Name","type":"string"},"usableCustomerAdminWebhook":{"description":"Usable as customer admin webhook","type":"boolean"},"usableNodeWebhook":{"description":"Usable as node webhook","type":"boolean"},"usablePushNotification":{"description":"Usable as push notification","type":"boolean"},"usableTenantWebhook":{"description":"Usable as tenant webhook","type":"boolean"}},"required":["id","name","usableCustomerAdminWebhook","usableNodeWebhook","usablePushNotification","usableTenantWebhook"],"type":"object"},"EventTypeList":{"description":"List of event types","properties":{"items":{"description":"List of event types","items":{"$ref":"#/components/schemas/EventType"},"type":"array"}},"required":["items"],"type":"object"},"EventlogConfig":{"description":"Eventlog settings","properties":{"enabled":{"description":"Is eventlog enabled?","type":"boolean"},"logIpEnabled":{"description":"Determines whether user’s IP address is logged.","type":"boolean"},"retentionPeriod":{"description":"Retention period (in days) of event log entries.\n\nAfter that period, all entries are deleted.\n\nRecommended value: 7","format":"int32","type":"integer"}},"type":"object"},"FailoverServer":{"description":"Failover server information","properties":{"failoverEnabled":{"description":"RADIUS Failover Server is active","type":"boolean"},"failoverIpAddress":{"description":"RADIUS Failover Server IP Address\n\nRequired if failover server is enabled.","type":"string"},"failoverPort":{"description":"RADIUS Failover Server Port\n\nRequired if failover server is enabled.","format":"int32","type":"integer"}},"required":["failoverEnabled","failoverIpAddress","failoverPort"],"type":"object"},"Feature":{"description":"Feature","properties":{"featureId":{"description":"ID","format":"int32","type":"integer"},"featureName":{"description":"Name","type":"string"},"isAvailable":{"description":"Is Available","type":"boolean"}},"required":["featureId","featureName","isAvailable"],"type":"object"},"FeaturedOAuthClient":{"description":"OAuthClientInfo","properties":{"isAvailable":{"description":"Is Available","type":"boolean"},"oauthClientName":{"type":"string"}},"required":["isAvailable"],"type":"object"},"FileFileKeys":{"description":"File key information","properties":{"fileKeyContainer":{"$ref":"#/components/schemas/FileKeyContainer"},"id":{"description":"File ID","format":"int64","type":"integer"}},"type":"object"},"FileKey":{"description":"File key information","properties":{"iv":{"description":"Initial vector","type":"string"},"key":{"description":"Encryption key","type":"string"},"tag":{"description":"Authentication tag\n\n(needed with authenticated encryption)","type":"string"},"version":{"description":"Version","type":"string"}},"required":["iv","key","tag","version"],"type":"object"},"FileKeyContainer":{"description":"File key container","properties":{"iv":{"description":"Initial vector","type":"string"},"key":{"description":"Encryption key","type":"string"},"tag":{"description":"Authentication tag\n\n(needed with authenticated encryption)","type":"string"},"version":{"description":"Version","type":"string"}},"required":["iv","key","version"],"type":"object"},"FileVersion":{"description":"List of File Versions","properties":{"deleted":{"type":"boolean"},"id":{"description":"Node ID","format":"int64","type":"integer"},"name":{"description":"Name","type":"string"},"parentId":{"description":"Parent node ID (room or folder)","format":"int64","type":"integer"},"referenceId":{"description":"Reference ID. Identical across all versions of a file","format":"int64","type":"integer"}},"required":["id","name","referenceId"],"type":"object"},"FileVersionList":{"description":"List of File Versions","properties":{"items":{"description":"List of file versions","items":{"$ref":"#/components/schemas/FileVersion"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"FirstAdminUser":{"description":"First administrator user","properties":{"authData":{"$ref":"#/components/schemas/UserAuthData"},"authMethods":{"deprecated":true,"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","items":{"$ref":"#/components/schemas/UserAuthMethod"},"type":"array"},"email":{"description":"Email ","type":"string"},"firstName":{"description":"User first name","type":"string"},"gender":{"default":"n","deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nGender","type":"string"},"language":{"deprecated":true,"description":"&#128679; Deprecated since v4.7.0\n\nLanguage ID or ISO 639-1 code","type":"string"},"lastName":{"description":"User last name","type":"string"},"login":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nUser login name","type":"string"},"needsToChangePassword":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nDetermines whether user has to change his / her initial password.\n\nuse `authDate.mustChangePassword` instead","type":"boolean"},"needsToChangeUserName":{"default":false,"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nIf `true`, the user must change the `userName` at the first login.","type":"boolean"},"notifyUser":{"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","type":"boolean"},"password":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nAn initial password may be preset\n\nuse `authData` instead","type":"string"},"phone":{"description":"Phone number","type":"string"},"receiverLanguage":{"description":"IETF language tag","type":"string"},"title":{"deprecated":true,"description":"&#128679; Deprecated since v4.18.0\n\nJob title","type":"string"},"userName":{"description":"&#128640; Since v4.13.0\n\nUsername","type":"string"}},"required":["firstName","lastName"],"type":"object"},"GeneralSettings":{"description":"General settings","properties":{"authTokenRestrictions":{"$ref":"#/components/schemas/AuthTokenRestrictions"},"cryptoEnabled":{"description":"Activation status of client-side encryption.\n\nCan only be enabled once; disabling is not possible.","type":"boolean"},"emailNotificationButtonEnabled":{"description":"Enable email notification button","type":"boolean"},"eulaEnabled":{"description":"Each user has to confirm the EULA at first login.","type":"boolean"},"hideLoginInputFields":{"deprecated":true,"description":"&#128679; Deprecated since v4.42.0\n\nDefines if login fields should be hidden","type":"boolean"},"mediaServerEnabled":{"deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nDetermines if the media server is enabled","type":"boolean"},"s3TagsEnabled":{"description":"&#128640; Since v4.9.0\n\nDefines if S3 tags are enabled","type":"boolean"},"sharePasswordSmsEnabled":{"description":"Allow sending of share passwords via SMS","type":"boolean"},"useS3Storage":{"description":"Defines if S3 is used as storage backend","type":"boolean"},"weakPasswordEnabled":{"deprecated":true,"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.","type":"boolean"}},"type":"object"},"GeneralSettingsInfo":{"description":"General settings","properties":{"authTokenRestrictions":{"$ref":"#/components/schemas/AuthTokenRestrictions"},"cryptoEnabled":{"description":"Activation status of client-side encryption.\n\nCan only be enabled once; disabling is not possible.","type":"boolean"},"emailNotificationButtonEnabled":{"description":"Enable email notification button","type":"boolean"},"eulaEnabled":{"description":"Each user has to confirm the EULA at first login.","type":"boolean"},"hideLoginInputFields":{"deprecated":true,"description":"&#128679; Deprecated since v4.42.0\n\nDefines if login fields should be hidden","type":"boolean"},"homeRoomParentId":{"description":"&#128640; Since v4.10.0\n\nHomeroom Parent ID","format":"int64","readOnly":true,"type":"integer"},"homeRoomsActive":{"description":"&#128640; Since v4.10.0\n\nHomerooms active","readOnly":true,"type":"boolean"},"mediaServerEnabled":{"deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nDetermines if the media server is enabled","type":"boolean"},"s3TagsEnabled":{"description":"&#128640; Since v4.9.0\n\nDefines if S3 tags are enabled","type":"boolean"},"sharePasswordSmsEnabled":{"description":"Allow sending of share passwords via SMS","type":"boolean"},"subscriptionPlan":{"description":"&#128640; Since v4.30.0\n\nSubscription Plan","format":"int32","readOnly":true,"type":"integer"},"useS3Storage":{"description":"Defines if S3 is used as storage backend","type":"boolean"},"weakPasswordEnabled":{"deprecated":true,"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.","type":"boolean"}},"required":["homeRoomsActive","subscriptionPlan"],"type":"object"},"GeneratePresignedUrlsRequest":{"description":"Request model for generating presigned URLs","properties":{"firstPartNumber":{"description":"First part number of a range of requested presigned URLs (for S3 it is: `1`)","format":"int32","type":"integer"},"lastPartNumber":{"description":"Last part number of a range of requested presigned URLs","format":"int32","type":"integer"},"size":{"description":"`Content-Length` header size for each presigned URL (in bytes)\n\n*MUST* be >= 5 MB except the last part.","format":"int64","type":"integer"}},"required":["firstPartNumber","lastPartNumber","size"],"type":"object"},"Group":{"description":"Group information","properties":{"cntUsers":{"description":"Amount of users","format":"int32","type":"integer"},"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"},"groupRoles":{"$ref":"#/components/schemas/RoleList"},"id":{"description":"Unique identifier for the group","format":"int64","type":"integer"},"name":{"description":"Group name","type":"string"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"}},"required":["cntUsers","createdAt","createdBy","id","name"],"type":"object"},"GroupIds":{"description":"Group IDs","properties":{"ids":{"description":"List of group IDs","items":{"description":"List of group IDs","format":"int64","type":"integer"},"type":"array"}},"required":["ids"],"type":"object"},"GroupInfo":{"description":"Group information","properties":{"id":{"description":"Unique identifier for the group","format":"int64","type":"integer"},"name":{"description":"Group name","type":"string"}},"required":["id","name"],"type":"object"},"GroupList":{"description":"List of groups","properties":{"items":{"description":"List of groups","items":{"$ref":"#/components/schemas/Group"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"GroupUser":{"description":"User information","properties":{"displayName":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nDisplay name\n\nuse information from `UserInfo` instead to combine a display name","type":"string"},"email":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nEmail \n\nuse `email` from `UserInfo` instead","type":"string"},"id":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nUnique identifier for the user\n\nuse `id` from `UserInfo` instead","format":"int64","type":"integer"},"isMember":{"description":"Determines whether user is a member of the group or not","type":"boolean"},"login":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nUser login name","type":"string"},"userInfo":{"$ref":"#/components/schemas/UserInfo"}},"required":["displayName","email","id","isMember","login","userInfo"],"type":"object"},"GroupUserList":{"description":"List of users","properties":{"items":{"description":"List of group-user mappings","items":{"$ref":"#/components/schemas/GroupUser"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"GuestUsersPoliciesConfig":{"description":"Set of guest user policies","properties":{"isInviteUsersEnabled":{"description":"Determines whether the invite of users to rooms is enabled.","type":"boolean"}},"required":["isInviteUsersEnabled"],"type":"object"},"InfrastructureProperties":{"description":"Infrastructure properties","properties":{"isDracoonCloud":{"description":"&#128640; Since v4.21.0\n\nDetermines if the DRACOON Core is deployed in the cloud environment","type":"boolean"},"mediaServerConfigEnabled":{"description":"Determines if the media server is enabled","type":"boolean"},"s3DefaultRegion":{"description":"Suggested S3 Region","type":"string"},"s3EnforceDirectUpload":{"description":"&#128640; Since v4.15.0\n\nEnforce direct upload to S3","type":"boolean"},"smsConfigEnabled":{"description":"Allow sending of share passwords via SMS","type":"boolean"},"tenantUuid":{"description":"&#128640; Since v4.21.0\n\nCurrent tenant UUID","type":"string"}},"type":"object"},"KeyValueEntry":{"description":"Key-value pair","properties":{"key":{"description":"Entry key","type":"string"},"value":{"description":"Entry value","type":"string"}},"required":["key","value"],"type":"object"},"LastAdminGroupRoom":{"description":"Room information","properties":{"id":{"description":"Room ID","format":"int64","type":"integer"},"name":{"description":"Room name","type":"string"},"parentId":{"description":"Parent room ID","format":"int64","type":"integer"},"parentPath":{"description":"Parent node path\n\n`/` if node is a root node (room)","type":"string"}},"required":["id","name","parentPath"],"type":"object"},"LastAdminGroupRoomList":{"description":"List of (last admin group) rooms","properties":{"items":{"description":"List of last admin rooms","items":{"$ref":"#/components/schemas/LastAdminGroupRoom"},"type":"array"}},"required":["items"],"type":"object"},"LastAdminUserRoom":{"description":"Room information","properties":{"id":{"description":"Room ID","format":"int64","type":"integer"},"lastAdminInGroup":{"description":"Determines whether user is last admin of a room due to being the last member of last admin group","type":"boolean"},"lastAdminInGroupId":{"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","type":"integer"},"name":{"description":"Room name","type":"string"},"parentId":{"description":"Parent room ID","format":"int64","type":"integer"},"parentPath":{"description":"Parent node path\n\n`/` if node is a root node (room)","type":"string"}},"required":["id","lastAdminInGroup","name","parentPath"],"type":"object"},"LastAdminUserRoomList":{"description":"List of (last admin user) rooms","properties":{"items":{"description":"List of last admin rooms","items":{"$ref":"#/components/schemas/LastAdminUserRoom"},"type":"array"}},"required":["items"],"type":"object"},"LogEvent":{"description":"Log event information","properties":{"attribute1":{"description":"Attribute 1","type":"string"},"attribute2":{"description":"Attribute 2","type":"string"},"attribute3":{"description":"Attribute 3","type":"string"},"authParentSource":{"description":"Auth parent source ID","type":"string"},"authParentTarget":{"description":"Auth parent target ID","type":"string"},"customerId":{"description":"Unique identifier for the customer","format":"int64","type":"integer"},"id":{"description":"Event ID","format":"int64","type":"integer"},"message":{"description":"Event description","type":"string"},"objectId1":{"description":"Object ID 1","format":"int64","type":"integer"},"objectId2":{"description":"Object ID 2","format":"int64","type":"integer"},"objectName1":{"description":"Object name 1","type":"string"},"objectName2":{"description":"Object name 2","type":"string"},"objectType1":{"description":"Object type 1","format":"int32","type":"integer"},"objectType2":{"description":"Object type 2","format":"int32","type":"integer"},"operationId":{"description":"Operation type ID","format":"int32","type":"integer"},"operationName":{"description":"Operation name","type":"string"},"status":{"description":"Operation status:\n\n* `0` - Success\n\n* `2` - Error","enum":[0,2],"format":"int32","type":"integer"},"time":{"description":"Event timestamp","format":"date-time","type":"string"},"userClient":{"description":"Client","type":"string"},"userId":{"description":"Unique identifier for the user","format":"int64","type":"integer"},"userIp":{"description":"User IP","type":"string"},"userName":{"description":"Username","type":"string"}},"required":["id","message","time","userId"],"type":"object"},"LogEventList":{"description":"List of log events","properties":{"items":{"description":"List of log events","items":{"$ref":"#/components/schemas/LogEvent"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"LogOperation":{"description":"Log operation","properties":{"id":{"description":"Operation type ID","format":"int32","type":"integer"},"isDeprecated":{"description":"Determines whether log operation is deprecated or not","type":"boolean"},"name":{"description":"Operation name","type":"string"}},"required":["id","isDeprecated","name"],"type":"object"},"LogOperationList":{"description":"List of log operations","properties":{"operationList":{"description":"List of all log operations","items":{"$ref":"#/components/schemas/LogOperation"},"type":"array"}},"required":["operationList"],"type":"object"},"LoginPasswordPolicies":{"description":"Login password policies","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"description":"Minimum number of characters a password must contain","format":"int32","maximum":1024,"minimum":1,"type":"integer"},"numberOfArchivedPasswords":{"description":"Number of passwords to archive\n\n(must be between `0` and `10`; `0` means that password history is disabled)","format":"int32","maximum":10,"minimum":1,"type":"integer"},"passwordExpiration":{"$ref":"#/components/schemas/PasswordExpiration"},"rejectDictionaryWords":{"description":"Determines whether a password must NOT contain word(s) from a dictionary","type":"boolean"},"rejectKeyboardPatterns":{"description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)","type":"boolean"},"rejectUserInfo":{"description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)","type":"boolean"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"},"userLockout":{"$ref":"#/components/schemas/UserLockout"}},"required":["characterRules","minLength","numberOfArchivedPasswords","passwordExpiration","rejectDictionaryWords","rejectKeyboardPatterns","rejectUserInfo","updatedAt","updatedBy","userLockout"],"type":"object"},"LoginRequest":{"description":"User credentials","properties":{"authType":{"description":"Authentication methods","enum":["basic","active_directory","radius"],"type":"string"},"language":{"deprecated":true,"description":"&#128679; Deprecated since v4.7.0\n\nLanguage ID or ISO 639-1 code","type":"string"},"login":{"deprecated":true,"description":"&#128679; Deprecated since v4.7.0\n\nUser login name","type":"string"},"password":{"description":"Password","type":"string"},"state":{"description":"For RADIUS Access-Challenge\n\nIf a `replyState` is returned, it must be included as `state` in the following request.","type":"string"},"token":{"description":"RADIUS Token","type":"string"},"userName":{"description":"&#128640; Since v4.13.0\n\nUsername","type":"string"}},"required":["password"],"type":"object"},"LoginResponse":{"description":"Authentication token","properties":{"token":{"description":"Authentication token","type":"string"}},"required":["token"],"type":"object"},"MfaConfig":{"description":"Multi-factor authentication configuration","properties":{"mfaEnforced":{"type":"boolean"}},"type":"object"},"MfaPoliciesConfig":{"description":"Set of multi-factor authentication policies","properties":{"isMfaEnforced":{"description":"Determines whether multi-factor authentication is enforced","type":"boolean"}},"required":["isMfaEnforced"],"type":"object"},"MfaSetupStatus":{"description":"Contains the save-to-send-out information of a MFA-setup","properties":{"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"id":{"description":"ID","format":"int64","type":"integer"},"mfaType":{"description":"Type of second factor authentication","enum":["TOTP","EMERGENCY","U2F"],"type":"string"},"name":{"description":"A name to identify the MFA setup by the user. Default is MFA-type followed by a number","type":"string"}},"required":["createdAt","id","mfaType","name"],"type":"object"},"MfaTotpConfirmationRequest":{"properties":{"id":{"description":"ID","format":"int64","type":"integer"},"otp":{"description":"Generated valid OTP","type":"string"}},"required":["id","otp"],"type":"object"},"MissingKeysResponse":{"description":"Missing keys information","properties":{"files":{"description":"List of file keys","items":{"$ref":"#/components/schemas/FileFileKeys"},"type":"array"},"items":{"description":"List of user ID and file ID mappings","items":{"$ref":"#/components/schemas/UserIdFileIdItem"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"},"users":{"description":"List of user public keys","items":{"$ref":"#/components/schemas/UserUserPublicKey"},"type":"array"}},"type":"object"},"MoveNode":{"description":"Moved node information","properties":{"id":{"description":"Source node ID","format":"int64","type":"integer"},"name":{"description":"New node name","type":"string"},"timestampCreation":{"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","type":"string"},"timestampModification":{"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","type":"string"}},"required":["id"],"type":"object"},"MoveNodesRequest":{"description":"Request model for moving nodes","properties":{"items":{"description":"List of nodes to be moved","items":{"$ref":"#/components/schemas/MoveNode"},"type":"array"},"keepShareLinks":{"default":false,"description":"Preserve Download Share Links and point them to the new node.","type":"boolean"},"nodeIds":{"deprecated":true,"description":"&#128679; Deprecated since v4.5.0\n\nNode IDs\n\nPlease use `items` instead.","items":{"deprecated":true,"description":"Node IDs\n\nPlease use `items` instead.","format":"int64","type":"integer"},"type":"array"},"resolutionStrategy":{"default":"autorename","description":"Node conflict resolution strategy:\n\n* `autorename`\n\n* `overwrite`\n\n* `fail`","enum":["autorename","overwrite","fail"],"type":"string"}},"type":"object"},"NewCustomerRequest":{"description":"Request model for creating a customer","properties":{"activationCode":{"deprecated":true,"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","type":"string"},"companyName":{"description":"Company name","type":"string"},"customerAttributes":{"$ref":"#/components/schemas/CustomerAttributes"},"customerContractType":{"description":"Customer type","enum":["demo","free","pay"],"type":"string"},"firstAdminUser":{"$ref":"#/components/schemas/FirstAdminUser"},"isLocked":{"default":false,"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.","type":"boolean"},"lockStatus":{"default":false,"deprecated":true,"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.","type":"boolean"},"providerCustomerId":{"description":"Provider customer ID","type":"string"},"quotaMax":{"description":"Maximal disc space which can be allocated by customer in bytes. -1 for unlimited","format":"int64","type":"integer"},"trialDays":{"description":"Number of days left for trial period (relevant only for type `demo`)\n\n(not used)","format":"int32","type":"integer"},"userMax":{"description":"Maximal number of users","format":"int32","type":"integer"},"webhooksMax":{"description":"&#128640; Since v4.19.0\n\nMaximal number of webhooks","format":"int64","type":"integer"}},"required":["customerContractType","firstAdminUser","quotaMax","userMax"],"type":"object"},"NewCustomerResponse":{"description":"Customer information","properties":{"activationCode":{"deprecated":true,"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","type":"string"},"companyName":{"description":"Company name","type":"string"},"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"customerAttributes":{"$ref":"#/components/schemas/CustomerAttributes"},"customerContractType":{"description":"Customer type","enum":["demo","free","pay"],"type":"string"},"customerUuid":{"description":"&#128640; Since v4.21.0\n\nCustomer UUID","type":"string"},"firstAdminUser":{"$ref":"#/components/schemas/FirstAdminUser"},"id":{"description":"Unique identifier for the customer","format":"int64","type":"integer"},"isLocked":{"default":false,"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.","type":"boolean"},"lockStatus":{"default":false,"deprecated":true,"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.","type":"boolean"},"providerCustomerId":{"description":"Provider customer ID","type":"string"},"quotaMax":{"description":"Maximal disc space which can be allocated by customer in bytes. -1 for unlimited","format":"int64","type":"integer"},"trialDays":{"description":"Number of days left for trial period (relevant only for type `demo`)\n\n(not used)","format":"int32","type":"integer"},"userMax":{"description":"Maximal number of users","format":"int32","type":"integer"},"webhooksMax":{"description":"&#128640; Since v4.19.0\n\nMaximal number of webhooks","format":"int64","type":"integer"}},"required":["companyName","customerContractType","customerUuid","firstAdminUser","lockStatus","quotaMax","userMax"],"type":"object"},"Node":{"description":"Node information (Node can be a room, folder or file)","properties":{"authParentId":{"description":"&#128640; Since v4.15.0\n\nAuth parent room ID","format":"int64","type":"integer"},"branchVersion":{"description":"Version of last change in this node or a node further down the tree.","format":"int64","type":"integer"},"children":{"deprecated":true,"description":"&#128679; Deprecated since v4.10.0\n\nChild nodes list (if requested)\n\n(for rooms / folders only)","items":{"$ref":"#/components/schemas/Node"},"type":"array"},"classification":{"description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential","enum":[1,2,3,4],"format":"int32","type":"integer"},"cntChildren":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nNumber of direct children\n\n(no recursion; for rooms / folders only)","format":"int32","type":"integer"},"cntComments":{"description":"Returns the number of comments of this node.","format":"int32","type":"integer"},"cntDeletedVersions":{"description":"Number of deleted versions of this file / folder\n\n(for rooms / folders only)","format":"int32","type":"integer"},"cntDownloadShares":{"description":"Returns the number of Download Shares of this node.","format":"int32","type":"integer"},"cntFiles":{"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","type":"integer"},"cntFolders":{"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","type":"integer"},"cntRooms":{"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","type":"integer"},"cntUploadShares":{"description":"Returns the number of Upload Shares of this node.","format":"int32","type":"integer"},"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"encryptionInfo":{"$ref":"#/components/schemas/EncryptionInfo"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"},"fileType":{"description":"File type / extension (for files only)","type":"string"},"hasActivitiesLog":{"default":true,"description":"Is activities log active (for rooms only)","type":"boolean"},"hash":{"description":"MD5 hash of file","type":"string"},"id":{"description":"Node ID","format":"int64","type":"integer"},"inheritPermissions":{"description":"Inherit permissions from parent room\n\n(default: `false` if `parentId` is `0`; otherwise: `true`)","type":"boolean"},"isBrowsable":{"description":"&#128640; Since v4.11.0\n\nDetermines whether node is browsable by client (for rooms only)","type":"boolean"},"isEncrypted":{"description":"Encryption state","type":"boolean"},"isFavorite":{"description":"Node is marked as favorite (for rooms / folders only)","type":"boolean"},"mediaToken":{"description":"Media server media token","type":"string"},"mediaType":{"description":"File media type (for files only)","type":"string"},"name":{"description":"Name","type":"string"},"notes":{"description":"User notes","maximum":255,"type":"string"},"parentId":{"description":"Parent node ID (room or folder)","format":"int64","type":"integer"},"parentPath":{"description":"Parent node path\n\n`/` if node is a root node (room)","type":"string"},"permissions":{"$ref":"#/components/schemas/NodePermissions"},"quota":{"description":"Quota in byte","format":"int64","type":"integer"},"recycleBinRetentionPeriod":{"description":"Retention period for deleted nodes in days","format":"int32","maximum":9999,"minimum":0,"type":"integer"},"referenceId":{"description":"&#128640; Since v4.37.0\n\nReference ID. Identical across all versions of a file","format":"int64","type":"integer"},"size":{"description":"Node size in byte","format":"int64","type":"integer"},"timestampCreation":{"description":"&#128640; Since v4.22.0\n\nTime the node was created on external file system","format":"date-time","type":"string"},"timestampModification":{"description":"&#128640; Since v4.22.0\n\nTime the content of a node was last modified on external file system","format":"date-time","type":"string"},"type":{"description":"Node type","enum":["room","folder","file"],"type":"string"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"}},"required":["id","name","type"],"type":"object"},"NodeList":{"description":"List of nodes","properties":{"items":{"description":"List of nodes","items":{"$ref":"#/components/schemas/Node"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"NodeParent":{"description":"Parent node","properties":{"id":{"description":"Node ID","format":"int64","type":"integer"},"name":{"description":"Node name","type":"string"},"parentId":{"description":"Parent node ID (room or folder)","format":"int64","type":"integer"},"type":{"description":"Node type","type":"string"}},"required":["id","name","type"],"type":"object"},"NodeParentList":{"description":"List of parent nodes","properties":{"items":{"description":"List of node parents","items":{"$ref":"#/components/schemas/NodeParent"},"type":"array"}},"type":"object"},"NodePermissions":{"description":"Node permissions","properties":{"change":{"description":"User / Group may update metadata of nodes: rename files and folders, change classification, etc.","type":"boolean"},"create":{"description":"User / Group may upload files, create folders and copy / move files to this room, overwriting is not possible.","type":"boolean"},"delete":{"description":"User / Group may overwrite and remove files / folders, move files from this room.","type":"boolean"},"deleteRecycleBin":{"description":"User / Group may permanently remove files / folders from the recycle bin.","type":"boolean"},"manage":{"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.","type":"boolean"},"manageDownloadShare":{"description":"User / Group may create Download Shares for files and containers view all previously created Download Shares in this room.","type":"boolean"},"manageUploadShare":{"description":"User / Group may create Upload Shares for containers, view all previously created Upload Shares in this room.","type":"boolean"},"read":{"description":"User / Group may see all rooms, files and folders in the room and download everything, copy files from this room.","type":"boolean"},"readRecycleBin":{"description":"User / Group may look up files / folders in the recycle bin.","type":"boolean"},"restoreRecycleBin":{"description":"User / Group may restore files / folders from recycle bin - room permissions required.","type":"boolean"}},"required":["change","create","delete","deleteRecycleBin","manage","manageDownloadShare","manageUploadShare","read","readRecycleBin","restoreRecycleBin"],"type":"object"},"NotificationChannel":{"description":"Notification channel information","properties":{"frequency":{"description":"Channel frequency (aggregation window size in minutes)","format":"int64","type":"integer"},"id":{"description":"Channel ID","format":"int32","type":"integer"},"isEnabled":{"description":"Determines whether channel is enabled","type":"boolean"},"name":{"description":"Name","type":"string"},"type":{"description":"Channel type (only `EMAIL` available at the moment)","type":"string"}},"required":["frequency","id","isEnabled","name","type"],"type":"object"},"NotificationChannelActivationRequest":{"description":"Request model for switching notification channel status","properties":{"channelId":{"description":"Channel ID","format":"int32","type":"integer"},"isEnabled":{"description":"Determines whether channel is enabled","type":"boolean"}},"required":["channelId","isEnabled"],"type":"object"},"NotificationChannelList":{"description":"List of notification channels","properties":{"items":{"description":"List of notification channels","items":{"$ref":"#/components/schemas/NotificationChannel"},"type":"array"}},"required":["items"],"type":"object"},"NotificationConfig":{"description":"Notification configuration information","properties":{"channelIds":{"description":"List of notification channel IDs","items":{"description":"List of notification channel IDs","format":"int32","type":"integer"},"type":"array"},"eventTypeName":{"description":"Event type name","type":"string"},"id":{"description":"Notification configuration ID","format":"int64","type":"integer"},"scopeId":{"description":"Scope ID","format":"int32","type":"integer"}},"required":["channelIds","eventTypeName","id","scopeId"],"type":"object"},"NotificationConfigChangeRequest":{"description":"Request model for updating notification configuration","properties":{"channelIds":{"description":"List of notification channel IDs.\n\nLeave empty to disable notifications.","items":{"description":"List of notification channel IDs.\n\nLeave empty to disable notifications.","format":"int32","type":"integer"},"type":"array"}},"required":["channelIds"],"type":"object"},"NotificationConfigList":{"description":"List of notification configurations","properties":{"items":{"description":"List of notification configurations","items":{"$ref":"#/components/schemas/NotificationConfig"},"type":"array"}},"required":["items"],"type":"object"},"NotificationScope":{"description":"Notification scope information","properties":{"id":{"description":"Scope ID","format":"int32","type":"integer"},"name":{"description":"Name","type":"string"}},"required":["id","name"],"type":"object"},"NotificationScopeList":{"description":"List of notification scopes","properties":{"items":{"description":"List of notification scopes","items":{"$ref":"#/components/schemas/NotificationScope"},"type":"array"}},"required":["items"],"type":"object"},"OAuthApproval":{"description":"OAuth client approval information","properties":{"clientId":{"description":"ID of the OAuth client","type":"string"},"clientName":{"description":"Name, which is shown at the client configuration and authorization.","type":"string"},"expiresAt":{"description":"Expiration date of the approval","format":"date-time","type":"string"}},"required":["clientId","clientName"],"type":"object"},"OAuthAuthorization":{"description":"OAuth authorization","properties":{"clientId":{"description":"ID of the OAuth client","type":"string"},"clientName":{"description":"Name, which is shown at the client configuration and authorization.","type":"string"},"createdAt":{"description":"&#128640; Since v4.13.0\n\nCreation date of the authorization","format":"date-time","type":"string"},"expiresAt":{"description":"Expiration date of the authorization","format":"date-time","type":"string"},"id":{"description":"&#128640; Since v4.12.0\n\nID of the OAuth authorization","format":"int64","type":"integer"},"isCurrentAuthorization":{"description":"&#128640; Since v4.25.0\n\nDetermines whether authorization matches the one from Authorization Header","type":"boolean"},"isStandard":{"description":"&#128640; Since v4.12.0\n\nDetermines whether client is a standard client.","type":"boolean"},"usedAt":{"description":"&#128640; Since v4.13.0\n\nUsage date of the authorization\n\n(Time of last usage.)","format":"date-time","type":"string"},"userAgentCategory":{"description":"&#128640; Since v4.12.0\n\nUser agent category.","enum":["browser","native","unknown"],"type":"string"},"userAgentInfo":{"description":"&#128640; Since v4.12.0\n\nUser agent info.","type":"string"},"userAgentOs":{"description":"&#128640; Since v4.12.0\n\nUser agent OS.","type":"string"},"userAgentType":{"description":"&#128640; Since v4.12.0\n\nUser agent type.","type":"string"}},"required":["clientId","clientName","userAgentCategory"],"type":"object"},"OAuthClient":{"description":"OAuth client information","properties":{"accessTokenValidity":{"description":"Validity of the access token in seconds.","format":"int32","type":"integer"},"approvalValidity":{"description":"&#128640; Since v4.22.0\n\nValidity of the approval interval in seconds.","format":"int32","type":"integer"},"clientId":{"description":"ID of the OAuth client","type":"string"},"clientName":{"description":"Name, which is shown at the client configuration and authorization.","type":"string"},"clientSecret":{"description":"Secret, which client uses at authentication.","type":"string"},"clientType":{"description":"Determines whether client is a confidential or public client.","enum":["confidential","public"],"type":"string"},"grantTypes":{"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"],"items":{"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"],"type":"string"},"type":"array"},"isEnabled":{"description":"Determines whether client is enabled.","type":"boolean"},"isExternal":{"description":"Determines whether client is an external client.","type":"boolean"},"isStandard":{"description":"Determines whether client is a standard client.","type":"boolean"},"redirectUris":{"description":"URIs, to which a user is redirected after authorization.","items":{"description":"URIs, to which a user is redirected after authorization.","type":"string"},"type":"array"},"refreshTokenValidity":{"description":"Validity of the refresh token in seconds.","format":"int32","type":"integer"}},"required":["clientId","grantTypes"],"type":"object"},"ObjectExpiration":{"description":"Expiration information","properties":{"enableExpiration":{"description":"enabled / disabled","type":"boolean"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"}},"required":["enableExpiration"],"type":"object"},"OpenIdAuthInfo":{"description":"List of OpenID Connect providers","properties":{"items":{"description":"List of available OpenID Connect identity providers","items":{"$ref":"#/components/schemas/OpenIdProvider"},"type":"array"}},"required":["items"],"type":"object"},"OpenIdIdpConfig":{"description":"OpenID Connect IDP configuration","properties":{"authorizationEndPointUrl":{"description":"URL of the authorization endpoint","type":"string"},"clientId":{"description":"ID of the OpenID client","type":"string"},"clientSecret":{"description":"Secret, which client uses at authentication.","type":"string"},"fallbackMappingClaim":{"description":"Name of the claim which is used for the user mapping fallback.","type":"string"},"flow":{"description":"&#128640; Since v4.11.0\n\nFlow, which is used at authentication","enum":["authorization_code","hybrid"],"type":"string"},"id":{"description":"ID","format":"int32","type":"integer"},"issuer":{"description":"Issuer identifier of the IDP\n\nThe value is a case sensitive URL.","type":"string"},"jwksEndPointUrl":{"description":"URL of the JWKS endpoint","type":"string"},"mappingClaim":{"description":"Name of the claim which is used for the user mapping.","type":"string"},"name":{"description":"Name of the IDP","type":"string"},"pkceChallengeMethod":{"description":"PKCE code challenge method.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)","type":"string"},"pkceEnabled":{"default":false,"description":"Determines whether PKCE is enabled.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)","type":"boolean"},"redirectUris":{"description":"URIs, to which a user is redirected after authorization.","items":{"description":"URIs, to which a user is redirected after authorization.","type":"string"},"type":"array"},"scopes":{"description":"List of requested scopes\n\nUsually `openid` and the names of the requested claims.","items":{"description":"List of requested scopes\n\nUsually `openid` and the names of the requested claims.","type":"string"},"type":"array"},"tokenEndPointUrl":{"description":"URL of the token endpoint","type":"string"},"userImportEnabled":{"default":false,"description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account.","type":"boolean"},"userImportGroup":{"description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64","type":"integer"},"userInfoEndPointUrl":{"description":"URL of the user info endpoint","type":"string"},"userInfoSource":{"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"],"type":"string"},"userManagementUrl":{"description":"URL of the user management UI.\n\nUse empty string to remove.","type":"string"},"userUpdateEnabled":{"default":false,"description":"Determines if the DRACOON account is updated with data from AD / IDP.\n\nFor OpenID Connect, the scopes `email` and `profile` are needed.","type":"boolean"}},"required":["id"],"type":"object"},"OpenIdProvider":{"description":"OpenID Connect provider information","properties":{"id":{"description":"ID","format":"int32","type":"integer"},"isGlobalAvailable":{"description":"Is available for all customers","type":"boolean"},"issuer":{"description":"Issuer identifier of the IDP\n\nThe value is a case sensitive URL.","type":"string"},"mappingClaim":{"description":"Name of the claim which is used for the user mapping.","type":"string"},"name":{"description":"Name of the IDP","type":"string"},"userManagementUrl":{"description":"URL of the user management UI.\n\nUse empty string to remove.","type":"string"}},"required":["id","isGlobalAvailable","issuer","mappingClaim","name"],"type":"object"},"PasswordExpiration":{"description":"Password expiration information","properties":{"enabled":{"description":"Determines whether password expiration is enabled","type":"boolean"},"maxPasswordAge":{"description":"Maximum allowed password age (in days)","format":"int32","type":"integer"}},"required":["enabled"],"type":"object"},"PasswordPoliciesConfig":{"description":"Set of password policies","properties":{"encryptionPasswordPolicies":{"$ref":"#/components/schemas/EncryptionPasswordPolicies"},"loginPasswordPolicies":{"$ref":"#/components/schemas/LoginPasswordPolicies"},"sharesPasswordPolicies":{"$ref":"#/components/schemas/SharesPasswordPolicies"}},"type":"object"},"PasswordPolicyViolationResponse":{"description":"List of violated password policies","properties":{"code":{"description":"HTTP status code","format":"int32","type":"integer"},"debugInfo":{"description":"Debug information","type":"string"},"errorCode":{"description":"Internal error code","format":"int32","type":"integer"},"message":{"description":"HTTP status code description","type":"string"},"violatedPasswordPolicies":{"description":"List of violated password policies","items":{"$ref":"#/components/schemas/ViolatedPasswordPolicy"},"type":"array"}},"required":["code","message"],"type":"object"},"PendingAssignment":{"description":"Pending assignment information","properties":{"groupId":{"description":"Unique identifier for the group","format":"int64","type":"integer"},"roomId":{"description":"Room ID","format":"int64","type":"integer"},"roomName":{"description":"Room name","type":"string"},"state":{"description":"Acceptance state:\n\n* `ACCEPTED`\n\n* `WAITING`\n\n* `DENIED`","enum":["ACCEPTED","DENIED","WAITING"],"type":"string"},"userId":{"description":"Unique identifier for the user","format":"int64","type":"integer"}},"required":["groupId","roomId","roomName","state","userId"],"type":"object"},"PendingAssignmentData":{"description":"Pending assignment information","properties":{"groupInfo":{"$ref":"#/components/schemas/GroupInfo"},"pendingGroupData":{"$ref":"#/components/schemas/PendingGroupData"},"pendingUserData":{"$ref":"#/components/schemas/PendingUserData"},"roomId":{"description":"Room ID","format":"int64","type":"integer"},"roomName":{"description":"Room name","type":"string"},"state":{"description":"Acceptance state:\n\n* `ACCEPTED`\n\n* `WAITING`\n\n* `DENIED`","enum":["ACCEPTED","DENIED","WAITING"],"type":"string"},"userInfo":{"$ref":"#/components/schemas/UserInfo"}},"required":["groupInfo","pendingGroupData","pendingUserData","roomId","roomName","state","userInfo"],"type":"object"},"PendingAssignmentList":{"description":"List of pending assignments","properties":{"items":{"description":"List of pending assignment information","items":{"$ref":"#/components/schemas/PendingAssignmentData"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items"],"type":"object"},"PendingAssignmentsRequest":{"description":"Request model for handling pending assignments","properties":{"items":{"description":"List of pending assignments","items":{"$ref":"#/components/schemas/PendingAssignment"},"type":"array"}},"required":["items"],"type":"object"},"PendingGroupData":{"deprecated":true,"description":"Pending group information","properties":{"id":{"description":"Unique identifier for the group\n\nuse `id` from `GroupInfo` instead","format":"int64","type":"integer"},"name":{"description":"Group name\n\nuse `name` from `GroupInfo` instead","type":"string"}},"required":["id","name"],"type":"object"},"PendingUserData":{"deprecated":true,"description":"Pending user information","properties":{"displayName":{"description":"Display name\n\nuse information from `UserInfo` instead to combine a display name","type":"string"},"email":{"description":"Email \n\nuse `email` from `UserInfo` instead","type":"string"},"id":{"description":"Unique identifier for the user","format":"int64","type":"integer"},"login":{"description":"User login name","type":"string"}},"required":["displayName","email","id","login"],"type":"object"},"PresignedUrl":{"description":"Presigned URL information","properties":{"partNumber":{"description":"Corresponding part number","format":"int32","type":"integer"},"url":{"description":"S3 presigned URL","type":"string"}},"required":["partNumber","url"],"type":"object"},"PresignedUrlList":{"description":"List of generated presigned URLs","properties":{"urls":{"description":"List of S3 presigned URLs","items":{"$ref":"#/components/schemas/PresignedUrl"},"type":"array"}},"required":["urls"],"type":"object"},"PrivateKeyContainer":{"description":"Private key container","properties":{"createdAt":{"description":"&#128640; Since v4.24.0\n\nCreation date","format":"date-time","type":"string"},"createdBy":{"description":"&#128640; Since v4.24.0\n\nCreated by user","format":"int64","type":"integer"},"privateKey":{"description":"Private key","type":"string"},"version":{"description":"Version","type":"string"}},"required":["privateKey","version"],"type":"object"},"ProductPackageResponse":{"description":"ProductPackageResponse","properties":{"clients":{"description":"OAuth Client Information","items":{"$ref":"#/components/schemas/FeaturedOAuthClient"},"type":"array"},"features":{"description":"Features","items":{"$ref":"#/components/schemas/Feature"},"type":"array"},"productPackageId":{"description":"ID","format":"int64","type":"integer"},"productPackageName":{"description":"Name","type":"string"}},"required":["clients","features","productPackageId","productPackageName"],"type":"object"},"ProductPackageResponseList":{"description":"ProductPackageResponseList","properties":{"packages":{"description":"Packages","items":{"$ref":"#/components/schemas/ProductPackageResponse"},"type":"array"}},"required":["packages"],"type":"object"},"ProfileAttributes":{"description":"User profile attributes","properties":{"items":{"description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"ProfileAttributesRequest":{"description":"Request model for setting user profile attributes","properties":{"items":{"description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"},"type":"array"}},"required":["items"],"type":"object"},"PublicDownloadShare":{"description":"Download Share information","properties":{"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"creatorName":{"description":"Creator name","type":"string"},"creatorUsername":{"description":"Creator username","type":"string"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"},"fileKey":{"$ref":"#/components/schemas/FileKey"},"fileName":{"description":"File name","type":"string"},"hasDownloadLimit":{"description":"&#128640; Since v4.11.0\n\nDetermines whether Download Share has a limit for amount of downloads","type":"boolean"},"isEncrypted":{"description":"Encryption state","type":"boolean"},"isProtected":{"description":"Is share protected by password","type":"boolean"},"limitReached":{"description":"Downloads limit reached","type":"boolean"},"mediaType":{"description":"&#128640; Since v4.11.0\n\n* `application/zip` (for folders and rooms)\n\n* actual file media type (for files only)","type":"string"},"name":{"description":"Share display name (alias name)","type":"string"},"notes":{"description":"User notes","maximum":255,"type":"string"},"privateKeyContainer":{"$ref":"#/components/schemas/PrivateKeyContainer"},"size":{"description":"File size or container size not compressed (in bytes)","format":"int64","type":"integer"}},"required":["createdAt","creatorName","fileName","hasDownloadLimit","isProtected","limitReached","mediaType","size"],"type":"object"},"PublicDownloadTokenGenerateRequest":{"description":"Request model for generating download URL","properties":{"password":{"description":"Password (only for password-protected shares)","type":"string"}},"type":"object"},"PublicDownloadTokenGenerateResponse":{"description":"Download URL","properties":{"downloadUrl":{"description":"Download URL","type":"string"}},"type":"object"},"PublicKeyContainer":{"description":"Public key container","properties":{"createdAt":{"description":"&#128640; Since v4.24.0\n\nCreation date","format":"date-time","type":"string"},"createdBy":{"description":"&#128640; Since v4.24.0\n\nCreated by user","format":"int64","type":"integer"},"publicKey":{"description":"Public key","type":"string"},"version":{"description":"Version","type":"string"}},"required":["publicKey","version"],"type":"object"},"PublicUploadShare":{"description":"Upload Share information","properties":{"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"creatorName":{"description":"&#128640; Since v4.11.0\n\nCreator name","type":"string"},"creatorUsername":{"description":"&#128640; Since v4.11.0\n\nCreator username","type":"string"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"},"isEncrypted":{"description":"Encryption state","type":"boolean"},"isProtected":{"description":"Is share protected by password","type":"boolean"},"name":{"description":"Share display name (alias name)","type":"string"},"notes":{"description":"User notes","maximum":255,"type":"string"},"remainingSize":{"description":"Remaining size","format":"int64","type":"integer"},"remainingSlots":{"description":"Remaining slots","format":"int32","type":"integer"},"showUploadedFiles":{"description":"Allow display of already uploaded files","type":"boolean"},"uploadedFiles":{"description":"List of (public) uploaded files","items":{"$ref":"#/components/schemas/PublicUploadedFileData"},"type":"array"},"userUserPublicKeyList":{"$ref":"#/components/schemas/UserUserPublicKeyList"}},"required":["createdAt","creatorName","isProtected"],"type":"object"},"PublicUploadedFileData":{"description":"File information","properties":{"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"hash":{"description":"Hash value of transferred file","type":"string"},"name":{"description":"Name","type":"string"},"size":{"description":"File size in byte","format":"int64","type":"integer"}},"required":["createdAt","name","size"],"type":"object"},"RadiusChallengeResponse":{"description":"RADIUS challenge reply","properties":{"code":{"description":"HTTP status code","format":"int32","type":"integer"},"debugInfo":{"description":"Debug information","type":"string"},"errorCode":{"description":"Internal error code","format":"int32","type":"integer"},"message":{"description":"HTTP status code description","type":"string"},"replyMessage":{"description":"RADIUS Reply-Message\n\nInstruction how to handle the situation.","type":"string"},"replyState":{"description":"For RADIUS Access-Challenge\n\nIf a `replyState` is returned, it must be included as `state` in the following request.","type":"string"}},"required":["code","message","replyMessage","replyState"],"type":"object"},"RadiusConfig":{"description":"RADIUS configuration","properties":{"failoverServer":{"$ref":"#/components/schemas/FailoverServer"},"ipAddress":{"description":"RADIUS Server IP Address","type":"string"},"otpPinFirst":{"default":true,"description":"Sequence order of concatenated PIN and one-time token","type":"boolean"},"port":{"description":"RADIUS Server Port","format":"int32","type":"integer"},"sharedSecret":{"description":"Shared Secret to access the RADIUS server","type":"string"}},"required":["ipAddress","otpPinFirst","port","sharedSecret"],"type":"object"},"RadiusConfigCreateRequest":{"description":"Request model for creating a RADIUS configuration","properties":{"failoverServer":{"$ref":"#/components/schemas/FailoverServer"},"ipAddress":{"description":"RADIUS Server IP Address","type":"string"},"otpPinFirst":{"default":true,"description":"Sequence order of concatenated PIN and one-time token","type":"boolean"},"port":{"description":"RADIUS Server Port","format":"int32","type":"integer"},"sharedSecret":{"description":"Shared Secret to access the RADIUS server","type":"string"}},"required":["ipAddress","port","sharedSecret"],"type":"object"},"RadiusConfigUpdateRequest":{"description":"Request model for updating a RADIUS configuration","properties":{"failoverServer":{"$ref":"#/components/schemas/FailoverServer"},"ipAddress":{"description":"RADIUS Server IP Address","type":"string"},"otpPinFirst":{"default":true,"description":"Sequence order of concatenated PIN and one-time token","type":"boolean"},"port":{"description":"RADIUS Server Port","format":"int32","type":"integer"},"sharedSecret":{"description":"Shared Secret to access the RADIUS server","type":"string"}},"type":"object"},"Range":{"description":"Range information","properties":{"limit":{"description":"Range limit. Maximum 500.","format":"int64","type":"integer"},"offset":{"description":"Range offset","format":"int64","type":"integer"},"total":{"description":"Total items available","format":"int64","type":"integer"}},"required":["limit","offset","total"],"type":"object"},"RecoverUserNameRequest":{"description":"Recover usernames for email","properties":{"creatorLanguage":{"description":"IETF language tag","type":"string"},"email":{"description":"Email ","type":"string"}},"required":["email"],"type":"object"},"ResetPasswordRequest":{"description":"Request model for reseting user's login password","properties":{"creatorLanguage":{"description":"IETF language tag","type":"string"},"language":{"deprecated":true,"description":"&#128679; Deprecated since v4.7.0\n\nLanguage ID or ISO 639-1 code","type":"string"},"login":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nUser login name","type":"string"},"userName":{"description":"&#128640; Since v4.13.0\n\nUsername","type":"string"}},"type":"object"},"ResetPasswordTokenValidateResponse":{"description":"Password reset information","properties":{"allowSystemGlobalWeakPassword":{"deprecated":true,"description":"&#128679; Deprecated since v4.14.0\n\nAllow weak password\n\nPlease use `loginPasswordPolicies` instead","type":"boolean"},"firstName":{"description":"User first name","type":"string"},"gender":{"default":"n","deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nGender","type":"string"},"lastName":{"description":"User last name","type":"string"},"loginPasswordPolicies":{"$ref":"#/components/schemas/LoginPasswordPolicies"},"title":{"deprecated":true,"description":"&#128679; Deprecated since v4.18.0\n\nJob title","type":"string"}},"required":["firstName","lastName"],"type":"object"},"ResetPasswordWithTokenRequest":{"description":"New password","properties":{"password":{"description":"New password","type":"string"}},"required":["password"],"type":"object"},"RestoreDeletedNodesRequest":{"description":"Request model for restoring deleted nodes","properties":{"deletedNodeIds":{"description":"List of deleted node IDs","items":{"description":"List of deleted node IDs","format":"int64","type":"integer"},"type":"array"},"keepShareLinks":{"default":false,"description":"Preserve Download Share Links and point them to the new node.","type":"boolean"},"parentId":{"description":"Node parent ID\n\n(default: previous parent ID)","format":"int64","type":"integer"},"resolutionStrategy":{"default":"autorename","description":"Node conflict resolution strategy:\n\n* `autorename`\n\n* `overwrite`\n\n* `fail`","enum":["autorename","overwrite","fail"],"type":"string"}},"required":["deletedNodeIds"],"type":"object"},"Right":{"description":"Right information","properties":{"description":{"description":"Right description","type":"string"},"id":{"description":"Unique identifier for the right","format":"int32","type":"integer"},"name":{"description":"Right (unique) name","type":"string"}},"required":["description","id","name"],"type":"object"},"Role":{"description":"Role information","properties":{"description":{"description":"Role description","type":"string"},"id":{"description":"Unique identifier for the role","format":"int32","type":"integer"},"items":{"description":"List of reachable right over role","items":{"$ref":"#/components/schemas/Right"},"type":"array"},"name":{"description":"Role (unique) name","type":"string"}},"required":["description","id","name"],"type":"object"},"RoleGroup":{"description":"Group information","properties":{"id":{"description":"Unique identifier for the group","format":"int64","type":"integer"},"isMember":{"description":"Is group member of the role","type":"boolean"},"name":{"description":"Group name","type":"string"}},"required":["id","isMember","name"],"type":"object"},"RoleGroupList":{"description":"List of groups with assigned role","properties":{"items":{"description":"List of role-group mappings","items":{"$ref":"#/components/schemas/RoleGroup"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"RoleList":{"description":"List of roles","properties":{"items":{"description":"List of roles","items":{"$ref":"#/components/schemas/Role"},"type":"array"}},"required":["items"],"type":"object"},"RoleUser":{"description":"User information","properties":{"displayName":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nDisplay name\n\nuse information from `UserInfo` instead to combine a display name","type":"string"},"id":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nUnique identifier for the user\n\nuse `id` from `UserInfo` instead","format":"int64","type":"integer"},"isMember":{"description":"Is user member of the role","type":"boolean"},"userInfo":{"$ref":"#/components/schemas/UserInfo"}},"required":["displayName","id","isMember","userInfo"],"type":"object"},"RoleUserList":{"description":"List of users with assigned role","properties":{"items":{"description":"List of role-user mappings","items":{"$ref":"#/components/schemas/RoleUser"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"RoomData":{"description":"Room information","properties":{"children":{"deprecated":true,"description":"&#128679; Deprecated since v4.10.0\n\nList of rooms, where this room is a parent (if exist)","items":{"$ref":"#/components/schemas/RoomData"},"type":"array"},"cntDownloadShares":{"description":"Returns the number of Download Shares of this node.","format":"int32","type":"integer"},"cntUploadShares":{"description":"Returns the number of Upload Shares of this node.","format":"int32","type":"integer"},"createdAt":{"description":"Expiration date","format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"hasRecycleBin":{"deprecated":true,"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).","type":"boolean"},"id":{"description":"Room ID","format":"int64","type":"integer"},"isEncrypted":{"description":"Encryption state","type":"boolean"},"isFavorite":{"description":"Node is marked as favorite (for rooms / folders only)","type":"boolean"},"isGranted":{"description":"Is user granted room permissions","type":"boolean"},"name":{"description":"Name","type":"string"},"parentId":{"description":"Parent node ID (room or folder)","format":"int64","type":"integer"},"permissions":{"$ref":"#/components/schemas/NodePermissions"},"quota":{"description":"Quota in byte","format":"int64","type":"integer"},"recycleBinRetentionPeriod":{"description":"Retention period for deleted nodes in days","format":"int32","maximum":9999,"minimum":0,"type":"integer"},"size":{"description":"Room size","format":"int64","type":"integer"},"type":{"description":"Node type","enum":["room"],"type":"string"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"}},"required":["hasRecycleBin","id","isEncrypted","isGranted","name","recycleBinRetentionPeriod"],"type":"object"},"RoomGroup":{"description":"Group information","properties":{"id":{"description":"Unique identifier for the group","format":"int64","type":"integer"},"isGranted":{"description":"Is user granted room permissions","type":"boolean"},"name":{"description":"Group name","type":"string"},"newGroupMemberAcceptance":{"default":"autoallow","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.","enum":["autoallow","pending"],"type":"string"},"permissions":{"$ref":"#/components/schemas/NodePermissions"}},"required":["id","isGranted","name"],"type":"object"},"RoomGroupList":{"description":"List of groups","properties":{"items":{"description":"List of room-group mappings","items":{"$ref":"#/components/schemas/RoomGroup"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"RoomGroupsAddBatchRequest":{"description":"Request model for granting group(s) to the room","properties":{"items":{"description":"List of room-group mappings","items":{"$ref":"#/components/schemas/RoomGroupsAddBatchRequestItem"},"type":"array"}},"required":["items"],"type":"object"},"RoomGroupsAddBatchRequestItem":{"description":"Request item model for granting group to the room","properties":{"id":{"description":"Unique identifier for the group","format":"int64","type":"integer"},"newGroupMemberAcceptance":{"default":"autoallow","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.","enum":["autoallow","pending"],"type":"string"},"permissions":{"$ref":"#/components/schemas/NodePermissions"}},"required":["id","permissions"],"type":"object"},"RoomGroupsDeleteBatchRequest":{"description":"Request model for revoking group(s) from the room","properties":{"ids":{"description":"List of group IDs","items":{"description":"List of group IDs","format":"int64","type":"integer"},"type":"array"}},"required":["ids"],"type":"object"},"RoomGuestUserAddRequest":{"description":"Request model for adding a guest user to the room","properties":{"roomGuestInvitations":{"description":"List of room-user mappings","items":{"$ref":"#/components/schemas/RoomGuestUserInvitation"},"type":"array"}},"required":["roomGuestInvitations"],"type":"object"},"RoomGuestUserInvitation":{"description":"Request item model for inviting a guest user to a room","properties":{"email":{"description":"Email ","type":"string"},"firstName":{"description":"User first name","type":"string"},"lastName":{"description":"User last name","type":"string"}},"required":["email","firstName","lastName"],"type":"object"},"RoomPolicies":{"description":"Room Polices","properties":{"defaultExpirationPeriod":{"description":"Default policy room expiration period in seconds.\n\nAll files in a room will have their expiration date set to this period after their respective upload. \n\n0 means no default expiration policy is set.","format":"int32","type":"integer"}},"required":["defaultExpirationPeriod"],"type":"object"},"RoomPoliciesRequest":{"description":"Room Policies","properties":{"defaultExpirationPeriod":{"description":"Default policy room expiration period in seconds.\n\nAll files in a room will have their expiration date set to this period after their respective upload. \n\n0 means no default expiration policy is set.","format":"int32","type":"integer"}},"type":"object"},"RoomTreeDataList":{"description":"List of rooms","properties":{"items":{"description":"List of room data information","items":{"$ref":"#/components/schemas/RoomData"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"RoomUser":{"description":"User information","properties":{"displayName":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nDisplay name\n\nuse information from `UserInfo` instead to combine a display name","type":"string"},"email":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nEmail \n\nuse `email` from `UserInfo` instead","type":"string"},"id":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nUnique identifier for the user\n\nuse `id` from `UserInfo` instead","format":"int64","type":"integer"},"isGranted":{"description":"Is user granted room permissions","type":"boolean"},"login":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nUser login name","type":"string"},"permissions":{"$ref":"#/components/schemas/NodePermissions"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"},"userInfo":{"$ref":"#/components/schemas/UserInfo"}},"required":["displayName","email","id","isGranted","login","userInfo"],"type":"object"},"RoomUserList":{"description":"List of users","properties":{"items":{"description":"List of room-user mappings","items":{"$ref":"#/components/schemas/RoomUser"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"RoomUsersAddBatchRequest":{"description":"Request model for granting user(s) to the room","properties":{"items":{"description":"List of room-user mappings","items":{"$ref":"#/components/schemas/RoomUsersAddBatchRequestItem"},"type":"array"}},"required":["items"],"type":"object"},"RoomUsersAddBatchRequestItem":{"description":"Request item model for granting user to the room","properties":{"id":{"description":"Unique identifier for the user","format":"int64","type":"integer"},"permissions":{"$ref":"#/components/schemas/NodePermissions"}},"required":["id","permissions"],"type":"object"},"RoomUsersDeleteBatchRequest":{"description":"Request model for revoking user(s) from the room","properties":{"ids":{"description":"List of user IDs","items":{"description":"List of user IDs","format":"int64","type":"integer"},"type":"array"}},"required":["ids"],"type":"object"},"RoomWebhook":{"description":"Webhook information","properties":{"isAssigned":{"description":"Determines whether webhook is assigned to the room.","type":"boolean"},"webhook":{"$ref":"#/components/schemas/Webhook"}},"required":["isAssigned","webhook"],"type":"object"},"RoomWebhookAssignment":{"description":"Request model for handling webhook assignments","properties":{"isAssigned":{"description":"Determines whether webhook is assigned to the room.","type":"boolean"},"webhookId":{"description":"Webhook ID","format":"int64","type":"integer"}},"required":["isAssigned","webhookId"],"type":"object"},"RoomWebhookList":{"description":"List of webhooks","properties":{"items":{"description":"List of webhooks","items":{"$ref":"#/components/schemas/RoomWebhook"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"S3Config":{"description":"S3 configuration","properties":{"accessKeyDefined":{"description":"Determines whether Access Key ID is defined","type":"boolean"},"bucketName":{"deprecated":true,"description":"&#128679; Deprecated since v4.24.0\n\nS3 bucket name\n\nuse `bucketUrl` instead","type":"string"},"bucketUrl":{"description":"S3 object storage bucket URL","type":"string"},"endpointUrl":{"deprecated":true,"description":"&#128679; Deprecated since v4.24.0\n\nS3 object storage endpoint URL\n\nuse `bucketUrl` instead","type":"string"},"region":{"description":"S3 region","type":"string"},"secretKeyDefined":{"description":"Determines whether Access Secret Key is defined","type":"boolean"}},"required":["accessKeyDefined","bucketUrl","secretKeyDefined"],"type":"object"},"S3ConfigCreateRequest":{"description":"Request model for creating a S3 configuration","properties":{"accessKey":{"description":"Access Key ID","type":"string"},"bucketName":{"deprecated":true,"description":"&#128679; Deprecated since v4.24.0\n\nS3 bucket name\n\nuse `bucketUrl` instead","type":"string"},"bucketUrl":{"description":"S3 object storage bucket URL","type":"string"},"endpointUrl":{"deprecated":true,"description":"&#128679; Deprecated since v4.24.0\n\nS3 object storage endpoint URL\n\nuse `bucketUrl` instead","type":"string"},"region":{"description":"S3 region","type":"string"},"secretKey":{"description":"Secret Access Key","type":"string"}},"required":["accessKey","secretKey"],"type":"object"},"S3ConfigUpdateRequest":{"description":"Request model for updating a S3 configuration","properties":{"accessKey":{"description":"Access Key ID","type":"string"},"bucketName":{"deprecated":true,"description":"&#128679; Deprecated since v4.24.0\n\nS3 bucket name\n\nuse `bucketUrl` instead","type":"string"},"bucketUrl":{"description":"S3 object storage bucket URL","type":"string"},"endpointUrl":{"deprecated":true,"description":"&#128679; Deprecated since v4.24.0\n\nS3 object storage endpoint URL\n\nuse `bucketUrl` instead","type":"string"},"region":{"description":"S3 region","type":"string"},"secretKey":{"description":"Secret Access Key","type":"string"}},"type":"object"},"S3FileUploadPart":{"description":"S3 file upload part information","properties":{"partEtag":{"description":"Corresponding part ETag","type":"string"},"partNumber":{"description":"Corresponding part number","format":"int32","type":"integer"}},"required":["partEtag","partNumber"],"type":"object"},"S3FileUploadStatus":{"description":"S3 file upload status information","properties":{"errorDetails":{"$ref":"#/components/schemas/ErrorResponse"},"node":{"$ref":"#/components/schemas/Node"},"status":{"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","type":"string"}},"required":["status"],"type":"object"},"S3ShareUploadStatus":{"description":"S3 file upload status information","properties":{"errorDetails":{"$ref":"#/components/schemas/ErrorResponse"},"fileName":{"description":"File name","type":"string"},"size":{"description":"File size in byte","format":"int64","type":"integer"},"status":{"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","type":"string"}},"required":["fileName","status"],"type":"object"},"S3Tag":{"description":"S3 tag information","properties":{"id":{"description":"S3 tag ID","format":"int64","type":"integer"},"isMandatory":{"default":false,"description":"Determines whether S3 is mandatory or not","type":"boolean"},"key":{"description":"S3 tag key","type":"string"},"value":{"description":"S3 tag value","type":"string"}},"type":"object"},"S3TagCreateRequest":{"description":"Request model for creating a S3 tag","properties":{"isMandatory":{"default":false,"description":"Determines whether S3 is mandatory or not","type":"boolean"},"key":{"description":"S3 tag key","type":"string"},"value":{"description":"S3 tag value","type":"string"}},"required":["key","value"],"type":"object"},"S3TagIds":{"description":"List of S3 tag IDs","properties":{"ids":{"description":"List of S3 tag IDs","items":{"description":"List of S3 tag IDs","format":"int64","type":"integer"},"type":"array"}},"required":["ids"],"type":"object"},"S3TagList":{"description":"List of S3 tags","properties":{"items":{"description":"List of configured S3 tags","items":{"$ref":"#/components/schemas/S3Tag"},"type":"array"}},"type":"object"},"SdsServerTime":{"description":"DRACOON server time","properties":{"time":{"description":"DRACOON server time","format":"date-time","type":"string"}},"type":"object"},"ShareClassificationPolicies":{"description":"Shares classification policies","properties":{"classificationRequiresSharePassword":{"description":"&#128640; Since v4.30.0\n\nMinimum classification that causes download shares to require a password. `0` means no password will be enforced.","enum":[0,1,2,3,4],"format":"int32","type":"integer"}},"type":"object"},"SharesPasswordPolicies":{"description":"Shares password policies","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"description":"Minimum number of characters a password must contain","format":"int32","maximum":1024,"minimum":1,"type":"integer"},"rejectDictionaryWords":{"description":"Determines whether a password must NOT contain word(s) from a dictionary","type":"boolean"},"rejectKeyboardPatterns":{"description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)","type":"boolean"},"rejectUserInfo":{"description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)","type":"boolean"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"}},"type":"object"},"SoftwareVersionData":{"description":"Software version information","properties":{"buildDate":{"description":"Build date","format":"date-time","type":"string"},"isDracoonCloud":{"description":"&#128640; Since v4.24.0\n\nDetermines if the DRACOON Core is deployed in the cloud environment","type":"boolean"},"restApiVersion":{"description":"REST API version","type":"string"},"scmRevisionNumber":{"description":"Revision number","type":"string"},"sdsServerVersion":{"description":"DRACOON server version","type":"string"}},"required":["buildDate","restApiVersion","scmRevisionNumber","sdsServerVersion"],"type":"object"},"SubscribedDownloadShare":{"description":"Subscribed download share information","properties":{"authParentId":{"description":"Auth parent room ID","format":"int64","type":"integer"},"id":{"description":"Share ID","format":"int64","type":"integer"}},"required":["id"],"type":"object"},"SubscribedDownloadShareList":{"description":"List of subscribed download shares","properties":{"items":{"description":"List of subscribed download shares","items":{"$ref":"#/components/schemas/SubscribedDownloadShare"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"SubscribedNode":{"description":"Subscribed node information","properties":{"authParentId":{"description":"Auth parent room ID","format":"int64","type":"integer"},"id":{"description":"Node ID","format":"int64","type":"integer"},"type":{"description":"Node type","enum":["room","folder","file"],"type":"string"}},"required":["id"],"type":"object"},"SubscribedNodeList":{"description":"List of subscribed nodes","properties":{"items":{"description":"List of subscribed nodes","items":{"$ref":"#/components/schemas/SubscribedNode"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"SubscribedUploadShare":{"description":"Subscribed upload share information","properties":{"id":{"description":"Share ID","format":"int64","type":"integer"},"targetNodeId":{"description":"Target room or folder ID","format":"int64","type":"integer"}},"required":["id"],"type":"object"},"SubscribedUploadShareList":{"description":"List of subscribed upload shares","properties":{"items":{"description":"List of subscribed upload shares","items":{"$ref":"#/components/schemas/SubscribedUploadShare"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"SubscriptionPlanRequest":{"properties":{"subscriptionPlanId":{"description":"subscription plan id","format":"int32","type":"integer"}},"required":["subscriptionPlanId"],"type":"object"},"SubscriptionPlanResponse":{"properties":{"subscriptionPlanId":{"description":"subscription plan id","format":"int32","type":"integer"}},"required":["subscriptionPlanId"],"type":"object"},"SyslogConfig":{"description":"Syslog settings","properties":{"enabled":{"description":"Is syslog enabled?","type":"boolean"},"host":{"description":"Syslog server (IP or FQDN)","type":"string"},"logIpEnabled":{"description":"Determines whether user’s IP address is logged.","type":"boolean"},"port":{"description":"Syslog server port","format":"int32","type":"integer"},"protocol":{"description":"Protocol to connect to syslog server","enum":["TCP","UDP"],"type":"string"}},"type":"object"},"SystemDefaults":{"description":"System defaults","properties":{"downloadShareDefaultExpirationPeriod":{"description":"Default expiration period for Download Shares in days.","format":"int32","type":"integer"},"fileDefaultExpirationPeriod":{"description":"Default expiration period for all uploaded files in days.","format":"int32","type":"integer"},"hideLoginInputFields":{"deprecated":true,"description":"&#128679; Deprecated since v4.42.0\n\nDefines if login fields should be hidden","type":"boolean"},"languageDefault":{"description":"Define which language should be default.","type":"string"},"nonmemberViewerDefault":{"description":"&#128640; Since v4.12.0\n\nDefines if new users get the role Non Member Viewer by default","type":"boolean"},"uploadShareDefaultExpirationPeriod":{"description":"Default expiration period for Upload Shares in days.","format":"int32","type":"integer"}},"type":"object"},"SystemInfo":{"description":"System information (default language and authentication methods)","properties":{"authMethods":{"deprecated":true,"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","items":{"$ref":"#/components/schemas/AuthMethod"},"type":"array"},"hideLoginInputFields":{"deprecated":true,"description":"&#128679; Deprecated since v4.42.0\n\nDefines if login fields should be hidden","type":"boolean"},"languageDefault":{"description":"System default language\n\ncf. [RFC 5646](https://tools.ietf.org/html/rfc5646)","type":"string"},"s3EnforceDirectUpload":{"description":"&#128640; Since v4.15.0\n\nDetermines whether S3 direct upload is enforced or not","type":"boolean"},"s3Hosts":{"description":"&#128640; Since v4.14.0\n\nList of S3 Hosts for CSP header","items":{"description":"List of S3 Hosts for CSP header","type":"string"},"type":"array"},"useS3Storage":{"description":"&#128640; Since v4.21.0\n\nDefines if S3 is used as storage backend","type":"boolean"}},"required":["authMethods","hideLoginInputFields","languageDefault","s3EnforceDirectUpload","s3Hosts","useS3Storage"],"type":"object"},"TestActiveDirectoryConfigRequest":{"description":"Request model for testing connection for Active Directory configuration","properties":{"ldapUsersDomain":{"description":"Search scope of Active Directory; only users below this node can log on.","type":"string"},"serverAdminName":{"description":"Distinguished Name (DN) of Active Directory administrative account","type":"string"},"serverAdminPassword":{"description":"Password of Active Directory administrative account","type":"string"},"serverIp":{"description":"IPv4 or IPv6 address or host name","type":"string"},"serverPort":{"description":"Port","format":"int32","type":"integer"},"sslFingerPrint":{"description":"SSL finger print of Active Directory server.\n\nMandatory for LDAPS connections.\n\nFormat: `Algorithm/Fingerprint`","type":"string"},"useLdaps":{"default":false,"description":"Determines whether LDAPS should be used instead of plain LDAP.","type":"boolean"}},"required":["ldapUsersDomain","serverAdminName","serverAdminPassword","serverIp","serverPort"],"type":"object"},"TestActiveDirectoryConfigResponse":{"description":"Response model for testing connection for Active Directory configuration","properties":{"ldapUsersDomain":{"description":"Search scope of Active Directory; only users below this node can log on.","type":"string"},"serverAdminName":{"description":"Distinguished Name (DN) of Active Directory administrative account","type":"string"},"serverAdminPassword":{"description":"Password of Active Directory administrative account","type":"string"},"serverIp":{"description":"IPv4 or IPv6 address or host name","type":"string"},"serverPort":{"description":"Port","format":"int32","type":"integer"},"sslFingerPrint":{"description":"SSL finger print of Active Directory server.\n\nMandatory for LDAPS connections.\n\nFormat: `Algorithm/Fingerprint`","type":"string"},"useLdaps":{"description":"Determines whether LDAPS should be used instead of plain LDAP.","type":"boolean"}},"required":["ldapUsersDomain","serverAdminName","serverAdminPassword","serverIp","serverPort","useLdaps"],"type":"object"},"ThirdPartyDependenciesData":{"description":"Third-party dependency information","properties":{"artifactId":{"description":"Third party dependencies artifactId","type":"string"},"description":{"description":"Third party dependencies description","type":"string"},"groupId":{"description":"Third party dependencies groupId","type":"string"},"id":{"description":"Third party dependencies id","type":"string"},"licenses":{"description":"Third party dependencies licenses type","items":{"description":"Third party dependencies licenses type","type":"string"},"type":"array"},"name":{"description":"Third party dependencies name","type":"string"},"type":{"description":"Third party dependencies type","type":"string"},"url":{"description":"Third party dependencies url","type":"string"},"version":{"description":"Third party dependencies version","type":"string"}},"required":["artifactId","description","groupId","id","licenses","name","type","url","version"],"type":"object"},"TotpSetupResponse":{"description":"Contains QR code URL and OTP URI for TOTP setup","properties":{"id":{"description":"ID","format":"int64","type":"integer"},"otpUri":{"description":"URI containing secret key, issuer and account information","type":"string"},"qrCode":{"description":"TOTP data URL (QR Code)","type":"string"},"secret":{"description":"Secret key used for setup of TOTP authentication","type":"string"}},"required":["id","otpUri","qrCode","secret"],"type":"object"},"UpdateActiveDirectoryConfigRequest":{"description":"Request model for updating an Active Directory configuration","properties":{"adExportGroup":{"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.","type":"string"},"alias":{"description":"Unique name for an Active Directory configuration","type":"string"},"createHomeFolder":{"default":false,"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.","type":"boolean"},"homeFolderParent":{"description":"DEPRECATED, will be ignored\n\nID of the room in which the individual rooms for users will be created.","format":"int64","type":"integer"},"ldapUsersDomain":{"description":"Search scope of Active Directory; only users below this node can log on.","type":"string"},"sdsImportGroup":{"description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64","type":"integer"},"serverAdminName":{"description":"Distinguished Name (DN) of Active Directory administrative account","type":"string"},"serverAdminPassword":{"description":"Password of Active Directory administrative account","type":"string"},"serverIp":{"description":"IPv4 or IPv6 address or host name","type":"string"},"serverPort":{"description":"Port","format":"int32","type":"integer"},"sslFingerPrint":{"description":"SSL finger print of Active Directory server.\n\nMandatory for LDAPS connections.\n\nFormat: `Algorithm/Fingerprint`","type":"string"},"useLdaps":{"description":"Determines whether LDAPS should be used instead of plain LDAP.","type":"boolean"},"userFilter":{"description":"Name of Active Directory attribute that is used as login name.","type":"string"},"userImport":{"description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account.","type":"boolean"}},"type":"object"},"UpdateAuthTokenRestrictions":{"description":"Request model for updating auth token settings","properties":{"accessTokenValidity":{"description":"&#128640; Since v4.13.0\n\nRestricted OAuth access token validity (in seconds)","format":"int32","type":"integer"},"overwriteEnabled":{"description":"&#128640; Since v4.13.0\n\nDefines if OAuth token restrictions are enabled","type":"boolean"},"refreshTokenValidity":{"description":"&#128640; Since v4.13.0\n\nRestricted OAuth refresh token validity (in seconds)","format":"int32","type":"integer"}},"required":["overwriteEnabled"],"type":"object"},"UpdateClassificationPoliciesConfig":{"description":"Set of classification policies","properties":{"shareClassificationPolicies":{"$ref":"#/components/schemas/ShareClassificationPolicies"}},"type":"object"},"UpdateCustomerRequest":{"description":"Request model for updating a customer","properties":{"companyName":{"description":"Company name","type":"string"},"customerContractType":{"description":"Customer type","enum":["demo","free","pay"],"type":"string"},"isLocked":{"default":false,"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.","type":"boolean"},"lockStatus":{"default":false,"deprecated":true,"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.","type":"boolean"},"providerCustomerId":{"description":"Provider customer ID","type":"string"},"quotaMax":{"description":"Maximal disc space which can be allocated by customer in bytes. -1 for unlimited","format":"int64","type":"integer"},"userMax":{"description":"Maximal number of users","format":"int32","type":"integer"},"webhooksMax":{"description":"&#128640; Since v4.19.0\n\nMaximal number of webhooks","format":"int64","type":"integer"}},"required":["customerContractType"],"type":"object"},"UpdateCustomerResponse":{"description":"Customer information","properties":{"activationCode":{"deprecated":true,"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","type":"string"},"companyName":{"description":"Company name","type":"string"},"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"customerAttributes":{"$ref":"#/components/schemas/CustomerAttributes"},"customerContractType":{"description":"Customer type","enum":["demo","free","pay"],"type":"string"},"customerUuid":{"description":"&#128640; Since v4.21.0\n\nCustomer UUID","type":"string"},"id":{"description":"Unique identifier for the customer","format":"int64","type":"integer"},"isLocked":{"default":false,"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.","type":"boolean"},"lockStatus":{"default":false,"deprecated":true,"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.","type":"boolean"},"providerCustomerId":{"description":"Provider customer ID","type":"string"},"quotaMax":{"description":"Maximal disc space which can be allocated by customer in bytes. -1 for unlimited","format":"int64","type":"integer"},"trialDays":{"description":"Number of days left for trial period (relevant only for type `demo`)\n\n(not used)","format":"int32","type":"integer"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"userMax":{"description":"Maximal number of users","format":"int32","type":"integer"},"webhooksMax":{"description":"&#128640; Since v4.19.0\n\nMaximal number of webhooks","format":"int64","type":"integer"}},"required":["companyName","customerContractType","customerUuid","id","lockStatus","quotaMax","userMax"],"type":"object"},"UpdateDownloadShareRequest":{"description":"Request model for updating a Download Share","properties":{"defaultCountry":{"description":"Country shorthand symbol (cf. ISO 3166-2)","type":"string"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"internalNotes":{"description":"&#128640; Since v4.11.0\n\nInternal notes","maximum":255,"type":"string"},"maxDownloads":{"description":"Max allowed downloads","format":"int32","type":"integer"},"name":{"description":"Alias name","type":"string"},"notes":{"description":"User notes","maximum":255,"type":"string"},"notifyCreator":{"deprecated":true,"description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every download.","type":"boolean"},"password":{"description":"Access password, not allowed for encrypted shares","type":"string"},"receiverLanguage":{"description":"Language tag for messages to receiver","type":"string"},"resetMaxDownloads":{"description":"Set 'true' to reset 'maxDownloads' for Download Share.","type":"boolean"},"resetPassword":{"description":"Set 'true' to reset 'password' for Download Share.","type":"boolean"},"showCreatorName":{"description":"Show creator first and last name.","type":"boolean"},"showCreatorUsername":{"description":"Show creator email address.","type":"boolean"},"textMessageRecipients":{"description":"List of recipient FQTNs\n\nE.123 / E.164 Format","items":{"description":"List of recipient FQTNs\n\nE.123 / E.164 Format","type":"string"},"type":"array"}},"type":"object"},"UpdateDownloadSharesBulkRequest":{"description":"Request model for updating a list of Download Shares","properties":{"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"maxDownloads":{"description":"Max allowed downloads","format":"int32","type":"integer"},"objectIds":{"description":"List of ids","items":{"description":"List of ids","format":"int64","type":"integer"},"type":"array"},"resetMaxDownloads":{"description":"Set 'true' to reset 'maxDownloads' for Download Share.","type":"boolean"},"showCreatorName":{"description":"Show creator first and last name.","type":"boolean"},"showCreatorUsername":{"description":"Show creator email address.","type":"boolean"}},"required":["objectIds"],"type":"object"},"UpdateEncryptionPasswordPolicies":{"description":"Request model for updating encryption password policies","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"description":"Minimum number of characters a password must contain","format":"int32","maximum":1024,"minimum":1,"type":"integer"},"rejectKeyboardPatterns":{"description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)","type":"boolean"},"rejectUserInfo":{"description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)","type":"boolean"}},"type":"object"},"UpdateEventlogConfig":{"description":"Request model for updating eventlog settings","properties":{"enabled":{"description":"Is eventlog enabled?","type":"boolean"},"logIpEnabled":{"description":"Determines whether user’s IP address is logged.","type":"boolean"},"retentionPeriod":{"description":"Retention period (in days) of event log entries.\n\nAfter that period, all entries are deleted.\n\nRecommended value: 7","format":"int32","type":"integer"}},"type":"object"},"UpdateFavoritesBulkRequest":{"description":"Request model for updating favorites","properties":{"isFavorite":{"description":"Sets the favorite attribute to true or false on each file in an array of nodes.","type":"boolean"},"objectIds":{"description":"List of ids","items":{"description":"List of ids","format":"int64","type":"integer"},"type":"array"}},"required":["isFavorite","objectIds"],"type":"object"},"UpdateFileRequest":{"description":"Request model for updating file's metadata","properties":{"classification":{"description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential","format":"int32","type":"integer"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"name":{"description":"File name","type":"string"},"notes":{"description":"User notes\n\nUse empty string to remove.","type":"string"},"timestampCreation":{"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","type":"string"},"timestampModification":{"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","type":"string"}},"type":"object"},"UpdateFilesBulkRequest":{"description":"Request model for updating files","properties":{"classification":{"description":"Classification ID:\n\n* `1` - public\n\n* `2` - internal\n\n* `3` - confidential\n\n* `4` - strictly confidential","format":"int32","type":"integer"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"objectIds":{"description":"List of ids","items":{"description":"List of ids","format":"int64","type":"integer"},"type":"array"}},"required":["objectIds"],"type":"object"},"UpdateFolderRequest":{"description":"Request model for updating folder's metadata","properties":{"classification":{"description":"&#128640; Since v4.30.0\n\nClassification 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.","enum":[1,2,3,4],"format":"int32","type":"integer"},"name":{"description":"Folder name","type":"string"},"notes":{"description":"User notes\n\nUse empty string to remove.","type":"string"},"timestampCreation":{"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","type":"string"},"timestampModification":{"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","type":"string"}},"type":"object"},"UpdateGeneralSettings":{"description":"Request model for updating general settings","properties":{"authTokenRestrictions":{"$ref":"#/components/schemas/UpdateAuthTokenRestrictions"},"cryptoEnabled":{"description":"Activation status of client-side encryption.\n\nCan only be enabled once; disabling is not possible.","type":"boolean"},"emailNotificationButtonEnabled":{"description":"Enable email notification button","type":"boolean"},"eulaEnabled":{"description":"Each user has to confirm the EULA at first login.","type":"boolean"},"hideLoginInputFields":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nDefines if login fields should be hidden","type":"boolean"},"mediaServerEnabled":{"deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nDetermines if the media server is enabled","type":"boolean"},"s3TagsEnabled":{"description":"&#128640; Since v4.9.0\n\nDefines if S3 tags are enabled","type":"boolean"},"sharePasswordSmsEnabled":{"description":"Allow sending of share passwords via SMS","type":"boolean"},"weakPasswordEnabled":{"deprecated":true,"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.","type":"boolean"}},"type":"object"},"UpdateGroupRequest":{"description":"Request model for updating group's metadata","properties":{"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"name":{"description":"Group name","type":"string"}},"type":"object"},"UpdateGuestUsersPoliciesConfig":{"description":"Set of guest user policies","properties":{"isInviteUsersEnabled":{"description":"Determines whether the invite of users to rooms is enabled.","type":"boolean"}},"required":["isInviteUsersEnabled"],"type":"object"},"UpdateLoginPasswordPolicies":{"description":"Request model for updating login password policies","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"enforceLoginPasswordChange":{"default":false,"deprecated":true,"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","type":"boolean"},"minLength":{"description":"Minimum number of characters a password must contain","format":"int32","maximum":1024,"minimum":1,"type":"integer"},"numberOfArchivedPasswords":{"description":"Number of passwords to archive\n\n(must be between `0` and `10`; `0` means that password history is disabled)","format":"int32","maximum":10,"minimum":1,"type":"integer"},"passwordExpiration":{"$ref":"#/components/schemas/PasswordExpiration"},"rejectDictionaryWords":{"description":"Determines whether a password must NOT contain word(s) from a dictionary","type":"boolean"},"rejectKeyboardPatterns":{"description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)","type":"boolean"},"rejectUserInfo":{"description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)","type":"boolean"},"userLockout":{"$ref":"#/components/schemas/UserLockout"}},"type":"object"},"UpdateMfaPoliciesConfig":{"description":"Set of multi-factor authentication policies","properties":{"isMfaEnforced":{"description":"Determines whether multi-factor authentication is enforced","type":"boolean"}},"required":["isMfaEnforced"],"type":"object"},"UpdateOAuthClientRequest":{"description":"Request model for updating an OAuth client","properties":{"accessTokenValidity":{"description":"Validity of the access token in seconds.","format":"int32","type":"integer"},"approvalValidity":{"description":"&#128640; Since v4.22.0\n\nValidity of the approval interval in seconds.","format":"int32","type":"integer"},"clientName":{"description":"Name, which is shown at the client configuration and authorization.","type":"string"},"clientSecret":{"description":"Secret, which client uses at authentication.","type":"string"},"clientType":{"description":"Determines whether client is a confidential or public client.","enum":["confidential","public"],"type":"string"},"grantTypes":{"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"],"items":{"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"],"type":"string"},"type":"array"},"isEnabled":{"description":"Determines whether client is enabled.","type":"boolean"},"redirectUris":{"description":"URIs, to which a user is redirected after authorization.","items":{"description":"URIs, to which a user is redirected after authorization.","type":"string"},"type":"array"},"refreshTokenValidity":{"description":"Validity of the refresh token in seconds.","format":"int32","type":"integer"}},"required":["grantTypes"],"type":"object"},"UpdateOpenIdIdpConfigRequest":{"description":"Request model for updating an OpenID Connect IDP configuration","properties":{"authorizationEndPointUrl":{"description":"URL of the authorization endpoint","type":"string"},"clientId":{"description":"ID of the OpenID client","type":"string"},"clientSecret":{"description":"Secret, which client uses at authentication.","type":"string"},"fallbackMappingClaim":{"description":"Name of the claim which is used for the user mapping fallback.","type":"string"},"flow":{"description":"&#128640; Since v4.11.0\n\nFlow, which is used at authentication","enum":["authorization_code","hybrid"],"type":"string"},"issuer":{"description":"Issuer identifier of the IDP\n\nThe value is a case sensitive URL.","type":"string"},"jwksEndPointUrl":{"description":"URL of the JWKS endpoint","type":"string"},"mappingClaim":{"description":"Name of the claim which is used for the user mapping.","type":"string"},"name":{"description":"Name of the IDP","type":"string"},"pkceChallengeMethod":{"description":"PKCE code challenge method.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)","type":"string"},"pkceEnabled":{"default":false,"description":"Determines whether PKCE is enabled.\n\ncf. [RFC 7636](https://tools.ietf.org/html/rfc7636)","type":"boolean"},"redirectUris":{"description":"URIs, to which a user is redirected after authorization.","items":{"description":"URIs, to which a user is redirected after authorization.","type":"string"},"type":"array"},"resetFallbackMappingClaim":{"description":"Set `true` to reset `fallbackMappingClaim`.","type":"boolean"},"scopes":{"description":"List of requested scopes\n\nUsually `openid` and the names of the requested claims.","items":{"description":"List of requested scopes\n\nUsually `openid` and the names of the requested claims.","type":"string"},"type":"array"},"tokenEndPointUrl":{"description":"URL of the token endpoint","type":"string"},"userImportEnabled":{"default":false,"description":"Determines if a DRACOON account is automatically created for a new user\n\nwho successfully logs on with his / her AD / IDP account.","type":"boolean"},"userImportGroup":{"description":"User group that is assigned to users who are created by automatic import.\n\nReset with `0`","format":"int64","type":"integer"},"userInfoEndPointUrl":{"description":"URL of the user info endpoint","type":"string"},"userInfoSource":{"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"],"type":"string"},"userManagementUrl":{"description":"URL of the user management UI.\n\nUse empty string to remove.","type":"string"},"userUpdateEnabled":{"default":false,"description":"Determines if the DRACOON account is updated with data from AD / IDP.\n\nFor OpenID Connect, the scopes `email` and `profile` are needed.","type":"boolean"}},"type":"object"},"UpdatePasswordPoliciesConfig":{"description":"Request model for updating a set of password policies","properties":{"encryptionPasswordPolicies":{"$ref":"#/components/schemas/UpdateEncryptionPasswordPolicies"},"loginPasswordPolicies":{"$ref":"#/components/schemas/UpdateLoginPasswordPolicies"},"sharesPasswordPolicies":{"$ref":"#/components/schemas/UpdateSharesPasswordPolicies"}},"type":"object"},"UpdateRoomRequest":{"description":"Request model for updating room's metadata","properties":{"name":{"description":"Name","type":"string"},"notes":{"description":"User notes\n\nUse empty string to remove.","type":"string"},"quota":{"description":"Quota in byte","format":"int64","type":"integer"},"timestampCreation":{"description":"&#128640; Since v4.22.0\n\nTime the node was created on external file system","format":"date-time","type":"string"},"timestampModification":{"description":"&#128640; Since v4.22.0\n\nTime the content of a node was last modified on external file system","format":"date-time","type":"string"}},"type":"object"},"UpdateRoomWebhookRequest":{"description":"Request model for handling webhook assignments","properties":{"items":{"description":"Assign a webhook to a room to use it for node actions within the room ","items":{"$ref":"#/components/schemas/RoomWebhookAssignment"},"type":"array"}},"required":["items"],"type":"object"},"UpdateSharesPasswordPolicies":{"description":"Request model for updating shares password policies","properties":{"characterRules":{"$ref":"#/components/schemas/CharacterRules"},"minLength":{"description":"Minimum number of characters a password must contain","format":"int32","maximum":1024,"minimum":1,"type":"integer"},"rejectDictionaryWords":{"description":"Determines whether a password must NOT contain word(s) from a dictionary","type":"boolean"},"rejectKeyboardPatterns":{"description":"Determines whether a password must NOT contain keyboard patterns (e.g. `qwertz`, `asdf`)\n\n(min. 4 character pattern)","type":"boolean"},"rejectUserInfo":{"description":"Determines whether a password must NOT contain user info (first name, last name, email, user name)","type":"boolean"}},"type":"object"},"UpdateSubscriptionsBulkRequest":{"description":"Request model for updating subscriptions","properties":{"isSubscribed":{"description":"Creates or deletes a subscription on each item in an array of objects.","type":"boolean"},"objectIds":{"description":"List of ids","items":{"description":"List of ids","format":"int64","type":"integer"},"type":"array"}},"required":["isSubscribed","objectIds"],"type":"object"},"UpdateSyslogConfig":{"description":"Request model for updating syslog settings","properties":{"enabled":{"description":"Is syslog enabled?","type":"boolean"},"host":{"description":"Syslog server (IP or FQDN)","type":"string"},"logIpEnabled":{"description":"Determines whether user’s IP address is logged.","type":"boolean"},"port":{"description":"Syslog server port","format":"int32","type":"integer"},"protocol":{"description":"Protocol to connect to syslog server","enum":["TCP","UDP"],"type":"string"}},"type":"object"},"UpdateSystemDefaults":{"description":"Request model for updating system defaults","properties":{"downloadShareDefaultExpirationPeriod":{"description":"Default expiration period for Download Shares in days.","format":"int32","type":"integer"},"fileDefaultExpirationPeriod":{"description":"Default expiration period for all uploaded files in days.","format":"int32","type":"integer"},"languageDefault":{"description":"Define which language should be default.","type":"string"},"nonmemberViewerDefault":{"description":"&#128640; Since v4.12.0\n\nDefines if new users get the role Non Member Viewer by default","type":"boolean"},"uploadShareDefaultExpirationPeriod":{"description":"Default expiration period for Upload Shares in days.","format":"int32","type":"integer"}},"type":"object"},"UpdateUploadShareRequest":{"description":"Request model for updating an Upload Share","properties":{"defaultCountry":{"description":"Country shorthand symbol (cf. ISO 3166-2)","type":"string"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"filesExpiryPeriod":{"description":"Number of days after which uploaded files expire","format":"int32","type":"integer"},"internalNotes":{"description":"&#128640; Since v4.11.0\n\nInternal notes","maximum":255,"type":"string"},"maxSize":{"description":"Maximal total size of uploaded files (in bytes)","format":"int64","type":"integer"},"maxSlots":{"description":"Maximal amount of files to upload","format":"int32","type":"integer"},"name":{"description":"Alias name","type":"string"},"notes":{"description":"User notes","maximum":255,"type":"string"},"notifyCreator":{"deprecated":true,"description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every upload.","type":"boolean"},"password":{"description":"Password","type":"string"},"receiverLanguage":{"description":"Language tag for messages to receiver","type":"string"},"resetFilesExpiryPeriod":{"description":"Set 'true' to reset 'filesExpiryPeriod' for Upload Share","type":"boolean"},"resetMaxSize":{"description":"Set 'true' to reset 'maxSize' for Upload Share","type":"boolean"},"resetMaxSlots":{"description":"Set 'true' to reset 'maxSlots' for Upload Share","type":"boolean"},"resetPassword":{"description":"Set 'true' to reset 'password' for Upload Share.","type":"boolean"},"showCreatorName":{"description":"Show creator first and last name.","type":"boolean"},"showCreatorUsername":{"description":"Show creator email address.","type":"boolean"},"showUploadedFiles":{"description":"Allow display of already uploaded files","type":"boolean"},"textMessageRecipients":{"description":"List of recipient FQTNs\n\nE.123 / E.164 Format","items":{"description":"List of recipient FQTNs\n\nE.123 / E.164 Format","type":"string"},"type":"array"}},"type":"object"},"UpdateUploadSharesBulkRequest":{"description":"Request model for updating a list of Download Shares","properties":{"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"filesExpiryPeriod":{"description":"Number of days after which uploaded files expire","format":"int32","type":"integer"},"maxSize":{"description":"Maximal total size of uploaded files (in bytes)","format":"int64","type":"integer"},"maxSlots":{"description":"Maximal amount of files to upload","format":"int32","type":"integer"},"objectIds":{"description":"List of ids","items":{"description":"List of ids","format":"int64","type":"integer"},"type":"array"},"resetFilesExpiryPeriod":{"description":"Set 'true' to reset 'filesExpiryPeriod' for Upload Share","type":"boolean"},"resetMaxSize":{"description":"Set 'true' to reset 'maxSize' for Upload Share","type":"boolean"},"resetMaxSlots":{"description":"Set 'true' to reset 'maxSlots' for Upload Share","type":"boolean"},"showCreatorName":{"description":"Show creator first and last name.","type":"boolean"},"showCreatorUsername":{"description":"Show creator email address.","type":"boolean"},"showUploadedFiles":{"description":"Allow display of already uploaded files","type":"boolean"}},"required":["objectIds"],"type":"object"},"UpdateUserAccountRequest":{"description":"Request model for updating user account information","properties":{"acceptEULA":{"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.","type":"boolean"},"email":{"description":"Email ","type":"string"},"firstName":{"description":"User first name","type":"string"},"gender":{"default":"n","deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nGender\n\nDo NOT use `gender`! It will be ignored.","type":"string"},"language":{"description":"&#128640; Since v4.20.0\n\nIETF language tag","type":"string"},"lastName":{"description":"User last name","type":"string"},"login":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nUser login name","type":"string"},"phone":{"description":"Phone number","type":"string"},"title":{"deprecated":true,"description":"&#128679; Deprecated since v4.18.0\n\nJob title","type":"string"},"userName":{"description":"&#128640; Since v4.13.0\n\nUsername","type":"string"}},"type":"object"},"UpdateUserRequest":{"description":"Request model for updating user's metadata","properties":{"authData":{"$ref":"#/components/schemas/UserAuthDataUpdateRequest"},"authMethods":{"deprecated":true,"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","items":{"$ref":"#/components/schemas/UserAuthMethod"},"type":"array"},"email":{"description":"Email ","type":"string"},"expiration":{"$ref":"#/components/schemas/ObjectExpiration"},"firstName":{"description":"User first name","type":"string"},"gender":{"default":"n","deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nGender\n\nDo NOT use `gender`! It will be ignored.","type":"string"},"isLocked":{"default":false,"description":"User is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nUser is locked and can not login anymore.","type":"boolean"},"lastName":{"description":"User last name","type":"string"},"lockStatus":{"deprecated":true,"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","type":"integer"},"mfaConfig":{"$ref":"#/components/schemas/MfaConfig"},"phone":{"description":"Phone number","type":"string"},"receiverLanguage":{"description":"IETF language tag","type":"string"},"title":{"deprecated":true,"description":"&#128679; Deprecated since v4.18.0\n\nJob title","type":"string"},"userName":{"description":"&#128640; Since v4.13.0\n\nUsername","type":"string"}},"type":"object"},"UpdateWebhookRequest":{"description":"Request model for updating a webhook","properties":{"eventTypeNames":{"description":"List of names of event types","items":{"description":"List of names of event types","type":"string"},"type":"array"},"isEnabled":{"description":"Is enabled","type":"boolean"},"name":{"description":"Name","type":"string"},"secret":{"description":"Secret; used for event message signatures","type":"string"},"triggerExampleEvent":{"description":"If set to true, an example event is being created","type":"boolean"},"url":{"description":"URL (must begin with the `HTTPS` scheme)","type":"string"}},"type":"object"},"UploadShare":{"description":"Upload Share information","properties":{"accessKey":{"description":"Share access key to generate secure link","type":"string"},"cntFiles":{"description":"Total amount of existing files uploaded with this share.","format":"int32","type":"integer"},"cntUploads":{"description":"Total amount of uploads conducted with this share.","format":"int32","type":"integer"},"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"dataUrl":{"description":"Upload Share URL","type":"string"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"},"filesExpiryPeriod":{"description":"Number of days after which uploaded files expire","format":"int32","type":"integer"},"id":{"description":"Share ID","format":"int64","type":"integer"},"internalNotes":{"description":"&#128640; Since v4.11.0\n\nInternal notes","maximum":255,"type":"string"},"isEncrypted":{"description":"Encryption state","type":"boolean"},"isProtected":{"description":"Is share protected by password","type":"boolean"},"maxSize":{"description":"Maximal total size of uploaded files (in bytes)","format":"int64","type":"integer"},"maxSlots":{"description":"Maximal amount of files to upload","format":"int32","type":"integer"},"name":{"description":"Alias name","type":"string"},"notes":{"description":"User notes","maximum":255,"type":"string"},"notifyCreator":{"deprecated":true,"description":"&#128679; Deprecated since v4.20.0\n\nNotify creator on every upload.","type":"boolean"},"recipients":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient email addresses","type":"string"},"showCreatorName":{"description":"&#128640; Since v4.11.0\n\nShow creator first and last name.","type":"boolean"},"showCreatorUsername":{"description":"&#128640; Since v4.11.0\n\nShow creator email address.","type":"boolean"},"showUploadedFiles":{"description":"Allow display of already uploaded files","type":"boolean"},"smsRecipients":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nCSV string of recipient MSISDNs","type":"string"},"targetId":{"description":"Target room or folder ID","format":"int64","type":"integer"},"targetPath":{"description":"Path to shared upload node","type":"string"},"targetType":{"description":"Node type","type":"string"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"}},"required":["accessKey","createdAt","createdBy","id","isProtected","name","notifyCreator","targetId"],"type":"object"},"UploadShareLinkEmail":{"description":"Request model for sending an email of an Upload Share link","properties":{"body":{"description":"Notification email content","type":"string"},"receiverLanguage":{"description":"Language tag for messages to receiver","type":"string"},"recipients":{"description":"List of recipient email addresses","items":{"description":"List of recipient email addresses","type":"string"},"type":"array"}},"required":["body","recipients"],"type":"object"},"UploadShareList":{"description":"List of Upload Shares","properties":{"items":{"description":"List of Upload Shares","items":{"$ref":"#/components/schemas/UploadShare"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"UserAccount":{"description":"User information","properties":{"authData":{"$ref":"#/components/schemas/UserAuthData"},"authMethods":{"deprecated":true,"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","items":{"$ref":"#/components/schemas/UserAuthMethod"},"type":"array"},"email":{"description":"Email ","type":"string"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"},"firstName":{"description":"User first name","type":"string"},"gender":{"default":"n","deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nGender","type":"string"},"hasManageableRooms":{"description":"User has manageable rooms","type":"boolean"},"homeRoomId":{"description":"Homeroom ID","format":"int64","type":"integer"},"id":{"description":"Unique identifier for the user","format":"int64","type":"integer"},"isEncryptionEnabled":{"description":"User has generated private key.\n\nPossible if client-side encryption is active for this customer","type":"boolean"},"isLocked":{"default":false,"description":"User is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nUser is locked and can not login anymore.","type":"boolean"},"language":{"description":"&#128640; Since v4.20.0\n\nIETF language tag","type":"string"},"lastLoginFailAt":{"description":"Last failed logon date","format":"date-time","type":"string"},"lastLoginFailIp":{"deprecated":true,"description":"&#128679; Deprecated since v4.6.0\n\nLast failed logon IP address","type":"string"},"lastLoginSuccessAt":{"description":"Last successful logon date","format":"date-time","type":"string"},"lastLoginSuccessIp":{"deprecated":true,"description":"&#128679; Deprecated since v4.6.0\n\nLast successful logon IP address","type":"string"},"lastName":{"description":"User last name","type":"string"},"lockStatus":{"deprecated":true,"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","type":"integer"},"login":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nUser login name","type":"string"},"mustSetEmail":{"default":false,"description":"&#128640; Since v4.13.0\n\nIf `true`, the user must set the `email` at the first login.","type":"boolean"},"needsToAcceptEULA":{"description":"User has accepted EULA.\n\nPresent, if EULA is system global active.\n\ncf. `GET system/config/settings/general` - `eulaEnabled`","type":"boolean"},"needsToChangePassword":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nDetermines whether user has to change his / her password","type":"boolean"},"needsToChangeUserName":{"default":false,"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nIf `true`, the user must change the `userName` at the first login.","type":"boolean"},"phone":{"description":"Phone number","type":"string"},"title":{"deprecated":true,"description":"&#128679; Deprecated since v4.18.0\n\nJob title","type":"string"},"userAttributes":{"$ref":"#/components/schemas/UserAttributes"},"userGroups":{"description":"All groups the user is member of","items":{"$ref":"#/components/schemas/UserGroup"},"type":"array"},"userName":{"description":"&#128640; Since v4.13.0\n\nUsername","type":"string"},"userRoles":{"$ref":"#/components/schemas/RoleList"}},"required":["authData","firstName","hasManageableRooms","id","isLocked","language","lastName","lockStatus","needsToChangePassword","userName","userRoles"],"type":"object"},"UserAttributes":{"deprecated":true,"description":"User custom attributes (list of key-value pairs)","properties":{"items":{"description":"List of key-value pairs","items":{"$ref":"#/components/schemas/KeyValueEntry"},"type":"array"}},"required":["items"],"type":"object"},"UserAuthData":{"description":"User Authentication Data","properties":{"adConfigId":{"description":"ID of the user's Active Directory.","format":"int32","type":"integer"},"login":{"description":"User login name","type":"string"},"method":{"description":"Authentication method\n\n\n\nAuthentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`","type":"string"},"mustChangePassword":{"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","type":"boolean"},"oidConfigId":{"description":"ID of the user's OIDC provider.","format":"int32","type":"integer"},"password":{"description":"Password (only relevant for `basic` authentication type)\n\n*NOT* your Active Directory, OpenID or RADIUS password!","type":"string"}},"required":["method"],"type":"object"},"UserAuthDataUpdateRequest":{"description":"User Authentication Data Update Request","properties":{"adConfigId":{"description":"ID of the user's Active Directory.","format":"int32","type":"integer"},"login":{"description":"User login name","type":"string"},"method":{"description":"Authentication method\n\n\n\nAuthentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`","type":"string"},"oidConfigId":{"description":"ID of the user's OIDC provider.","format":"int32","type":"integer"}},"type":"object"},"UserAuthMethod":{"deprecated":true,"description":"Authentication method","properties":{"authId":{"description":"Authentication method\n\n\n\nAuthentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`","type":"string"},"isEnabled":{"description":"Is enabled","type":"boolean"},"options":{"description":"Authentication method options","items":{"$ref":"#/components/schemas/KeyValueEntry"},"type":"array"}},"required":["authId","isEnabled"],"type":"object"},"UserData":{"description":"User information","properties":{"authData":{"$ref":"#/components/schemas/UserAuthData"},"authMethods":{"deprecated":true,"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","items":{"$ref":"#/components/schemas/UserAuthMethod"},"type":"array"},"avatarUuid":{"description":"&#128640; Since v4.11.0\n\nAvatar UUID","type":"string"},"email":{"description":"Email ","type":"string"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"},"firstName":{"description":"User first name","type":"string"},"gender":{"default":"n","deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nGender","type":"string"},"hasManageableRooms":{"description":"User has manageable rooms","type":"boolean"},"homeRoomId":{"description":"Homeroom ID","format":"int64","type":"integer"},"id":{"description":"Unique identifier for the user","format":"int64","type":"integer"},"isEncryptionEnabled":{"description":"User has generated private key.\n\nPossible if client-side encryption is active for this customer","type":"boolean"},"isLocked":{"default":false,"description":"User is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nUser is locked and can not login anymore.","type":"boolean"},"isMfaEnabled":{"description":"Determines whether multi-factor authentication is enabled","type":"boolean"},"isMfaEnforced":{"description":"Determines whether multi-factor authentication is enforced","type":"boolean"},"lastLoginSuccessAt":{"description":"Last successful logon date","format":"date-time","type":"string"},"lastName":{"description":"User last name","type":"string"},"lockStatus":{"deprecated":true,"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","type":"integer"},"login":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nUser login name","type":"string"},"phone":{"description":"Phone number","type":"string"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"},"title":{"deprecated":true,"description":"&#128679; Deprecated since v4.18.0\n\nJob title","type":"string"},"userAttributes":{"$ref":"#/components/schemas/UserAttributes"},"userName":{"description":"&#128640; Since v4.13.0\n\nUsername","type":"string"},"userRoles":{"$ref":"#/components/schemas/RoleList"}},"required":["authData","avatarUuid","firstName","id","isLocked","lastName","lockStatus","userName"],"type":"object"},"UserFileKey":{"description":"User file key","properties":{"fileKey":{"$ref":"#/components/schemas/FileKey"},"userId":{"description":"Unique identifier for the user","format":"int64","type":"integer"}},"required":["fileKey","userId"],"type":"object"},"UserFileKeyList":{"deprecated":true,"description":"Mandatory for encrypted shares","properties":{"items":{"description":"List of user file keys","items":{"$ref":"#/components/schemas/UserFileKey"},"type":"array"}},"type":"object"},"UserFileKeySetBatchRequest":{"description":"List of request models for setting a user file key(s)","properties":{"items":{"description":"List of user file keys","items":{"$ref":"#/components/schemas/UserFileKeySetRequest"},"type":"array"}},"required":["items"],"type":"object"},"UserFileKeySetRequest":{"description":"Request model for setting a user file key","properties":{"fileId":{"description":"File ID","format":"int64","type":"integer"},"fileKey":{"$ref":"#/components/schemas/FileKey"},"userId":{"description":"Unique identifier for the user","format":"int64","type":"integer"}},"required":["fileId","fileKey","userId"],"type":"object"},"UserGroup":{"description":"Group information","properties":{"id":{"description":"Unique identifier for the group","format":"int64","type":"integer"},"isMember":{"description":"Determines whether user is a member of the group or not","type":"boolean"},"name":{"description":"Group name","type":"string"}},"required":["id","isMember","name"],"type":"object"},"UserGroupList":{"description":"List of groups","properties":{"items":{"description":"List of user-group mappings","items":{"$ref":"#/components/schemas/UserGroup"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"UserIdFileIdItem":{"description":"User ID and file ID mapping","properties":{"fileId":{"description":"File ID","format":"int64","type":"integer"},"userId":{"description":"Unique identifier for the user","format":"int64","type":"integer"}},"type":"object"},"UserIds":{"description":"User IDs","properties":{"ids":{"description":"List of user IDs","items":{"description":"List of user IDs","format":"int64","type":"integer"},"type":"array"}},"required":["ids"],"type":"object"},"UserInfo":{"description":"User information","properties":{"avatarUuid":{"description":"&#128640; Since v4.11.0\n\nAvatar UUID","type":"string"},"displayName":{"deprecated":true,"description":"&#128679; Deprecated since v4.11.0\n\nDisplay name\n\nuse other fields from `UserInfo` instead to combine a display name","type":"string"},"email":{"description":"&#128640; Since v4.11.0\n\nEmail ","type":"string"},"firstName":{"description":"&#128640; Since v4.11.0\n\nUser first name (mandatory if `userType` is `internal`)","type":"string"},"id":{"description":"Unique identifier for the user","format":"int64","type":"integer"},"lastName":{"description":"&#128640; Since v4.11.0\n\nUser last name (mandatory if `userType` is `internal`)","type":"string"},"title":{"deprecated":true,"description":"&#128679; Deprecated since v4.18.0\n\nJob title","type":"string"},"userName":{"description":"&#128640; Since v4.13.0\n\nUsername (only returned for `internal` users)","type":"string"},"userType":{"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"],"type":"string"}},"required":["avatarUuid","firstName","id","lastName","userName","userType"],"type":"object"},"UserItem":{"description":"User information","properties":{"avatarUuid":{"description":"&#128640; Since v4.11.0\n\nAvatar UUID","type":"string"},"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"email":{"description":"Email ","type":"string"},"expireAt":{"description":"Expiration date","format":"date-time","type":"string"},"firstName":{"description":"User first name","type":"string"},"gender":{"default":"n","deprecated":true,"description":"&#128679; Deprecated since v4.12.0\n\nGender","type":"string"},"hasManageableRooms":{"deprecated":true,"description":"&#128679; Deprecated since v4.27.0\n\nUser has manageable rooms","type":"boolean"},"homeRoomId":{"description":"Homeroom ID","format":"int64","type":"integer"},"id":{"description":"Unique identifier for the user","format":"int64","type":"integer"},"isEncryptionEnabled":{"description":"User has generated private key.\n\nPossible if client-side encryption is active for this customer","type":"boolean"},"isLocked":{"default":false,"description":"User is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nUser is locked and can not login anymore.","type":"boolean"},"lastLoginSuccessAt":{"description":"Last successful logon date","format":"date-time","type":"string"},"lastName":{"description":"User last name","type":"string"},"lockStatus":{"deprecated":true,"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","type":"integer"},"login":{"deprecated":true,"description":"&#128679; Deprecated since v4.13.0\n\nUser login name","type":"string"},"phone":{"description":"Phone number","type":"string"},"title":{"deprecated":true,"description":"&#128679; Deprecated since v4.18.0\n\nJob title","type":"string"},"userAttributes":{"$ref":"#/components/schemas/UserAttributes"},"userName":{"description":"&#128640; Since v4.13.0\n\nUsername","type":"string"},"userRoles":{"$ref":"#/components/schemas/RoleList"}},"required":["avatarUuid","firstName","id","isLocked","lastName","lockStatus","login","userName"],"type":"object"},"UserKeyPairContainer":{"description":"Key pair container","properties":{"privateKeyContainer":{"$ref":"#/components/schemas/PrivateKeyContainer"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"}},"required":["privateKeyContainer","publicKeyContainer"],"type":"object"},"UserList":{"description":"List of users","properties":{"items":{"description":"List of users","items":{"$ref":"#/components/schemas/UserItem"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"UserLockout":{"description":"User lockout information","properties":{"enabled":{"description":"Determines whether user lockout is enabled","type":"boolean"},"lockoutPeriod":{"description":"Amount of minutes a user has to wait to make another login attempt after `maxNumberOfLoginFailures` has been exceeded","format":"int32","type":"integer"},"maxNumberOfLoginFailures":{"description":"Maximum allowed number of failed login attempts","format":"int32","type":"integer"}},"required":["enabled"],"type":"object"},"UserMfaStatusResponse":{"description":"Contains information about the user's MFA status","properties":{"mfaEnforced":{"description":"Determines whether multi-factor authentication is enforced","type":"boolean"},"mfaSetups":{"description":"Information about the second factor authentication method setup by the user","items":{"$ref":"#/components/schemas/MfaSetupStatus"},"type":"array"}},"required":["mfaEnforced","mfaSetups"],"type":"object"},"UserUserPublicKey":{"description":"Public key information","properties":{"id":{"description":"Unique identifier for the user","format":"int64","type":"integer"},"publicKeyContainer":{"$ref":"#/components/schemas/PublicKeyContainer"}},"type":"object"},"UserUserPublicKeyList":{"description":"List of user public keys","properties":{"items":{"description":"List of user public keys","items":{"$ref":"#/components/schemas/UserUserPublicKey"},"type":"array"}},"required":["items"],"type":"object"},"ViolatedPasswordPolicy":{"description":"Violated password policy information","properties":{"message":{"description":"Message from password validator","type":"string"},"name":{"description":"Name of the violated password policy","type":"string"}},"type":"object"},"Webhook":{"description":"Webhook information","properties":{"createdAt":{"description":"Creation date","format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/UserInfo"},"eventTypeNames":{"description":"List of names of event types","items":{"description":"List of names of event types","type":"string"},"type":"array"},"expireAt":{"description":"Expiration date / time","format":"date-time","type":"string"},"failStatus":{"description":"Last HTTP status code when a webhook is disabled due to delivery failures","format":"int32","type":"integer"},"id":{"description":"ID","format":"int64","type":"integer"},"isEnabled":{"description":"Is enabled","type":"boolean"},"name":{"description":"Name","type":"string"},"secret":{"description":"Secret; used for event message signatures","type":"string"},"updatedAt":{"description":"Modification date","format":"date-time","type":"string"},"updatedBy":{"$ref":"#/components/schemas/UserInfo"},"url":{"description":"URL","type":"string"}},"required":["createdAt","eventTypeNames","expireAt","id","isEnabled","name","updatedAt","url"],"type":"object"},"WebhookList":{"description":"List of webhooks","properties":{"items":{"description":"List of webhooks","items":{"$ref":"#/components/schemas/Webhook"},"type":"array"},"range":{"$ref":"#/components/schemas/Range"}},"required":["items","range"],"type":"object"},"ZipDownloadRequest":{"description":"Request model for ZIP download","properties":{"nodeIds":{"description":"List of node IDs","items":{"description":"List of node IDs","format":"int64","type":"integer"},"type":"array"}},"required":["nodeIds"],"type":"object"}},"securitySchemes":{"oauth2":{"flows":{"authorizationCode":{"authorizationUrl":"/oauth/authorize","scopes":{"all":"every operation is allowed"},"tokenUrl":"/oauth/token"}},"type":"oauth2"}}}}