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>

        ### Description:
        Authenticates user and provides an authentication token (`X-Sds-Auth-Token`) that is required for the most operations.

        ### Precondition:
        Existing user that is **NOT** locked.

        ### Postcondition:
        User is logged in.

        ### Further Information:
        The provided token is valid for **two hours**, every usage resets this period to two full hours again.  
        Logging off invalidates the token.  

        ### Available authentication methods:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Authentication Method (`authType`) | Description |
        | :--- | :--- |
        | `basic` | Log in with credentials stored in the database <br>Formerly known as `sql`.|
        | `active_directory` | Log in with Active Directory credentials |
        | `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. |
        | `openid` | Please use `POST /auth/openid/login` API to login with OpenID Connect identity |

        </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: |-
                    
                    * [-10100] Invalid authentication method
                  summary: Invalid authentication method
                  value:
                    code: 400
                    debugInfo: Invalid authentication method
                    errorCode: -10100
                    message: Bad Request
                "-80013":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-10011] Wrong username or password
                  summary: Wrong username or password
                  value:
                    code: 401
                    debugInfo: Wrong username or password
                    errorCode: -10011
                    message: Unauthorized
                "-10110":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-90060] User import not allowed
                  summary: User import not allowed
                  value:
                    code: 401
                    debugInfo: User import not allowed
                    errorCode: -90060
                    message: Unauthorized
                "-90061":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-10004] User has expired
                  summary: User has expired
                  value:
                    code: 403
                    debugInfo: User has expired
                    errorCode: -10004
                    message: Forbidden
                "-10005":
                  description: |-
                    
                    * [-10005] User is temporarily locked
                  summary: User is temporarily locked
                  value:
                    code: 403
                    debugInfo: User is temporarily locked
                    errorCode: -10005
                    message: Forbidden
                "-10007":
                  description: |-
                    
                    * [-10007] Customer is locked
                  summary: Customer is locked
                  value:
                    code: 403
                    debugInfo: Customer is locked
                    errorCode: -10007
                    message: Forbidden
                "-70505":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-10108] RADIUS requests Access-Challenge workflow

                    Please notice the `replyState` and `replyMessage`
                  summary: RADIUS requests Access-Challenge workflow
                  value: |-
                    {
                      "code": 412,
                      "message": "Precondition Failed",
                      "debugInfo": "RADIUS requests Access-Challenge workflow",
                      "errorCode": -10108",
                      "replyState": "...",
                      "replyMessage": "..."
                    }
              schema:
                $ref: "#/components/schemas/RadiusChallengeResponse"
          description: Precondition Failed
        "502":
          content:
            application/json:
              examples:
                "-90055":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        This is the first step of the OpenID Connect authentication.  
        The user is send to the OpenID Connect identity provider to authenticate himself and retrieve an authorization code.

        ### Precondition:
        None.

        ### Postcondition:
        User is redirected to OpenID Connect identity provider to authenticate himself.

        ### Further Information:
        None.
      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.

            If 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: |-
                    
                    * [-10010] Not supported language
                  summary: Not supported language
                  value:
                    code: 400
                    debugInfo: Not supported language
                    errorCode: -10010
                    message: Bad Request
                "-10100":
                  description: |-
                    
                    * [-10100] Invalid authentication method
                  summary: Invalid authentication method
                  value:
                    code: 400
                    debugInfo: Invalid authentication method
                    errorCode: -10100
                    message: Bad Request
                "-80000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-10004] User has expired
                  summary: User has expired
                  value:
                    code: 403
                    debugInfo: User has expired
                    errorCode: -10004
                    message: Forbidden
                "-10005":
                  description: |-
                    
                    * [-10005] User is temporarily locked
                  summary: User is temporarily locked
                  value:
                    code: 403
                    debugInfo: User is temporarily locked
                    errorCode: -10005
                    message: Forbidden
                "-10007":
                  description: |-
                    
                    * [-10007] Customer is locked
                  summary: Customer is locked
                  value:
                    code: 403
                    debugInfo: Customer is locked
                    errorCode: -10007
                    message: Forbidden
                "-70505":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-70501] User not found
                  summary: User not found
                  value:
                    code: 404
                    debugInfo: User not found
                    errorCode: -70501
                    message: Not Found
                "-90041":
                  description: |-
                    
                    * [-90041] Unknown identity provider
                  summary: Unknown identity provider
                  value:
                    code: 404
                    debugInfo: Unknown identity provider
                    errorCode: -90041
                    message: Not Found
                "-90042":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        This is the second step of the OpenID Connect authentication.  
        The user hands over the authorization code and is logged in.

        ### Precondition:
        Existing user with activated OpenID Connect authentication that is **NOT** locked.

        ### Postcondition:
        User is logged in.

        ### Further Information:
        None.
      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: |-
                    
                    * [-10010] Not supported language
                  summary: Not supported language
                  value:
                    code: 400
                    debugInfo: Not supported language
                    errorCode: -10010
                    message: Bad Request
                "-10100":
                  description: |-
                    
                    * [-10100] Invalid authentication method
                  summary: Invalid authentication method
                  value:
                    code: 400
                    debugInfo: Invalid authentication method
                    errorCode: -10100
                    message: Bad Request
                "-80000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-10004] User has expired
                  summary: User has expired
                  value:
                    code: 403
                    debugInfo: User has expired
                    errorCode: -10004
                    message: Forbidden
                "-10005":
                  description: |-
                    
                    * [-10005] User is temporarily locked
                  summary: User is temporarily locked
                  value:
                    code: 403
                    debugInfo: User is temporarily locked
                    errorCode: -10005
                    message: Forbidden
                "-10007":
                  description: |-
                    
                    * [-10007] Customer is locked
                  summary: Customer is locked
                  value:
                    code: 403
                    debugInfo: Customer is locked
                    errorCode: -10007
                    message: Forbidden
                "-70505":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-70501] User not found
                  summary: User not found
                  value:
                    code: 404
                    debugInfo: User not found
                    errorCode: -70501
                    message: Not Found
                "-90041":
                  description: |-
                    
                    * [-90041] Unknown identity provider
                  summary: Unknown identity provider
                  value:
                    code: 404
                    debugInfo: Unknown identity provider
                    errorCode: -90041
                    message: Not Found
                "-90042":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Test connection to DRACOON Core Service.

        ### Precondition:
        None.

        ### Postcondition:
        `200 OK` with current date string is returned if successful.

        ### Further Information:
        None.
      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>

        ### Description:  
        Request an email with the user names of all accounts connected to the email.

        ### Precondition:
        Valid email address.

        ### Postcondition:
        An email is sent to the provided address, with a list of account user names connected to it.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Request an email with a password reset token for a certain user to reset password.

        ### Precondition:
        Registered user account.

        ### Postcondition:
        Provided user receives email with password reset token.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Request all information for a password change dialogue e.g. real name of user.

        ### Precondition:
        User received a password reset token.

        ### Postcondition:
        Context information is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Resets user's password.

        ### Precondition:
        User received a password reset token.

        ### Postcondition:
        User's password is reset to the provided password.

        ### Further Information:
        Forbidden 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Returns a list of configurable system default values.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of configurable default settings is returned.

        ### Further Information:
        None.

        ### Configurable default values:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `languageDefault` | Defines which language should be default. | `ISO 639-1 code` |
        | `downloadShareDefaultExpirationPeriod` | Default expiration period for Download Shares in _days_. | `Integer between 0 and 9999` |
        | `uploadShareDefaultExpirationPeriod` | Default expiration period for Upload Shares in _days_. | `Integer between 0 and 9999` |
        | `fileDefaultExpirationPeriod` | Default expiration period for all uploaded files in _days_. | `Integer between 0 and 9999` |
        | `nonmemberViewerDefault` | Defines if new users get the role _Non Member Viewer_ by default | `true or false` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Returns a list of configurable general settings.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of configurable general settings is returned.

        ### Further Information:
        None.

        ### Configurable general settings:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `sharePasswordSmsEnabled` | Determines whether sending of share passwords via SMS is allowed. | `true or false` |
        | `cryptoEnabled` | Determines whether client-side encryption is enabled.<br>Can only be enabled once; disabling is **NOT** possible. | `true or false` |
        | `emailNotificationButtonEnabled` | Determines whether email notification button is enabled. | `true or false` |
        | `eulaEnabled` | Determines whether EULA is enabled.<br>Each user has to confirm the EULA at first login. | `true or false` |
        | `useS3Storage` | Defines if S3 is used as storage backend.<br>Can only be enabled once; disabling is **NOT** possible. | `true or false` |
        | `s3TagsEnabled` | Determines whether S3 tags are enabled | `true or false` |
        | `homeRoomsActive` | Determines whether each AD user has a personal home room | `true or false` |
        | `homeRoomParentId` | Defines a node under which all personal home rooms are located. **NULL** if `homeRoomsActive` is `false` | `Long` |
        | `subscriptionPlan` | Subscription Plan. <br> 0 = Pro, 1 = Premium, 2 = Basic | `Integer` |

        </details>

        ### Deprecated general settings:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | <del>`mediaServerEnabled`</del> | Determines whether media server is enabled.<br>Returns boolean value dependent on conjunction of `mediaServerConfigEnabled` AND `mediaServerEnabled` | `true or false` |
        | <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` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Returns a list of read-only infrastructure properties.  

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of infrastructure properties is returned.

        ### Further Information:
        Source: `core-service.properties`

        ### Read-only infrastructure properties:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `smsConfigEnabled` | Determines whether sending of share passwords via SMS is **system-wide** enabled. | `true or false` |
        | `mediaServerConfigEnabled` | Determines whether media server is **system-wide** enabled. | `true or false` |
        | `s3DefaultRegion` | Suggested S3 region | `Region name` |
        | `s3EnforceDirectUpload` | Enforce direct upload to S3 | `true or false` |
        | `isDracoonCloud` | Determines if the **DRACOON Core** is deployed in the cloud environment | `true or false` |
        | `tenantUuid` | Current tenant UUID | `UUID` |

        </details>
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Retrieve a list of configured notification channels.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of notification channels is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Retrieve a list of available algorithms used for encryption.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of available algorithms is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Retrieve a list of classification policies:
        * `shareClassificationPolicies`

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of configured classification policies is returned.

        ### Further Information:
        `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.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Retrieve a list of guest users policies.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of configured guest users policies is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of configured password policies for all password types:  
        * `login`
        * `shares`
        * `encryption`

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of configured password policies is returned.

        ### Further Information:
        None.

        ### Available password policies:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Name | Description | Value | Password Type |
        | :--- | :--- | :--- | :--- |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `passwordExpiration.enabled` | Determines whether password expiration is enabled. | `true or false` | <ul><li>`login`</li></ul> |
        | `maxPasswordAge` | Maximum allowed password age (in **days**) | `positive Integer` | <ul><li>`login`</li></ul> |
        | `userLockout.enabled` | Determines whether user lockout is enabled. | `true or false` | <ul><li>`login`</li></ul> |
        | `maxNumberOfLoginFailures` | Maximum allowed number of failed login attempts. | `positive Integer` | <ul><li>`login`</li></ul> |
        | `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> |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Returns a list of product packages.

        ### Precondition:
        Authenticated user

        ### Postcondition:
        List of Product Packages is returned.

        ### Further Information:
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Returns a list of currently enabled product packages.

        ### Precondition:
        Authenticated user

        ### Postcondition:
        List of currently enabled Product Packages is returned.

        ### Further Information:
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Retrieve all configured S3 tags.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of configured S3 tags is returned.

        ### Further Information:
        An 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-90030] S3 storage disabled
                  summary: S3 storage disabled
                  value:
                    code: 412
                    debugInfo: S3 storage disabled
                    errorCode: -90030
                    message: Precondition Failed
                "-90032":
                  description: |-
                    
                    * [-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>

        ### Description:  
        Returns a list of configurable system settings.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> required.

        ### Postcondition:
        List of configurable settings is returned.

        ### Further Information:
        Check for every settings key new corresponding API and key below.

        If `eula_active` is true, but **NOT** accepted yet, or password **MUST** be changed, only the following two values are returned:
        * `allow_system_global_weak_password`
        * `eula_active`

        ### Configurable settings
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `default_language` | Define which language should be default.<br>cf. `GET /system/config/settings/defaults` `SystemDefaults.languageDefault` | cf. `GET /public/system/info` - `SystemInfo.languageDefault` |
        | `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` |
        | `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` |
        | `eula_active` | Each user has to confirm the EULA at first login.<br>cf. `GET /system/config/settings/general` `GeneralSettings.eulaEnabled` | `true or false` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `mailserver_password` | **Password is no longer returned.**<br>Check `mailserver_password_set` to determine whether password is set. |  |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `enable_email_notification_button` | Enable mail notification button.<br>cf. `GET /system/config/settings/general` `GeneralSettings.emailNotificationButtonEnabled` | `true or false` |
        | `allow_share_password_sms` | Allow sending of share passwords via SMS.<br>cf. `GET /system/config/settings/general` `GeneralSettings.sharePasswordSmsEnabled` | `true or false` |
        | `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` |
        | `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` |
        | `s3_default_region` |Suggested S3 region (read-only)<br>cf. `GET /system/config/settings/infrastructure` `InfrastructureProperties.s3DefaultRegion` | `Region name` |

        </details>

        ### Deprecated settings
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | <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` |
        | <del>`branding_server_customer`</del> | The UUID of the branding server customer, which corresponds to customer key in the branding server. | `String` |
        | <del>`branding_server_url`</del> | Access URL to to the Branding Server.<br>Only visible for _Config Manager_ of Provider Customer. | `String` |
        | <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` |
        | <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` |
        | <del>`email_to_support`</del> | Support email address for users<br>**Moved to branding** | `Valid email address` |
        | <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`) |
        | <del>`system_name`</del> | System name<br>**Moved to branding** use `product.title` | `Display name of the DRACOON` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Update configurable settings.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        One or more global settings gets changed.

        ### Further Information:
        This API is deprecated and will be removed in the future.  
        Check for every settings key new corresponding API and key below.

        ### Configurable settings:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `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` |
        | `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` |
        | `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` |
        | `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. |
        | `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. |
        | `default_language` | Define which language should be default.<br>cf. `PUT /system/config/settings/defaults` `SystemDefaults.languageDefault` | cf. `GET /public/system/info` - `SystemInfo.languageDefault` |
        | `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. |
        | `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` |
        | `eula_active` | Each user has to confirm the EULA at first login.<br>cf. `PUT /system/config/settings/general` `GeneralSettings.eulaEnabled` | `true or false` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `mailserver_password` | Password for email server<br>cf. `PUT /system/config/settings/mail_server` `MailServerConfig.password` | `Password for authentication` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `enable_email_notification_button` | Enable mail notification button.<br>cf. `PUT /system/config/settings/general` `GeneralSettings.emailNotificationButtonEnabled` | `true or false` |
        | `allow_share_password_sms` | Allow sending of share passwords via SMS.<br>cf. `PUT /system/config/settings/general` `GeneralSettings.sharePasswordSmsEnabled` | `true or false` |

        </details>

        ### Deprecated settings:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | <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` |
        | <del>`branding_server_customer`</del> | The UUID of the branding server customer, which corresponds to customer key in the branding server. | `String` |
        | <del>`branding_server_url`</del> | Access URL to to the Branding Server.<br>Only visible for _Config Manager_ of Provider Customer. | `String` |
        | <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` |
        | <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` |
        | <del>`email_to_support`</del> | Support email address for users<br>**Moved to branding** | `Valid email address` |
        | <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`) |
        | <del>`system_name`</del> | System name<br>**Moved to branding** use `product.title` | `Display name of the DRACOON` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80009] Invalid email address
                  summary: Invalid email address
                  value:
                    code: 400
                    debugInfo: Invalid email address
                    errorCode: -80009
                    message: Bad Request
                "-80012":
                  description: |-
                    
                    * [-80012] Illegal protocol
                  summary: Illegal protocol
                  value:
                    code: 400
                    debugInfo: Illegal protocol
                    errorCode: -80012
                    message: Bad Request
                "-80014":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-90001] Invalid settings configuration
                  summary: Invalid settings configuration
                  value:
                    code: 400
                    debugInfo: Invalid settings configuration
                    errorCode: -90001
                    message: Bad Request
                "-90010":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Download avatar for given user ID and UUID.

        ### Precondition:
        Valid UUID.

        ### Postcondition:
        Stream is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Download multiple files in a ZIP archive.

        ### Precondition:
        Valid download token.

        ### Postcondition:
        Stream is returned.

        ### Further Information:
        Create 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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:
        Download a file.

        ### Precondition:
        Valid download token.

        ### Postcondition:
        Stream is returned.

        ### Further Information:
        Range 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 

            e.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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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:
        Download a file.

        ### Precondition:
        Valid download token.

        ### Postcondition:
        Stream is returned.

        ### Further Information:
        Range 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 

            e.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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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>

        ### Description: 
        Retrieve a list of all nodes of type room under a certain parent.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read audit log</span> required.

        ### Postcondition:
        List of rooms.

        ### Further Information:
        For rooms on root level, use parent_id = 0.

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `nodeName:cn:searchString_1|nodeIsEncrypted:eq:true`  
        Filter by node name containing `searchString_1` **AND** node is encrypted .

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `nodeId` | Node ID filter | `eq` | Node ID equals value. | `positive Integer` |
        | `nodeName` | Node name filter | `cn, eq, sw` | Node name contains / equals / starts with value. | `search String` |
        | `nodeIsEncrypted` | Encrypted node filter | `eq` |  | `true or false` |

        </details>


        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `nodeName:asc`  
        Sort by `nodeName` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `nodeId` | Node ID |
        | `nodeName` | Node name |

        </details>
      operationId: requestAuditNodeInfo
      parameters:
        - description: |-
            Parent node ID.

            Only rooms can be parents.

            Parent 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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description: 
        Retrieve a list of all nodes of type room, and the room assignment users with permissions.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read audit log</span> required.

        ### Postcondition:
        List of rooms and their assigned users is returned.

        ### Further Information:

        Output is limited to **500** entries.  
        For more results please use filter criteria and the `limit` parameter.

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Except for `userName`, `userFirstName` and  `userLastName` - these are connected via logical disjunction (**OR**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `userName:cn:searchString_1|userFirstName:cn:searchString_2|nodeId:eq:2`  
        Filter by user login containing `searchString_1` **OR** first name containing `searchString_2` **AND** node ID equals `2`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `nodeId` | Node ID filter | `eq` | Node ID equals value. | `positive Integer` |
        | `nodeName` | Node name filter | `cn, eq` | Node name contains / equals value. | `search String` |
        | `nodeParentId` | Node parent ID filter | `eq` | Parent ID equals value. | `positive Integer`<br>Parent ID `0` is the root node. |
        | `userId` | User ID filter | `eq` | User ID equals value. | `positive Integer` |
        | `userName` | Username (login) filter | `cn, eq` | Username contains / equals value. | `search String` |
        | `userFirstName` | User first name filter | `cn, eq` | User first name contains / equals value. | `search String` |
        | `userLastName` | User last name filter | `cn, eq` | User last name contains / equals value. | `search String` |
        | `permissionsManage` | Filter the users that do (not) have `manage` permissions in this room | `eq` |  | `true or false` |
        | `nodeIsEncrypted` | Encrypted node filter | `eq` |  | `true or false` |
        | `nodeHasActivitiesLog` | Activities log filter | `eq` |  | `true or false` |

        </details>

        ### Deprecated filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | <del>`nodeHasRecycleBin`</del> | Recycle bin filter<br>**Filter has no effect!** | `eq` |  | `true or false` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `nodeName:asc`  
        Sort by `nodeName` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `nodeId` | Node ID |
        | `nodeName` | Node name |
        | `nodeParentId` | Node parent ID |
        | `nodeSize` | Node size |
        | `nodeQuota` | Node quota |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description: 
        Retrieve eventlog (audit log) events.

        ### Precondition:
        Role <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Log Auditor</span> required.

        ### Postcondition:
        List of audit log events is returned.

        ### Further Information:
        Output is limited to **500** entries.  
        For more results please use filter criteria and paging (`offset` + `limit`). 

        Allowed `Accept-Header`:
        * `Accept: application/json`
        * `Accept: text/csv`  

        ---

        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `time:desc`  
        Sort by `time` descending (default sort option).

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `time` | Event timestamp |

        </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.

            Maximum 500.

             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 

            e.g. `2015-12-31T23:59:00`
          in: query
          name: date_start
          required: false
          schema:
            type: string
        - description: |-
            Filter events until given date 

            e.g. `2015-12-31T23:59:00`
          in: query
          name: date_end
          required: false
          schema:
            type: string
        - description: |-
            Operation ID 

            cf. `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:

            * `0` - Success

            * `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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-80024] Invalid range parameters
                  summary: Invalid range parameters
                  value:
                    code: 400
                    debugInfo: Invalid range parameters
                    errorCode: -80024
                    message: Bad Request
                "-80026":
                  description: |-
                    
                    * [-80026] Invalid operation ID
                  summary: Invalid operation ID
                  value:
                    code: 400
                    debugInfo: Invalid operation ID
                    errorCode: -80026
                    message: Bad Request
                "-80027":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description: 
        Retrieve eventlog (audit log) operation IDs and the associated log operation description.

        ### Precondition:
        Role <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Log Auditor</span> required.

        ### Postcondition:
        List of available log operations is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Returns a list of user groups.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.

        ### Postcondition: 
        List of user groups is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:cn:searchString`  
        Filter by group name containing `searchString`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `name` | Group name filter | `cn` | Group name contains value. | `search String` |
        | `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> |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:asc|expireAt:desc`  
        Sort by `name` ascending **AND** by `expireAt` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `name` | Group name |
        | `createdAt` | Creation date |
        | `expireAt` | Expiration date |
        | `cntUsers` | Amount of users |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Create a new user group.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.

        ### Postcondition: 
        A new user group is created.

        ### Further Information:
        * If a group should **NOT** expire, leave `expireAt` empty.
        * Group names are limited to **150** characters
        * Forbidden characters in group name: [`<`, `>`]
      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: |-
                    
                    * [-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: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete a user group.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; delete groups</span> required.

        ### Postcondition: 
        User group is deleted.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve detailed information about a user group.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.

        ### Postcondition: 
        User group is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Update user group's metadata .

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.

        ### Postcondition: 
        User group's metadata is changed.

        ### Further Information:
        * If a group should **NOT** expire, leave `expireAt` empty.
        * Group names are limited to **150** characters
        * **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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of all rooms where the group is defined as last admin group.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.

        ### Postcondition: 
        List of rooms is returned. 

        ### Further Information:
        An 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of all roles granted to a group.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.

        ### Postcondition: 
        List of granted roles is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieves a list of rooms granted to the group and / or that can be granted.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.

        ### Postcondition: 
        List of rooms is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `isGranted:eq:false|name:cn:searchString`  
        Get all rooms where the group is **NOT** granted **AND** whose name is like `searchString`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `name` | Room name filter | `cn` | Room name contains value. | `search String` |
        | `isGranted` | Filter rooms which the group is (not) granted | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |
        | `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` |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Remove group members.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.

        ### Postcondition: 
        Provided users are removed from the user group.

        ### Further Information:
        Batch function.  
        The 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80063":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of group member users or / and users who can become a member.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.

        ### Postcondition: 
        List of users is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `isMember:eq:false|user:cn:searchString`  
        Get all users that are **NOT** in this group **AND** whose (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) is like `searchString`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `user` | User filter | `cn` | User contains value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`). | `search String` |
        | `isMember` | Filter group members | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |

        </details>

        ### Deprecated filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | <del>`displayName`</del> | User display name filter (use `user` filter) | `cn` | User display name contains value (`firstName` **OR** `lastName` **OR** `email`). | `search String` |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Add members to a group.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change groups</span> required.

        ### Postcondition: 
        New members are added to the group.

        ### Further Information:
        Batch function.  
        The 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Get the subscription plan id of the current tenant

        ### Precondition:
        Valid `X-SDS-Service-Token` Header

        ### Postcondition:
        Returns SubscriptionPlanResponse model that includes subscription plan id.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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>

        ### Description: 
        Change the subscription plan id of the current tenant

        ### Precondition:
        Valid `X-SDS-Service-Token` Header

        ### Postcondition:
        The subscription plan of the current tenant is set to the given value.  
        Returns SubscriptionPlanResponse model that includes subscription plan id.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80003":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete nodes (room, folder or file).

        ### Precondition:
        Authenticated 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).

        ### Postcondition:
        Nodes are deleted.

        ### Further Information:
        Nodes **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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-10006] User is not authorized to perform this operation
                  summary: User is not authorized to perform this operation
                  value: |-
                    {
                      "code": 403,
                      "message": "Forbidden",
                      "debugInfo": "User is not authorized to perform this operation",
                      "errorCode": -10006,
                      "errorInfos": {
                        "conflictNodes": [
                          {
                            "nodeId": #,
                            "name": "null",
                            "errorCode": null,
                            "errorMessage": null
                          }
                        ]
                      }
                    }
                "-70020":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Provides a hierarchical list of file system nodes (rooms, folders or files) of a given parent that are accessible by the current user.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of nodes is returned.

        ### Further Information:
        `EncryptionInfo` is **NOT** provided.

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `type:eq:room:folder|perm:eq:read`  
        Get nodes where type equals (`room` **OR** `folder`) **AND** user has `read` permissions.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `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> |
        | `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> |
        | `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` |
        | `name` | Node name filter | `cn, eq` | Node name contains / equals value. | `search String` |
        | `encrypted` | Node encryption status filter | `eq` |  | `true or false` |
        | `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` |
        | `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)` |
        | `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)` |
        | `referenceId`           | Reference ID filter               | `eq` | Reference ID equals value.   | `Integer ` |
        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.  
        Nodes are sorted by type first, then by sent sort string.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:desc|fileType:asc`  
        Sort by `name` descending **AND** `fileType` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `name` | Node name |
        | `createdAt` | Creation date |
        | `createdBy` | Creator first name, last name |
        | `updatedAt` | Last modification date |
        | `updatedBy` | Last modifier first name, last name |
        | `fileType` | File type (extension) |
        | `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |
        | `size` | Node size |
        | `cntDeletedVersions` | Number of deleted versions of this file / folder (**NOT** recursive; for files and folders only) |
        | `timestampCreation` | Creation timestamp |
        | `timestampModification` | Modification timestamp |

        </details>

        ### Deprecated sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | <del>`cntChildren`</del> | Number of direct children (**NOT** recursive; for rooms and folders only) |

        </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` (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.

            Only rooms and folders can be parents.

            Parent 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.

            Only possible for _Rooms Managers_ / _Room Admins_.

            For 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.

            Maximum 500.

             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: |-
                    
                    * [-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
            * [-80024] Invalid range parameters
        "401":
          content:
            application/json:
              examples:
                "-10006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Delete an existing comment for a specific node.

        ### Precondition:
        User 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.

        ### Postcondition:
        Comment is deleted.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-41400":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Edit the text of an existing comment for a specific node.

        ### Precondition:
        User 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.

        ### Postcondition:
        Comments text gets changed.

        ### Further Information:
        Maximum 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-41400":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Permanently remove a list of nodes from the recycle bin.

        ### Precondition:
        User 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.

        ### Postcondition:
        All provided nodes are removed.

        ### Further Information:
        The 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-41100":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Restore a list of deleted nodes.

        ### Precondition:
        User 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.

        ### Postcondition:
        The selected files are moved from the recycle bin to the chosen productive container.

        ### Further Information:
        If no parent ID is provided, the node is restored to its previous location.  
        The default resolution strategy is `autorename` that adds numbers to the file name until the conflict is solved.  
        If an existing file is overwritten, it is moved to the recycle bin instead of the restored one.

        Download share id (if exists) gets changed if:
        - node with the same name exists in the target container
        - `resolutionStrategy` is `overwrite`
        - `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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80034":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    {
                      "items": [
                        {
                          "parentId": #,
                          "parentPath": "...",
                          "name": "...",
                          "type": "...",
                          "id": #
                        }
                      ]
                    }
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-41100":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-40010] Container cannot be overwritten
                  summary: Container cannot be overwritten
                  value:
                    code: 409
                    debugInfo: Container cannot be overwritten
                    errorCode: -40010
                    message: Conflict
                "-41001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Get metadata of a deleted node.

        ### Precondition:
        User 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.

        ### Postcondition:
        Requested deleted node is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-41100":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Marks or unmarks a list of nodes (room, folder or file) as favorite.

        ### Precondition:
        Authenticated 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`).

        ### Postcondition:
        Nodes gets marked as favorite.

        ### Further Information:
        Maximum 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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80063":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Updates a list of file’s metadata.

        ### Precondition:
        User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change</span> permissions in parent room.

        ### Postcondition:
        File's metadata is changed.

        ### Further Information:
        Maximum number of files is 200
      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: |-
                    
                    * [-40756] Invalid classification code
                  summary: Invalid classification code
                  value:
                    code: 400
                    debugInfo: Invalid classification code
                    errorCode: -40756
                    message: Bad Request
                "-80001":
                  description: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80063] Too many items
                  summary: Too many items
                  value:
                    code: 400
                    debugInfo: Too many items
                    errorCode: -80063
                    message: Bad Request
                "-80064":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Sets symmetric file keys for several users and files.

        ### Precondition:
        User has file keys for the files.  
        Only 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>

        ### Postcondition:
        Stores new file keys for other users.

        ### Further Information:
        Only users with copies of the file key (encrypted with their public keys) can access a certain file.  
        This endpoint is used for the distribution of file keys amongst an authorized user base.  
        User can set file key for himself.  
        The users who already have a file key are ignored and keep the distributed file key
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        This endpoint creates a new upload channel which is the first step in any file upload workflow.

        ### Precondition:
        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).

        ### Postcondition:
        A new upload channel for a file is created.  
        Its ID and an upload token are returned.

        ### Further Information:
        The upload ID is used for uploads with `X-Sds-Auth-Token` header, the upload token can be used for uploads without authentication header.

        Please provide the size of the intended upload so that the quota can be checked in advanced and no data is transferred unnecessarily.

        Notes are limited to **255** characters.

        ### Node naming convention:
        * Node (room, folder, file) names are limited to **150** characters.
        * Illegal names:  
        `'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)`
        * Illegal characters in names:  
        `'\\', '<','>', ':', '\"', '|', '?', '*', '/', leading '-', trailing '.' `
      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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-40756":
                  description: |-
                    
                    * [-40756] Invalid classification code
                  summary: Invalid classification code
                  value:
                    code: 400
                    debugInfo: Invalid classification code
                    errorCode: -40756
                    message: Bad Request
                "-41200":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Cancel a (S3) file upload and destroy the upload channel.

        ### Precondition:
        An upload channel has been created and user has to be the creator of the upload channel.

        ### Postcondition:
        The upload channel is removed and all temporary uploaded data is purged.

        ### Further Information:
        It 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Request status of a S3 file upload.

        ### Precondition:
        An upload channel has been created and user has to be the creator of the upload channel.

        ### Postcondition:
        Status of S3 multipart upload request is returned.

        ### Further Information:
        None.

        ### Possible errors:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Http Status | Error Code | Description |
        | :--- | :--- | :--- |
        | `400 Bad Request` | `-80000` | Mandatory fields cannot be empty |
        | `400 Bad Request` | `-80001` | Invalid positive number |
        | `400 Bad Request` | `-80002` | Invalid number |
        | `400 Bad Request` | `-40001` | (Target) room is not encrypted |
        | `400 Bad Request` | `-40755` | Bad file name |
        | `400 Bad Request` | `-40763` | File key must be set for an upload into encrypted room |
        | `400 Bad Request` | `-50506` | Exceeds the number of files for this Upload Share |
        | `403 Forbidden` |  | Access denied |
        | `404 Not Found` | `-20501` | Upload not found |
        | `404 Not Found` | `-40000` | Container not found |
        | `404 Not Found` | `-41000` | Node not found |
        | `404 Not Found` | `-70501` | User not found |
        | `409 Conflict` | `-40010` | Container cannot be overwritten |
        | `409 Conflict` |  | File cannot be overwritten |
        | `500 Internal Server Error` |  | System Error |
        | `502 Bad Gateway` |  | S3 Error |
        | `502 Insufficient Storage` | `-50504` | Exceeds the quota for this Upload Share |
        | `502 Insufficient Storage` | `-40200` | Exceeds the free node quota in room |
        | `502 Insufficient Storage` | `-90200` | Exceeds the free customer quota |
        | `502 Insufficient Storage` | `-90201` | Exceeds the free customer physical disk space |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-90034":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Use `uploads` API

        ### Description:  
        Uploads a file or parts of it in an active upload channel.

        ### Precondition:
        An upload channel has been created.

        ### Postcondition:
        A file or parts of it are uploaded to a temporary location.

        ### Further Information:
        This endpoints supports chunked upload.  

        Following `Content-Types` are supported by this API:
        * `multipart/form-data`
        * provided `Content-Type`   

        For both file upload types set the correct `Content-Type` header and body.  

        ### Examples:  

        * `multipart/form-data`
        ```
        POST /api/v4/nodes/files/uploads/{upload_id} HTTP/1.1

        Header:
        ...
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
        ...

        Body:
        ------WebKitFormBoundary7MA4YWxkTrZu0gW
        Content-Disposition: form-data; name="file"; filename="file.txt"
        Content-Type: text/plain

        Content of file.txt
        ------WebKitFormBoundary7MA4YWxkTrZu0gW--
        ```

        * any other `Content-Type`  
        ```
        POST /api/v4/nodes/files/uploads/{upload_id}  HTTP/1.1

        Header:
        ...
        Content-Type: { ... }
        ...

        Body:
        raw content
        ```
      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 

            e.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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Use `uploads` API

        ### Description:
        Finishes an upload and closes the corresponding upload channel.

        ### Precondition:
        An upload channel has been created and data has been transmitted.

        ### Postcondition:
        The upload is finished and the temporary file is moved to the productive environment.

        ### Further Information:
        The provided file name might be changed in accordance with the resolution strategy:  
        * **autorename**: changes the file name and adds a number to avoid conflicts.
        * **overwrite**: deletes any old file with the same file name.
        * **fail**: returns an error; in this case, another `PUT` request with a different file name may be sent.

        Please ensure that all chunks have been transferred correctly before finishing the upload.  
        Download share id (if exists) gets changed if:
        - node with the same name exists in the target container
        - `resolutionStrategy` is `overwrite`
        - `keepShareLinks` is `true`

        ### Node naming convention:
        * Node (room, folder, file) names are limited to **150** characters.
        * Illegal names:  
        `'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)`
        * Illegal characters in names:  
        `'\\', '<','>', ':', '\"', '|', '?', '*', '/', 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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-40763":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Finishes a S3 file upload and closes the corresponding upload channel.

        ### Precondition:
        An upload channel has been created, data has been transmitted and user has to be the creator of the upload channel

        ### Postcondition:
        Upload channel is closed. S3 multipart upload request is completed.

        ### Further Information:
        Download share id (if exists) gets changed if:
        - node with the same name exists in the target container
        - `resolutionStrategy` is `overwrite`
        - `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: |-
                    
                    * [-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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-40763":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-90034":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-40010] Container cannot be overwritten
                  summary: Container cannot be overwritten
                  value:
                    code: 409
                    debugInfo: Container cannot be overwritten
                    errorCode: -40010
                    message: Conflict
                "-41001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Generate presigned URLs for S3 file upload.

        ### Precondition:
        An upload channel has been created and user has to be the creator of the upload channel.

        ### Postcondition:
        List of presigned URLs is returned.

        ### Further Information:
        The size for each part must be >= 5 MB, except for the last part.  
        The part number of the first part in S3 is 1 (not 0).  
        Use 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80046":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-90034":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Request a list of file versions. Both nodes and deleted nodes are included, depending on the user's permissions.

        ### Precondition:
        User 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.

        ### Postcondition:
        List of file versions is returned.

        ### Further Information:
        Maximum number of file versions is 500. The list is sorted by ID DESC.
      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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Updates a list of file’s metadata.

        ### Precondition:
        User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change</span> permissions in parent room.

        ### Postcondition:
        File's metadata is changed.


      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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-40756":
                  description: |-
                    
                    * [-40756] Invalid classification code
                  summary: Invalid classification code
                  value:
                    code: 400
                    debugInfo: Invalid classification code
                    errorCode: -40756
                    message: Bad Request
                "-41200":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Returns the file key for the room emergency password / rescue key of a certain file (if available).

        ### Precondition:
        User with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in parent room.

        ### Postcondition:
        File key is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-40761":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Returns the file key for the system emergency password / rescue key of a certain file (if available).

        ### Precondition:
        User with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in parent room.

        ### Postcondition:
        File key is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-40761":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Create a download URL to retrieve a file without `X-Sds-Auth-Token` Header.

        ### Precondition:
        User with <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in parent room.

        ### Postcondition:
        Download token is generated and returned.

        ### Further Information:
        The 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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Returns the file key for the current user (if available).

        ### Precondition:
        User 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>

        ### Postcondition:
        File key is returned.

        ### Further Information:
        The symmetric file key is encrypted with the user's public key.  
        File 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-40761":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Create a new folder.

        ### Precondition:
        User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; create</span> permissions in current room.

        ### Postcondition:
        New folder is created.

        ### Further Information:
        Folders **CANNOT** be created on top level (without parent element).  
        Notes are limited to **255** characters.

        ### Node naming convention:
        * Node (room, folder, file) names are limited to **150** characters.
        * Illegal names:  
        `'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)`
        * Illegal characters in names:  
        `'\\', '<','>', ':', '\"', '|', '?', '*', '/', leading '-', trailing '.' `
      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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-41200":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Updates folder’s metadata.

        ### Precondition:
        User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change</span> permissions in parent room.

        ### Postcondition:
        Folder's metadata is changed.

        ### Further Information:
        Notes are limited to **255** characters.

        ### Node naming convention:
        * Node (room, folder, file) names are limited to **150** characters.
        * Illegal names:  
        `'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)`
        * Illegal characters in names:  
        `'\\', '<','>', ':', '\"', '|', '?', '*', '/', leading '-', trailing '.' `
      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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-41200":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Requests a list of missing file keys that may be generated by the current user.  

        ### Precondition:
        User has a key pair.  
        Only 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>

        ### Postcondition:
        None.

        ### Further Information:
        Clients **SHOULD** regularly request missing file keys to provide access to files for other users.  
        The returned list is ordered by priority (emergency passwords / rescue keys are returned first).
        There is an enforced limit of **100** items per request.
        A total value greater than limit signals that there are more entries but does not necessarily reflect the precise
        number of total items.
      operationId: requestMissingFileKeys
      parameters:
        - description: Range offset
          in: query
          name: offset
          required: false
          schema:
            format: int32
            type: integer
        - description: |-
            Range limit.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-80024] Invalid range parameters
                  summary: Invalid range parameters
                  value:
                    code: 400
                    debugInfo: Invalid range parameters
                    errorCode: -80024
                    message: Bad Request
                "-92001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Creates a new room at the provided parent node.  
        Creation of top level rooms provided.

        ### Precondition:
        User 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.

        ### Postcondition:
        A new room is created.

        ### Further Information:  
        Rooms may only have other rooms as parent.  
        Rooms on top level do **NOT** have any parent.  
        Rooms may have rooms as children on n hierarchy levels.  
        If permission inheritance is disabled, there **MUST** be at least one admin user / group (with neither the group nor the user having an expiration date).

        Notes are limited to **255** characters.

        Provided (or default) classification is taken from room when file gets uploaded without any classification.

        ### Node naming convention:
        * Node (room, folder, file) names are limited to **150** characters.
        * Illegal names:  
        `'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)`
        * Illegal characters in names:  
        `'\\', '<','>', ':', '\"', '|', '?', '*', '/', 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-40756":
                  description: |-
                    
                    * [-40756] Invalid classification code
                  summary: Invalid classification code
                  value:
                    code: 400
                    debugInfo: Invalid classification code
                    errorCode: -40756
                    message: Bad Request
                "-41200":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Requests a list of user-room assignments by groups that have **NOT** been approved yet  
        These can have the state:
        * **WAITING**  
        * **DENIED**  
        * **ACCEPTED**  

        **ACCEPTED** assignments are already removed from the list.

        ### Precondition:
        None.

        ### Postcondition:
        List of user-room assignments is returned.

        ### Further Information:
        Room administrators **SHOULD** regularly request pending assingments to provide access to rooms for other users.

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `state:eq:WAITING`  
        Filter assignments by state `WAITING`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `userId` | User ID filter | `eq` | User ID equals value. | `positive Integer` |
        | `groupId` | Group ID filter | `eq` | Group ID equals value. | `positive Integer` |
        | `roomId` | Room ID filter | `eq` | Room ID equals value. | `positive Integer` |
        | `state` | Assignment state | `eq` | Assignment state equals value. | `WAITING or DENIED` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `userId:desc|state:asc`  
        Sort by `userId` descending **AND** `state` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `userId` | User ID |
        | `groupId` | Group ID |
        | `roomId` | Room ID |
        | `state` | State |

        </details>
      operationId: requestPendingAssignments
      parameters:
        - description: Range offset
          in: query
          name: offset
          required: false
          schema:
            format: int32
            type: integer
        - description: |-
            Range limit.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Handles a list of user-room assignments by groups that have **NOT** been approved yet  
        **WAITING** or **DENIED** assignments can be **ACCEPTED**.

        ### Precondition:
        None.

        ### Postcondition:
        User-room assignment is approved and the user gets access to the group.

        ### Further Information:
        Room 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40300":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Updates room’s metadata.

        ### Precondition:
        User 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.

        ### Postcondition:
        Room's metadata is changed.

        ### Further Information:
        Notes are limited to **255** characters.

        ### Node naming convention:
        * Node (room, folder, file) names are limited to **150** characters.
        * Illegal names:  
        `'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)`
        * Illegal characters in names:  
        `'\\', '<','>', ':', '\"', '|', '?', '*', '/', 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: |-
                    
                    * [-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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-41200":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Configure a room.

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        Room's configuration is changed.

        ### Further Information:
        Provided (or default) classification is taken from room when file gets uploaded without any classification.  

        To set `adminIds` or `adminGroupIds` the `inheritPermissions` value has to be `false`. Otherwise use:
        * `PUT /nodes/rooms/{room_id}/groups`
        * `PUT /nodes/rooms/{room_id}/users `  

        APIs.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-40756":
                  description: |-
                    
                    * [-40756] Invalid classification code
                  summary: Invalid classification code
                  value:
                    code: 400
                    debugInfo: Invalid classification code
                    errorCode: -40756
                    message: Bad Request
                "-41200":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Activates the client-side encryption for a room.

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        Encryption of room is activated.

        ### Further Information:
        Only empty rooms at the top level may be encrypted.  
        This 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Retrieve syslog (audit log) events related to a room.

        ### Precondition:
        Requires <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions on that room.

        ### Postcondition:
        List of events is returned.

        ### Further Information:
        Output may be limited to a certain number of entries.  
        Please use filter criteria and paging.

        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `time:desc`  
        Sort by `time` descending (default sort option).

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `time` | Event timestamp |

        </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.

            Maximum 500.

             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 

            e.g. `2015-12-31T23:59:00`
          in: query
          name: date_start
          required: false
          schema:
            type: string
        - description: |-
            Filter events until given date 

            e.g. `2015-12-31T23:59:00`
          in: query
          name: date_end
          required: false
          schema:
            type: string
        - description: |-
            Operation ID 

            cf. `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:

            * `0` - Success

            * `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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-80024] Invalid range parameters
                  summary: Invalid range parameters
                  value:
                    code: 400
                    debugInfo: Invalid range parameters
                    errorCode: -80024
                    message: Bad Request
                "-80026":
                  description: |-
                    
                    * [-80026] Invalid operation ID
                  summary: Invalid operation ID
                  value:
                    code: 400
                    debugInfo: Invalid operation ID
                    errorCode: -80026
                    message: Bad Request
                "-80027":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Revoke granted groups from room.

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        Group's permissions are revoked.

        ### Further Information:
        Batch 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of groups that are and / or can be granted to the room.

        ### Precondition:
        Any permissions on target room.

        ### Postcondition:
        List of groups is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `isGranted:eq:false|name:cn:searchString`  
        Get all groups that are **NOT** granted to this room **AND** whose name is like `searchString`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `name` | Group name filter | `cn` | Group name contains value. | `search String` |
        | `groupId` | Group ID filter | `eq` | Group ID equals value. | `positive Integer` |
        | `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` |
        | `permissionsManage` | Filter the groups that do (not) have `manage` permissions in this room. | `eq` |  | `true or false` |
        | `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` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:desc`  
        Sort by `name` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `name` | Group name |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        All existing group permissions will be overwritten.

        ### Precondition:
        User 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.

        ### Postcondition:
        Group's permissions are changed.

        ### Further Information:
        Batch function.  
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80025":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Add guest users to a room

        ### Precondition:
        User 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.
        <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.


        ### Postcondition:
        New or existing Guest-Users now have guest-permissions for this room

        ### Further Information:
        Batch 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80009] Invalid email address
                  summary: Invalid email address
                  value:
                    code: 400
                    debugInfo: Invalid email address
                    errorCode: -80009
                    message: Bad Request
                "-80064":
                  description: |-
                    
                    * [-80064] Policy Violation
                  summary: Policy Violation
                  value:
                    code: 400
                    debugInfo: Policy Violation
                    errorCode: -80064
                    message: Bad Request
                "-80068":
                  description: |-
                    
                    * [-80068] Invalid Permission
                  summary: Invalid Permission
                  value:
                    code: 400
                    debugInfo: Invalid Permission
                    errorCode: -80068
                    message: Bad Request
                "-80069":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Delete room rescue key pair.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        Key pair is removed (cf. further information below).

        ### Further Information:
        Please set a new room rescue key pair first and re-encrypt file keys with it.  
        If no version is set, deleted key pair with lowest preference value.  
        Although, `version` **SHOULD** be set.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve the room rescue key pair.

        ### Precondition:
        User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in that room.

        ### Postcondition:
        Key pair is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Set room rescue key pair.

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        Key pair is set.

        ### Further Information:
        Room 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve all room rescue key pairs to allow migrating room-rescue-key-encrypted file keys.

        ### Precondition:
        User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in that room.

        ### Postcondition:
        List of key pairs is returned.

        ### Further Information:
        In 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.

        This API allows to retrieve both key pairs, in contrast to `GET /nodes/rooms/{room_id}/keypair`, which only delivers the preferred one.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Create room rescue key pair and preserve copy of old private key.

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        Room rescue key pair is created.  
        Copy of old private key is preserved.

        ### Further Information:
        You can submit your old private key, encrypted with your current password.  
        This 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve the room policies:
        * `defaultExpirationPeriod`

        ### Precondition:
        User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in that room.

        ### Postcondition:
        Room Policies returned.

        ### Further Information:
        `defaultExpirationPeriod`: Default policy room expiration period in seconds.
        All existing and future files in a room will have their expiration date set to this period after their respective upload.
        Existing files can be set to expire earlier afterwards.
        `0` means no default expiration policy will be enforced. 


      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve the room policies:
        * `defaultExpirationPeriod`

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        Room policy is set.

        ### Further Information:
        `defaultExpirationPeriod`: Default policy room expiration period in seconds.
        All existing and future files in a room will have their expiration date set to this period after their respective upload.
        Existing files can be set to expire earlier afterwards.
        `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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of S3 tags assigned to a room.

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        List of assigned S3 tags is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-90029":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-90030] S3 storage disabled
                  summary: S3 storage disabled
                  value:
                    code: 412
                    debugInfo: S3 storage disabled
                    errorCode: -90030
                    message: Precondition Failed
                "-90032":
                  description: |-
                    
                    * [-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>

        ### Description:  
        Set S3 tags to a room.

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        Provided S3 tags are assigned to a room.

        ### Further Information:
        Every request overrides current S3 tags.  
        Mandatory 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-90029":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-90030] S3 storage disabled
                  summary: S3 storage disabled
                  value:
                    code: 412
                    debugInfo: S3 storage disabled
                    errorCode: -90030
                    message: Precondition Failed
                "-90032":
                  description: |-
                    
                    * [-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:  
        Revoke granted users from room.

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        User's permissions are revoked.

        ### Further Information:
        Batch 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of users that are and / or can be granted to the room.

        ### Precondition:
        Any permissions on target room.

        ### Postcondition:
        None.

        ### Further Information:
        List of users is returned.

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        > `permissionsManage:eq:true|user:cn:searchString`  
        Get all users that have `manage` permissions to this room **AND** whose (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) is like `searchString`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `user` | User filter | `cn` | User contains value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`). | `search String` |
        | `userId` | User ID filter | `eq` | User ID equals value. | `positive Integer` |
        | `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` |
        | `permissionsManage` | Filter the users that do (not) have `manage` permissions in this room. | `eq` |  | `true or false` |
        | `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` |
        | `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> |

        </details>

        ### Deprecated filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | <del>`displayName`</del> | User display name filter (use `user` filter) | `cn` | User display name contains value (`firstName` **OR** `lastName` **OR** `email`). | `search String` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `user:desc`  
        Sort by `user` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | **`user`** | User - sort by `firstName`, `lastName`, `username`, `email` (in this order) |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        All existing user permissions will be overwritten.

        ### Precondition:
        User 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.

        ### Postcondition:
        User's permissions are changed.

        ### Further Information:
        Batch 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80068":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Get a list of webhooks for the room scope with their assignment status.

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        List of webhooks is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `isAssigned:eq:true`  
        Get a list of assigned webhooks to the room.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | **`isAssigned`** | Assigned/unassigned webhooks filter | `eq` |  | `true or false` |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Handle room webhook assignments.

        ### Precondition:
        User needs to be a <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Room Administrator</span>.

        ### Postcondition:
        List of webhooks is returned.

        ### Further Information:
        None.

        ### Available event types:

        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Name | Description | Scope |
        | :--- | :--- | :--- |
        | **`downloadshare.created`** | Triggered when a new download share is created in affected room | Node Webhook |
        | **`downloadshare.deleted`** | Triggered when a download share is deleted in affected room | Node Webhook |
        | **`downloadshare.used`** | Triggered when a download share is utilized in affected room | Node Webhook |
        | **`uploadshare.created`** | Triggered when a new upload share is created in affected room | Node Webhook |
        | **`uploadshare.deleted`** | Triggered when a upload share is deleted in affected room | Node Webhook |
        | **`uploadshare.used`** | Triggered when a new file is uploaded via the upload share in affected room | Node Webhook |
        | **`file.created`** | Triggered when a new file is uploaded in affected room | Node Webhook |
        | **`folder.created`** | Triggered when a new folder is created in affected room | Node Webhook |
        | **`room.created`** | Triggered when a new room is created (in affected room) | Node Webhook |
        | **`file.deleted`** | Triggered when a file is deleted in affected room | Node Webhook |
        | **`folder.deleted`** | Triggered when a folder is deleted in affected room | Node Webhook |
        | **`room.deleted`** | Triggered when a room is deleted in affected room | Node Webhook |

        </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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80010] Invalid URL
                  summary: Invalid URL
                  value:
                    code: 400
                    debugInfo: Invalid URL
                    errorCode: -80010
                    message: Bad Request
                "-80060":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-91000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Provides a flat list of file system nodes (rooms, folders or files) of a given parent that are accessible by the current user.

        ### Precondition:
        Authenticated 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`).

        ### Postcondition:
        List of nodes is returned.

        ### Further Information:  
        Output is limited to **500** entries.  
        For more results please use filter criteria and paging (`offset` + `limit`).  
        `EncryptionInfo` is **NOT** provided.  
        Wildcard character is the asterisk character: `*`

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `type:eq:file|createdAt:ge:2015-01-01`  
        Get nodes where type equals `file` **AND** file creation date is **>=** `2015-01-01`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME`            | Filter Description                | `OPERATOR` | Operator Description                                                                                                                                                                                                                                                                | `VALUE` |
        |:------------------------|:----------------------------------| :--- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- |
        | `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> |
        | `fileType`              | File type filter (file extension) | `cn, eq` | File type contains / equals value.                                                                                                                                                                                                                                                  | `search String` |
        | `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> |
        | `createdBy`             | Creator login filter              | `cn, eq` | Creator login contains / equals value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`).                                                                                                                                                                             | `search String` |
        | `createdById`           | Creator ID filter                 | `eq` | Creator ID equals value.                                                                                                                                                                                                                                                            | `positive Integer  or -1 for external user` |
        | `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)` |
        | `updatedBy`             | Last modifier login filter        | `cn, eq` | Last modifier login contains / equals value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`).                                                                                                                                                                       | `search String` |
        | `updatedById`           | Last modifier ID filter           | `eq` | Modifier ID equals value.                                                                                                                                                                                                                                                           | `positive Integer or -1 for external user` |
        | `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)` |
        | `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)` |
        | `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` |
        | `isFavorite`            | Favorite filter                   | `eq` |                                                                                                                                                                                                                                                                                     | `true or false` |
        | `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` |
        | `parentPath`            | Parent path                       | `cn, eq` | Parent path contains / equals  value.                                                                                                                                                                                                                                               | `search String` |
        | `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)` |
        | `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)` |
        | `referenceId`           | Reference ID filter               | `eq` | Reference ID equals value.                                                                                                                                                                                                                                                          | `Integer ` |
        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:desc|size:asc`  
        Sort by `name` descending **AND** `size` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `name` | Node name |
        | `createdAt` | Creation date |
        | `createdBy` | Creator first name, last name |
        | `updatedAt` | Last modification date |
        | `updatedBy` | Last modifier first name, last name |
        | `fileType` | File type (extension) |
        | `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |
        | `size` | Node size |
        | `cntDeletedVersions` | Number of deleted versions of this file / folder (**NOT** recursive; for files and folders only) |
        | `type` | Node type (room, folder, file) |
        | `parentPath` | Parent path |
        | `timestampCreation` | Creation timestamp |
        | `timestampModification` | Modification timestamp |

        </details>

        ### Deprecated sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | <del>`cntChildren`</del> | Number of direct children (**NOT** recursive; for rooms and folders only) |

        </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)

            * `-1` - full tree

            * `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.

            Only rooms and folders can be parents.

            Parent 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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Create a download URL to retrieve several files in one ZIP archive.

        ### Precondition:
        User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in parent room.

        ### Postcondition:
        Download URL is generated and returned.

        ### Further Information:
        The token is necessary to access `downloads` resources.  
        ZIP 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Download multiple files in a ZIP archive.

        ### Precondition:
        User 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.

        ### Postcondition:
        Stream is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete node (room, folder or file).

        ### Precondition:
        Authenticated 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).

        ### Postcondition:
        Node gets deleted.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-10006] User is not authorized to perform this operation
                  summary: User is not authorized to perform this operation
                  value: |-
                    {
                      "code": 403,
                      "message": "Forbidden",
                      "debugInfo": "User is not authorized to perform this operation",
                      "errorCode": -10006,
                      "errorInfos": {
                        "conflictNodes": [
                          {
                            "nodeId": #,
                            "name": "null",
                            "errorCode": null,
                            "errorMessage": null
                          }
                        ]
                      }
                    }
                "-70020":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Get node (room, folder or file).

        ### Precondition:
        User 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.

        ### Postcondition:
        Requested node is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Get comments for a specific node.

        ### Precondition:
        User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions on the node.

        ### Postcondition:
        List with comments (sorted by `createdAt` timestamp) is returned.

        ### Further Information:
        An empty list is returned if no comments were found.  
        Output is limited to **500** entries.  
        For more results please use filter criteria and paging (`offset` + `limit`). 
      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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Create a comment for a specific node.

        ### Precondition:
        User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions on the node.

        ### Postcondition:
        Comment is created.

        ### Further Information:
        Maximum 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Copies nodes (folder, file) to another parent.

        ### Precondition:
        Authenticated 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.

        ### Postcondition:
        Nodes are copied to target parent.

        ### Further Information:
        Nodes **MUST** be in same source parent.  
        **Rooms **CANNOT** be copied.**

        Download share id (if exists) gets changed if:
        - node with the same name exists in the target container
        - `resolutionStrategy` is `overwrite`
        - `keepShareLinks` is `true`

        ### Node naming convention:
        * Node (room, folder, file) names are limited to **150** characters.
        * Illegal names:  
        `'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)`
        * Illegal characters in names:  
        `'\\', '<','>', ':', '\"', '|', '?', '*', '/', leading '-', trailing '.' `
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-41050":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40010] Container cannot be overwritten
                  summary: Container cannot be overwritten
                  value:
                    code: 409
                    debugInfo: Container cannot be overwritten
                    errorCode: -40010
                    message: Conflict
                "-41001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Empty a recycle bin.

        ### Precondition:
        User 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.

        ### Postcondition:
        All files in the recycle bin are permanently removed.

        ### Further Information:
        Actually removes the previously deleted files from the system.  
        **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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80065":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of deleted nodes in a recycle bin.

        ### Precondition:
        User 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.

        ### Postcondition:
        List of deleted nodes is returned.

        ### Further Information:
        Only room IDs are accepted as parent ID since only rooms may have a recycle bin.

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `type:eq:file:folder|name:cn:searchString_1|parentPath:cn:searchString_2`  
        Get deleted nodes where type equals (`file` **OR** `folder`) **AND** deleted node name containing `searchString_1` **AND** deleted node parent path containing `searchString 2`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `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> |
        | `name` | Node name filter | `cn` | Node name contains value. | `search String` |
        | `parentPath` | Parent path filter | `cn` | Parent path contains value. | `search String` |
        | `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)` |
        | `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)` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.  
        Nodes are sorted by type first, then by sent sort string.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:desc|timestampCreation:asc`  
        Sort by `name` descending **AND** `timestampCreation` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `name` | Node name |
        | `cntVersions` | Number of deleted versions of this file |
        | `firstDeletedAt` | First deleted version |
        | `lastDeletedAt` | Last deleted version |
        | `parentPath` | Parent path of deleted node |
        | `timestampCreation` | Creation timestamp |
        | `timestampModification` | Modification timestamp |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-80024] Invalid range parameters
                  summary: Invalid range parameters
                  value:
                    code: 400
                    debugInfo: Invalid range parameters
                    errorCode: -80024
                    message: Bad Request
                "-80065":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve all deleted versions of a node.

        ### Precondition:
        User 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.

        ### Postcondition:
        List of deleted versions of a node is returned.

        ### Further Information:
        The node is identified by three parameters:
        * parent ID
        * name
        * type (file, folder).

        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `expireAt:desc|size:asc`  
        Sort by `expireAt` descending **AND** `size` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `expireAt` | Expiration date |
        | `accessedAt` | Last access date |
        | `size` | Node size |
        | `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |
        | `createdAt` | Creation date |
        | `createdBy` | Creator first name, last name |
        | `updatedAt` | Last modification date |
        | `updatedBy` | Last modifier first name, last name |
        | `deletedAt` | Deleted date |
        | `deletedBy` | Deleter first name, last name |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Unmarks a node (room, folder or file) as favorite.

        ### Precondition:
        Authenticated 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`).

        ### Postcondition:
        A node gets unmarked as favorite.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Marks a node (room, folder or file) as favorite.

        ### Precondition:
        Authenticated 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`).

        ### Postcondition:
        A node gets marked as favorite.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Moves nodes (folder, file) to another parent.

        ### Precondition:
        Authenticated 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.

        ### Postcondition:
        Nodes are moved to target parent.

        ### Further Information:
        Nodes **MUST** be in same source parent.  
        **Rooms **CANNOT** be moved.**

        Download share id (if exists) gets changed if:
        - node with the same name exists in the target container
        - `resolutionStrategy` is `overwrite`
        - `keepShareLinks` is `true`

        ### Node naming convention:
        * Node (room, folder, file) names are limited to **150** characters.
        * Illegal names:  
        `'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)`
        * Illegal characters in names:  
        `'\\', '<','>', ':', '\"', '|', '?', '*', '/', leading '-', trailing '.' `
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-41050":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40010] Container cannot be overwritten
                  summary: Container cannot be overwritten
                  value:
                    code: 409
                    debugInfo: Container cannot be overwritten
                    errorCode: -40010
                    message: Conflict
                "-41001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Requests a list of node ancestors, sorted from root node to the node's direct parent node.

        ### Precondition:
        User is allowed to browse through the node tree until the requested node.

        ### Postcondition:
        List of parent nodes is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Receive a list of customers.

        ### Precondition:
        Authentication with `X-Sds-Service-Token` required.

        ### Postcondition:
        List of customers is returned.

        ### Further Information:
        This list returns a maximum of **1000** entries.  

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `trialDaysLeft:le:10|userMax:le:100`  
        Get all customers with `10` trial days left **AND** user maximum **<=** `100`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `id` | Customer ID filter | `eq` | Customer ID equals value. | `positive Integer` |
        | `companyName` | Company name filter | `cn` | Company name contains value. | `search String` |
        | `customerContractType` | Customer contract type filter | `eq` | Customer contract type equals value. | <ul><li>`demo`</li><li>`free`</li><li>`pay`</li></ul> |
        | `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` |
        | `providerCustomerId` | Provider Customer ID filter | `cn, eq` | Provider Customer ID contains / equals value. | `search String` |
        | `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` |
        | `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` |
        | `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` |
        | `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` |
        | `isLocked` | Lock status filter | `eq` |  | `true or false` |
        | `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)` |
        | `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)` |
        | `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)` |
        | `userLogin` | User login filter | `eq` | User login name equals value.<br>Search user all logins e.g. `basic`, `active_directory`, `radius`. | `search String` |
        | `attributeKey` | Customer attribute key filter | `eq`, `nex` | Customer attribute key equals value / Customer attribute does **NOT** exist at customer | `search String` |
        | `attributeValue` | Customer attribute value filter | `eq` | Customer attribute value equals value. | `search String` |

        </details>

        ### Deprecated filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | <del>`activationCode`</del> | Activation code filter | `cn, eq` | Activation code contains / equals value. | `search String` |
        | <del>`lockStatus`</del> | Lock status filter | `eq` |  | <ul><li>`0` - unlocked</li><li>`1` - locked</li></ul> |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `companyName:desc|userUsed:asc`  
        Sort by `companyName` descending **AND** `userUsed` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `companyName` | Company name |
        | `customerContractType` | Customer contract type |
        | `trialDaysLeft` | Number of remaining trial days (demo customers) |
        | `providerCustomerId` | Provider Customer ID |
        | `quotaMax` | Maximum quota |
        | `quotaUsed` | Currently used quota |
        | `userMax` | Maximum user number |
        | `userUsed` | Number of registered users |
        | `isLocked` | Lock status of customer |
        | `createdAt` | Creation date |
        | `updatedAt` | Last modification date |
        | `lastLoginAt` | Last login date of any user of this customer |

        </details>

        ### Deprecated sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | <del>`lockStatus`</del> | Lock status of customer |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Create a new customer.

        ### Precondition:
        Authentication with `X-Sds-Service-Token` required.  

        ### Postcondition:
        A new customer is created.

        ### Further Information:
        If 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`).  
        Max quota has to be at least `1 MB` (= `1.048.576 B`).

        If `basic` authentication is enabled, the first administrator will get `basic` authentication by default.  
        To create a first administrator without `basic` authentication it **MUST** be disabled explicitly.  

        Forbidden characters in passwords: [`&`, `'`, `<`, `>`]

        ### Authentication Method Options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Authentication Method | Option Key | Option Value |
        | :--- | :--- | :--- |
        | `basic` / `sql` | `username` | Unique user identifier |
        | `active_directory` | `ad_config_id` (optional) | Active Directory configuration ID |
        |  | `username` | Active Directory username according to authentication setting `userFilter` |
        | `radius` | `username` | RADIUS username |
        | `openid` | `openid_config_id` (optional) | OpenID Connect configuration ID |
        |  | `username` | OpenID Connect username according to authentication setting `mappingClaim` |

        </details>
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-10100] Invalid authentication method
                  summary: Invalid authentication method
                  value:
                    code: 400
                    debugInfo: Invalid authentication method
                    errorCode: -10100
                    message: Bad Request
                "-10102":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80009] Invalid email address
                  summary: Invalid email address
                  value:
                    code: 400
                    debugInfo: Invalid email address
                    errorCode: -80009
                    message: Bad Request
                "-80015":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete a customer.

        ### Precondition:
        Authentication with `X-Sds-Service-Token` required.

        ### Postcondition:
        Customer is deleted.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Receive details of a selected customer.

        ### Precondition:
        Authentication with `X-Sds-Service-Token` required.

        ### Postcondition:
        Customer details are returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Change selected attributes of a customer.

        ### Precondition:
        Authentication with `X-Sds-Service-Token` required.

        ### Postcondition:
        Selected attributes of customer are updated.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of customer attributes.

        ### Precondition:
        Authentication with `X-Sds-Service-Token` required.  
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read all customers</span> required.

        ### Postcondition:
        List of attributes is returned.

        ### Further Information:

        ### Filtering:
        Filters are case insensitive.  
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `key:cn:searchString_1|value:cn:searchString_2`  
        Filter by attribute key contains `searchString_1` **AND** attribute value contains `searchString_2`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `key` | Customer attribute key filter | `cn, eq, sw` | Attribute key contains / equals / starts with value. | `search String` |
        | `value` | Customer attribute value filter | `cn, eq, sw` | Attribute value contains / equals / starts with value. | `search String` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `key:asc|value:desc`  
        Sort by `key` ascending **AND** by `value` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `key` | Customer attribute key |
        | `value` | Customer attribute value |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Set custom customer attributes.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> required.

        ### Postcondition:
        Custom customer attributes gets set.

        ### Further Information:
        Batch function.  
        All existing customer attributes will be deleted.  

        * Allowed characters for keys are: `[a-zA-Z0-9_-]`  
        * Characters are **case-insensitive**.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Add or edit custom customer attributes.
        <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/>

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> required.

        ### Postcondition:
        Custom customer attributes get added or edited.

        ### Further Information:
        Batch function.  
        If an entry exists before, it will be overwritten.  

        * Allowed characters for keys are: `[a-zA-Z0-9_-]`  
        * 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Delete a custom customer attribute.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> required.

        ### Postcondition:
        Custom customer attribute gets deleted.

        ### Further Information:
        * Allowed characters for keys are: `[a-zA-Z0-9_-]`  
        * 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80023":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-70550] Attribute not found
                  summary: Attribute not found
                  value:
                    code: 404
                    debugInfo: Attribute not found
                    errorCode: -70550
                    message: Not Found
                "-90103":
                  description: |-
                    
                    * [-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:  
        Receive a list of users associated with a certain customer.

        ### Precondition:
        Authentication with `X-Sds-Service-Token` required.

        ### Postcondition:
        List of customer users is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Except for `login`, `firstName` and  `lastName` - these are connected via logical disjunction (**OR**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `login:cn:searchString_1|firstName:cn:searchString_2|lockStatus:eq:2`  
        Filter users by login contains `searchString_1` **OR** firstName contains `searchString_2` **AND** those who are **NOT** locked.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `email` | Email filter | `eq`, `cn` | Email contains value. | `search String` |
        | `userName` | User name filter | `eq`, `cn` | UserName contains value. | `search String` |
        | `firstName` | User first name filter | `cn` | User first name contains value. | `search String` |
        | `lastName` | User last name filter | `cn` | User last name contains value. | `search String` |
        | `isLocked` | User lock status filter | `eq` |  | `true or false` |
        | `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` |
        | `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)` |
        | `phone` | Phone filter | `eq` | Phone equals value. | `search String` |
        | `isEncryptionEnabled` | Encryption status filter<ul><li>client-side encryption</li><li>private key possession</li></ul> | `eq` |  | `true or false` |
        | `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> |

        </details>

        ### Deprecated filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | <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> |
        | <del>`login`</del> |  User login filter | `cn` | User login contains value. | `search String` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `firstName:asc|lastLoginSuccessAt:desc`  
        Sort by `firstName` ascending **AND** by `lastLoginSuccessAt` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `userName` | User name |
        | `email` | User email |
        | `firstName` | User first name |
        | `lastName` | User last name |
        | `isLocked` | User lock status |
        | `lastLoginSuccessAt` | Last successful login date |
        | `expireAt` | Expiration date |
        | `createdAt` | Creation date |

        </details>

        ### Deprecated sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | <del>`gender`</del> | Gender |
        | <del>`lockStatus`</del> | User lock status |
        | <del>`login`</del> | User login |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Get a list of webhooks for the tenant scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.

        ### Postcondition:
        List of webhooks is returned.

        ### Further Information:  
        Output is limited to **500** entries.  
        For more results please use filter criteria and paging (`offset` + `limit`).  
        `EncryptionInfo` is **NOT** provided.  
        Wildcard character is the asterisk character: **`*`**

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:cn:goo|createdAt:ge:2015-01-01`  
        Get webhooks where name contains `goo` **AND** webhook creation date is **>=** `2015-01-01`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | **`id`** | Webhook id filter | `eq` | Webhook id equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**). |`positive number`|
        | **`name`** | Webhook type name| `cn, eq` | Webhook name contains / equals value. | `search String` |
        | **`isEnabled`** | Webhook isEnabled filter | `eq` |  | `true or false` |
        | **`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)` |
        | **`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)` |
        | **`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)` |
        | **`lastFailStatus`** | Failure status filter | `eq` | Last HTTP status code. Set when a webhook is auto-disabled due to repeated delivery failures |`positive number`|

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:desc|isEnabled:asc`  
        Sort by `name` descending and `isEnabled` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | **`id`** | Webhook id |
        | **`name`** | Webhook name |
        | **`isEnabled`** | Webhook isEnabled |
        | **`createdAt`** | Creation date |
        | **`updatedAt`** | Last modification date |
        | **`expiration`** | Expiration date |

        </details>
      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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Create a new webhook for the tenant scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.

        ### Postcondition:
        Webhook is created for given event types.

        ### Further Information:
        URL must begin with the `HTTPS` scheme.
        Webhook names are limited to 150 characters.

        ### Available event types:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Name | Description | Scope |
        | :--- | :--- | :--- |
        | **`customer.created`** | Triggered when a new customer is created | Tenant Webhook |
        | **`customer.deleted`** | Triggered when a user is deleted | Tenant Webhook |
        | **`webhook.expiring`** | Triggered 30/20/10/1 days before a webhook expires |  Tenant Webhook |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80010] Invalid URL
                  summary: Invalid URL
                  value:
                    code: 400
                    debugInfo: Invalid URL
                    errorCode: -80010
                    message: Bad Request
                "-80060":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Get a list of available event types.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.

        ### Postcondition:
        List of available event types is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Delete a webhook for the tenant scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.

        ### Postcondition:
        Webhook is deleted.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Get a specific webhook for the tenant scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.

        ### Postcondition:
        Webhook is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Update an existing webhook for the tenant scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.

        ### Postcondition:
        Webhook is updated.

        ### Further Information:
        URL must begin with the `HTTPS` scheme.
        Webhook names are limited to 150 characters.

        ### Available event types:

        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Name | Description | Scope |
        | :--- | :--- | :--- |
        | **`customer.created`** | Triggered when a new customer is created | Tenant Webhook |
        | **`customer.deleted`** | Triggered when a user is deleted | Tenant Webhook |
        | **`webhook.expiring`** | Triggered 30/20/10/1 days before a webhook expires |  Tenant Webhook |

        </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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80010] Invalid URL
                  summary: Invalid URL
                  value:
                    code: 400
                    debugInfo: Invalid URL
                    errorCode: -80010
                    message: Bad Request
                "-80060":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Reset the lifetime of a webhook for the tenant scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; manage webhook</span> required.

        ### Postcondition:
        Lifetime of the webhook is reset.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve the public information of a Download Share.

        ### Precondition:
        None.

        ### Postcondition:
        Download Share information is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-50000":
                  description: |-
                    
                    * [-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>

        ### Description:
        Check password for a public Download Share

        ### Precondition:
        None.

        ### Postcondition:
        None.

        ### Further Information:
        None.
      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:
        Generate a download URL to retrieve a shared file.

        ### Precondition:
        None.

        ### Postcondition:
        Download URL and token are generated and returned.

        ### Further Information:
        Use `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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Download a file (or zip archive if target is a folder or room).

        ### Precondition:
        Valid download token.

        ### Postcondition:
        Stream is returned.

        ### Further Information:
        Range requests are supported.  
        Range 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 

            e.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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-50000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Download a file (or zip archive if target is a folder or room).

        ### Precondition:
        Valid download token.

        ### Postcondition:
        Stream is returned.

        ### Further Information:
        Range requests are supported.  
        Range 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 

            e.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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-50000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Provides information about the desired Upload Share.

        ### Precondition:
        Only `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>

        ### Postcondition:
        None.

        ### Further Information:
        If no password is set, the returned information is reduced to the following attributes (if available):

        * `name`
        * `createdAt`
        * `isProtected`
        * `isEncrypted`
        * `showUploadedFiles`
        * `userUserPublicKeyList` (if parent is end-to-end encrypted)

        Only if the password is transmitted as `X-Sds-Share-Password` header, all values are returned.
      operationId: requestPublicUploadShareInfo
      parameters:
        - description: |-
            Upload share password. Should be base64-encoded.

            Plain 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Create a new upload channel.

        ### Precondition:
        None.

        ### Postcondition:
        Upload channel is created and corresponding upload URL, token & upload ID are returned.

        ### Further Information:
        Use `uploadUrl` the upload `token` is deprecated.  

        Please provide the size of the intended upload so that the quota can be checked in advanced and no data is transferred unnecessarily.

        ### Node naming convention:
        * Node (room, folder, file) names are limited to **150** characters.
        * Illegal names:  
        `'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)`
        * Illegal characters in names:  
        `'\\', '<','>', ':', '\"', '|', '?', '*', '/', leading '-', trailing '.' `
      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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-50505":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Abort (chunked) upload via Upload Share.

        ### Precondition:
        Valid Upload ID.

        ### Postcondition:
        Aborts upload and invalidates upload ID / token.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-50501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Request status of a S3 file upload.

        ### Precondition:
        An 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).

        ### Postcondition:
        Status of S3 multipart upload request is returned.

        ### Further Information:
        None.

        ### Possible errors:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Http Status | Error Code | Description |
        | :--- | :--- | :--- |
        | `400 Bad Request` | `-80000` | Mandatory fields cannot be empty |
        | `400 Bad Request` | `-80001` | Invalid positive number |
        | `400 Bad Request` | `-80002` | Invalid number |
        | `400 Bad Request` | `-40001` | (Target) room is not encrypted |
        | `400 Bad Request` | `-40755` | Bad file name |
        | `400 Bad Request` | `-40763` | File key must be set for an upload into encrypted room |
        | `400 Bad Request` | `-50506` | Exceeds the number of files for this Upload Share |
        | `403 Forbidden` |  | Access denied |
        | `404 Not Found` | `-20501` | Upload not found |
        | `404 Not Found` | `-40000` | Container not found |
        | `404 Not Found` | `-41000` | Node not found |
        | `404 Not Found` | `-70501` | User not found |
        | `409 Conflict` | `-40010` | Container cannot be overwritten |
        | `409 Conflict` |  | File cannot be overwritten |
        | `500 Internal Server Error` |  | System Error |
        | `502 Bad Gateway` |  | S3 Error |
        | `502 Insufficient Storage` | `-50504` | Exceeds the quota for this Upload Share |
        | `502 Insufficient Storage` | `-40200` | Exceeds the free node quota in room |
        | `502 Insufficient Storage` | `-90200` | Exceeds the free customer quota |
        | `502 Insufficient Storage` | `-90201` | Exceeds the free customer physical disk space |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-90034":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Chunked upload of files via Upload Share.

        ### Precondition:
        Valid upload ID.

        ### Postcondition:
        Chunk of file is uploaded.

        ### Further Information:
        Chunked uploads (range requests) are supported.

        Following `Content-Types` are supported by this API:
        * `multipart/form-data`
        * provided `Content-Type`  

        For both file upload types set the correct `Content-Type` header and body.  

        ### Examples:  

        * `multipart/form-data`
        ```
        POST /api/v4/public/shares/uploads/{access_key}{upload_id} HTTP/1.1

        Header:
        ...
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
        ...

        Body:
        ------WebKitFormBoundary7MA4YWxkTrZu0gW
        Content-Disposition: form-data; name="file"; filename="file.txt"
        Content-Type: text/plain

        Content of file.txt
        ------WebKitFormBoundary7MA4YWxkTrZu0gW--
        ```

        * any other `Content-Type`  
        ```
        POST /api/v4/public/shares/uploads/{access_key}{upload_id} HTTP/1.1

        Header:
        ...
        Content-Type: { ... }
        ...

        Body:
        raw content
        ```
      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 

            e.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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-50501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Finalize (chunked) upload via Upload Share.

        ### Precondition:
        Valid upload ID.  
        Only 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>

        ### Postcondition:
        Finalizes upload.

        ### Further Information:
        Chunked uploads (range requests) are supported.  

        Please ensure that all chunks have been transferred correctly before finishing the upload.  
        If 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.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-50501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Finishes a S3 file upload and closes the corresponding upload channel.

        ### Precondition:
        Valid upload ID.  
        Only 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>

        ### Postcondition:
        Upload channel is closed. S3 multipart upload request is completed.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-50501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-70501] User not found
                  summary: User not found
                  value:
                    code: 404
                    debugInfo: User not found
                    errorCode: -70501
                    message: Not Found
                "-90034":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Generate presigned URLs for S3 file upload.

        ### Precondition:
        Valid upload ID

        ### Postcondition:
        List of presigned URLs is returned.

        ### Further Information:
        The size for each part must be >= 5 MB, except for the last part.  
        The part number of the first part in S3 is 1 (not 0).  
        Use 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80046":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-90034":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Provides information about used third-party software dependencies.

        ### Precondition:
        None.

        ### Postcondition:
        List of the third-party software dependencies used by **DRACOON Core** (referred to as _"Server"_) is returned.

        ### Further Information:
        None.

      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:  
        Public software version information.

        ### Precondition:
        None.

        ### Postcondition:
        Sofware version information is returned.

        ### Further Information:
        The version of DRACOON Server consists of two components:
        * **API**
        * **Core** (referred to as _"Server"_)

        which 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:  
        Provides information about system.

        ### Precondition:
        None.

        ### Postcondition:
        System information is returned.

        ### Further Information:
        Authentication methods are sorted by **priority** attribute.  
        Smaller values have higher priority.  
        Authentication method with highest priority is considered as default.

        ### System information:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `languageDefault` | Defines which language should be default. | `ISO 639-1 code` |
        | `hideLoginInputFields` | Defines if login fields should be hidden. | `true or false` |
        | `s3Hosts` | List of available S3 hosts. | `String array` |
        | `s3EnforceDirectUpload` | Determines whether S3 direct upload is enforced or not. | `true or false` |
        | `useS3Storage` | Determines whether S3 Storage enabled and used. | `true or false` |

        </details>

        ### Authentication methods:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Authentication Method | Description |
        | :--- | :--- |
        | `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`. |
        | `active_directory` | **Active Directory** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their Active Directory credentials. |
        | `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. |
        | `openid` | **OpenID Connect** authentication globally allowed.This option **MUST** be activated to allow users to log in with their OpenID Connect identity. |
        | `hideLoginInputFields` | Determines whether input fields for login should be enabled | `true or false` |

        </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: |-
                    
                    * [-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:  
        Provides information about Active Directory authentication options.

        ### Precondition:
        None.

        ### Postcondition:
        Active Directory authentication options information is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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:  
        Provides information about OpenID Connect authentication options.

        ### Precondition:
        None.

        ### Postcondition:
        OpenID Connect authentication options information is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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:  
        Retrieve the actual server time.

        ### Precondition:
        None.

        ### Postcondition:
        Server time is returned.

        ### Further Information:
        None.
      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>

        ### Description:
        Retrieve a list of subscription scopes.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of scopes is returned.

        ### Further Information:
        None.
      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:
        Get user avatar.

        ### Precondition:
        Valid user ID and avatar UUID

        ### Postcondition:
        Avatar is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of all roles with assigned rights.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.

        ### Postcondition:
        List of roles with assigned rights is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Revoke granted group(s) from a role.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; grant permission on desired role</span> required.  
        For each role, at least one non-expiring user **MUST** remain who may grant the role.

        ### Postcondition:
        One or more groups will be removed from a role.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-71001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Get all groups with a specific role.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read groups</span> required.

        ### Postcondition:
        List of to the role assigned groups is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `isMember:eq:false|name:cn:searchString`  
        Get all groups that are **NOT** a member of that role **AND** whose name contains `searchString`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `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` |
        | `name` | Group name filter | `cn` | Group name contains value. | `search String` |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Assign group(s) to a role.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; grant permission on desired role</span> required.

        ### Postcondition:
        One or more groups will be added to a role.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-70501] User not found
                  summary: User not found
                  value:
                    code: 404
                    debugInfo: User not found
                    errorCode: -70501
                    message: Not Found
                "-71001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Revoke granted user(s) from a role.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; grant permission on desired role</span> required.  
        For each role, at least one non-expiring user **MUST** remain who may grant the role.

        ### Postcondition:
        One or more users will be removed from a role.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-70501] User not found
                  summary: User not found
                  value:
                    code: 404
                    debugInfo: User not found
                    errorCode: -70501
                    message: Not Found
                "-71001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Get all users with a specific role.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.

        ### Postcondition:
        List of users is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `isMember:eq:false|user:cn:searchString`  
        Get all users that are **NOT** member of that role **AND** whose (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) is like `searchString`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `user` | User filter | `cn` | User contains value (`firstName` **OR** `lastName` **OR** `email` **OR** `username`). | `search String` |
        | `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` |

        </details>

        ### Deprecated filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | <del>`displayName`</del> | User display name filter (use `user` filter) | `cn` | User display name contains value (`firstName` **OR** `lastName` **OR** `email`). | `search String` |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Assign user(s) to a role.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; grant permission on desired role</span> required.

        ### Postcondition:
        One or more users will be added to a role.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-70501] User not found
                  summary: User not found
                  value:
                    code: 404
                    debugInfo: User not found
                    errorCode: -70501
                    message: Not Found
                "-71001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve customer related settings. 

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read config</span> required.

        ### Postcondition:
        List of available settings is returned.

        ### Further Information:
        None.

        ### Configurable customer settings:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description                                                                                                                                                           | Value |
        | :--- |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- |
        | `homeRoomParentName` | Name of the container in which all user's home rooms are located.<br>`null` if `homeRoomsActive` is `false`.                                                          | `String` |
        | `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` |
        | `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` |


        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Set customer related settings.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128100; Config Manager</span> required.

        ### Postcondition:
        Provided settings are updated.

        ### Further Information:
        None.

        ### Configurable customer settings
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description                                                                                                                                                          | Value |
        | :--- |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- |
        | `homeRoomParentName` | Name of the container in which all user's home rooms are located.<br>`null` if `homeRoomsActive` is `false`.                                                         | `String` |
        | `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` |
        | `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` |

        </details>

        ### Node naming convention:
        * Node (room, folder, file) names are limited to **150** characters.
        * Illegal names:  
        `'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)`
        * Illegal characters in names:  
        `'\\', '<','>', ':', '\"', '|', '?', '*', '/', leading '-', trailing '.' `
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Remove the system rescue key pair.

        ### Precondition:
        * Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>
        * Existence of own key pair

        ### Postcondition:
        Key pair is removed (cf. further information below).

        ### Further Information:
        Please set a new system rescue key pair first and re-encrypt file keys with it.  
        If no version is set, deleted key pair with lowest preference value.  
        Although, `version` **SHOULD** be set.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve the system rescue key pair.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>

        ### Postcondition:
        Key pair is returned.

        ### Further Information:
        If more than one key pair exists the one with highest preference value is returned.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Set the system rescue key pair and activate client-side encryption for according customer.

        ### Precondition:
        * Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>
        * Existence of own key pair

        ### Postcondition:
        System rescue key pair is set and client-side encryption is enabled.

        ### Further Information:
        Sets the ability for this customer to encrypt rooms.  
        Once enabled on customer level, it **CANNOT** be unset.  
        On activation, a customer rescue key pair **MUST** be set.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve all system rescue key pairs to allow migrating system-rescue-key-encrypted file keys.

        ### Precondition:
        * Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>
        * Existence of own key pair

        ### Postcondition:
        List of key pairs is returned.

        ### Further Information:
        In the case of an algorithm migration of a system rescue key, 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.  

        This API allows to retrieve both key pairs, in contrast to `GET /settings/keypair`, which only delivers the preferred one.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Create system rescue key pair and preserve copy of old private key.

        ### Precondition:
        * Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span>
        * Existence of own key pair

        ### Postcondition:
        System rescue key pair is created.  
        Copy of old private key is preserved.

        ### Further Information:
        You can submit your old private key, encrypted with your current password.  
        This allows migrating file keys encrypted with your old key pair to the new one.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of configured notification channels.

        ### Precondition:
        Right _"change config"_ required.

        ### Postcondition:
        List of notification channels is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Toggle configured notification channels.

        ### Precondition:
        Right _"change config"_ required.

        ### Postcondition:
        Channel status is switched.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Get a list of webhooks for the customer scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.

        ### Postcondition:
        List of webhooks is returned.

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:cn:goo|createdAt:ge:2015-01-01`  
        Get webhooks where name contains `goo` **AND** webhook creation date is **>=** `2015-01-01`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | **`id`** | Webhook id filter | `eq` | Webhook id equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**). |`positive number`|
        | **`name`** | Webhook type name| `cn, eq` | Webhook name contains / equals value. | `search String` |
        | **`isEnabled`** | Webhook isEnabled filter | `eq` |  | `true or false` |
        | **`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)` |
        | **`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)` |
        | **`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)` |
        | **`lastFailStatus`** | Failure status filter | `eq` | Last HTTP status code. Set when a webhook is auto-disabled due to repeated delivery failures |`positive number`|

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:desc|isEnabled:asc`  
        Sort by `name` descending and `isEnabled` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | **`id`** | Webhook id |
        | **`name`** | Webhook name |
        | **`isEnabled`** | Webhook isEnabled |
        | **`createdAt`** | Creation date |
        | **`updatedAt`** | Last modification date |
        | **`expiration`** | Expiration date |

        </details>
      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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Create a new webhook for the customer scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.

        ### Postcondition:
        Webhook is created for given event types.

        ### Further Information:
        URL must begin with the `HTTPS` scheme.  
        Webhook names are limited to 150 characters.

        ### Available event types:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Name | Description | Scope |
        | :--- | :--- | :--- |
        | **`user.created`** | Triggered when a new user is created | Customer Admin Webhook |
        | **`user.deleted`** | Triggered when a user is deleted | Customer Admin Webhook |
        | **`user.locked`** | Triggered when a user gets locked | Customer Admin Webhook |
        |  |  |  |
        | **`webhook.expiring`** | Triggered 30/20/10/1 days before a webhook expires |  Customer Admin Webhook |
        |  |  |  |
        | **`downloadshare.created`** | Triggered when a new download share is created in affected room | Node Webhook |
        | **`downloadshare.deleted`** | Triggered when a download share is deleted in affected room | Node Webhook |
        | **`downloadshare.used`** | Triggered when a download share is utilized in affected room | Node Webhook |
        | **`uploadshare.created`** | Triggered when a new upload share is created in affected room | Node Webhook |
        | **`uploadshare.deleted`** | Triggered when a upload share is deleted in affected room | Node Webhook |
        | **`uploadshare.used`** | Triggered when a new file is uploaded via the upload share in affected room | Node Webhook |
        | **`file.created`** | Triggered when a new file is uploaded in affected room | Node Webhook |
        | **`folder.created`** | Triggered when a new folder is created in affected room | Node Webhook |
        | **`room.created`** | Triggered when a new room is created (in affected room) | Node Webhook |
        | **`file.deleted`** | Triggered when a file is deleted in affected room | Node Webhook |
        | **`folder.deleted`** | Triggered when a folder is deleted in affected room | Node Webhook |
        | **`room.deleted`** | Triggered when a room is deleted in affected room | Node Webhook |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80010] Invalid URL
                  summary: Invalid URL
                  value:
                    code: 400
                    debugInfo: Invalid URL
                    errorCode: -80010
                    message: Bad Request
                "-80060":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Get 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.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.

        ### Postcondition:
        List of available event types is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Delete a webhook for the customer scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.

        ### Postcondition:
        Webhook is deleted.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Get a specific webhook for the customer scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.

        ### Postcondition:
        Webhook is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Update an existing webhook for the customer scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.

        ### Postcondition:
        Webhook is updated.

        ### Further Information:
        URL must begin with the `HTTPS` scheme.
        Webhook names are limited to 150 characters.
        Webhook event types can not be changed from Customer Admin Webhook types to Node Webhook types and vice versa  

        ### Available event types:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Name | Description | Scope |
        | :--- | :--- | :--- |
        | **`user.created`** | Triggered when a new user is created | Customer Admin Webhook |
        | **`user.deleted`** | Triggered when a user is deleted | Customer Admin Webhook |
        | **`user.locked`** | Triggered when a user gets locked | Customer Admin Webhook |
        |  |  |  |
        | **`webhook.expiring`** | Triggered 30/20/10/1 days before a webhook expires |  Customer Admin Webhook |
        |  |  |  |
        | **`downloadshare.created`** | Triggered when a new download share is created in affected room | Node Webhook |
        | **`downloadshare.deleted`** | Triggered when a download share is deleted in affected room | Node Webhook |
        | **`downloadshare.used`** | Triggered when a download share is utilized in affected room | Node Webhook |
        | **`uploadshare.created`** | Triggered when a new upload share is created in affected room | Node Webhook |
        | **`uploadshare.deleted`** | Triggered when a upload share is deleted in affected room | Node Webhook |
        | **`uploadshare.used`** | Triggered when a new file is uploaded via the upload share in affected room | Node Webhook |
        | **`file.created`** | Triggered when a new file is uploaded in affected room | Node Webhook |
        | **`folder.created`** | Triggered when a new folder is created in affected room | Node Webhook |
        | **`room.created`** | Triggered when a new room is created (in affected room) | Node Webhook |
        | **`file.deleted`** | Triggered when a file is deleted in affected room | Node Webhook |
        | **`folder.deleted`** | Triggered when a folder is deleted in affected room | Node Webhook |
        | **`room.deleted`** | Triggered when a room is deleted in affected room | Node Webhook |

        </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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80010] Invalid URL
                  summary: Invalid URL
                  value:
                    code: 400
                    debugInfo: Invalid URL
                    errorCode: -80010
                    message: Bad Request
                "-80060":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Reset the lifetime of a webhook for the customer scope.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.

        ### Postcondition:
        Lifetime of the webhook is reset.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Functional Description:
        Delete multiple Download Shares.

        ### Precondition:
        User with _"manage download share"_ permissions on target nodes.

        ### Postcondition:
        Download Shares are deleted.

        ### Further Information:
        Only 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-60000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of Download Shares.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of available Download Shares is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical (**AND**). createdBy and updatedBy searches several user-related attributes.

        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:cn:searchString_1|createdBy:cn:searchString_2`
        Filter by file name contains `searchString_1` **AND** creator info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains `searchString_2`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `name` | Alias or node name filter | `cn` | Alias or node name contains value. | `search String` |
        | `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)` |
        | `createdBy` | Creator info filter | `cn, eq` | Creator info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains value. | `search String` |
        | `createdById` | Creator ID filter | `eq` | Creator ID equals value. | `positive Integer` |
        | `accessKey` | Share access key filter | `cn` | Share access key contains values. | `search String` |
        | `nodeId` | Source node ID | `eq` | Source node (room, folder, file) ID equals value. | `positive Integer` |
        | `updatedBy` | Modifier info filter | `cn, eq` | Modifier info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains value. | `search String` |
        | `updatedById` | Modifier ID filter | `eq` | Modifier ID equals value. | `positive Integer` |

        </details>

        ### Deprecated filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | <del>`userId`</del>  | Creator user ID | `eq` | Creator user ID equals value. Use `createdById` instead | `positive Integer` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:asc|expireAt:desc`  
        Sort by `name` ascending **AND** by `expireAt` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `name` | Alias or node name |
        | `notifyCreator` | Notify creator on every download |
        | `expireAt` | Expiration date |
        | `createdAt` | Creation date |
        | `createdBy` | Creator first name, last name |
        | `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |

        </details>
      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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Create a new Download Share.

        ### Precondition:
        User 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.

        ### Postcondition:
        Download Share is created.

        ### Further Information:

        If the target node is a room: subordinary rooms are excluded from a Download Share.

        * `name` is limited to **150** characters.
        * `notes` are limited to **255** characters.
        * `password` is limited to **1024** characters.

        Use `POST /shares/downloads/{share_id}/email` API for sending emails.  

        Forbidden characters in passwords: [`&`, `'`, `<`, `>`]

        Please keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters
        may 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80009] Invalid email address
                  summary: Invalid email address
                  value:
                    code: 400
                    debugInfo: Invalid email address
                    errorCode: -80009
                    message: Bad Request
                "-80023":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80024] Invalid range parameters
                  summary: Invalid range parameters
                  value:
                    code: 400
                    debugInfo: Invalid range parameters
                    errorCode: -80024
                    message: Bad Request
                "-80030":
                  description: |-
                    
                    * [-80030] SMS disabled
                  summary: SMS disabled
                  value:
                    code: 400
                    debugInfo: SMS disabled
                    errorCode: -80030
                    message: Bad Request
                "-80040":
                  description: |-
                    
                    * [-80040] Invalid phone number

                    Must 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: |-
                    
                    * [-80062] Invalid File key
                  summary: Invalid File key
                  value:
                    code: 400
                    debugInfo: Invalid File key
                    errorCode: -80062
                    message: Bad Request
                "-80064":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Update a list of existing Download Shares.

        ### Precondition:
        User 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.

        ### Postcondition:
        Download Shares are successfully updated.

        ### Further Information:
        Maximum 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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete a Download Share.

        ### Precondition:
        User 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.

        ### Postcondition:
        Download Share is deleted.

        ### Further Information:
        Only 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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-60000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve detailed information about one Download Share.

        ### Precondition:
        User 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.

        ### Postcondition:
        Download Share is returned

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Update an existing Download Share.

        ### Precondition:
        User 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.

        ### Postcondition:
        Download Share is successfully updated.

        ### Further Information:
        * `name` is limited to **150** characters.
        * `notes` are limited to **255** characters.
        * `password` is limited to **1024** characters.

        Forbidden characters in passwords: [`&`, `'`, `<`, `>`]

        Please keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters
        may 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80030] SMS disabled
                  summary: SMS disabled
                  value:
                    code: 400
                    debugInfo: SMS disabled
                    errorCode: -80030
                    message: Bad Request
                "-80040":
                  description: |-
                    
                    * [-80040] Invalid phone number

                    Must 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: |-
                    
                    * [-80041] Invalid country code

                    Must 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-60000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Send an email to specific recipients for existing Download Share.

        ### Precondition:
        User 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.

        ### Postcondition:
        Download Share link successfully sent.

        ### Further Information:

        * Forbidden characters in the email body: [`<`, `>`]
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80009":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve detailed information about one Download Share.

        ### Precondition:
        User 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.

        ### Postcondition:
        Download Share is returned

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Functional Description:
        Delete multiple Upload Shares (aka Upload Accounts).

        ### Precondition:
        User has _"manage upload share"_ permissions on target containers.

        ### Postcondition:
        Upload Shares are deleted.

        ### Further Information:
        Only 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-60500":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of Upload Shares (aka File Requests).

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of available Upload Shares is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical (**AND**). createdBy and updatedBy searches several user-related attributes.
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:cn:searchString_1|createdBy:cn:searchString_2`  
        Filter by alias name contains `searchString_1` **AND** creator info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains `searchString_2`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `name` | Alias name filter | `cn` | Alias name contains value. | `search String` |
        | `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)` |
        | `createdBy` | Creator info filter | `cn, eq` | Creator info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains value. | `search String` |
        | `createdById` | Creator ID filter | `eq` | Creator ID equals value. | `positive Integer` |
        | `accessKey` | Share access key filter | `cn` | Share access key contains values. | `search String` |
        | `userId` | Creator user ID | `eq` | Creator user ID equals value. | `positive Integer` |
        | `targetId` | Target node ID | `eq` | Target node (room, folder) ID equals value. | `positive Integer` |
        | `updatedBy` | Modifier info filter | `cn, eq` | Modifier info (`firstName` **OR** `lastName` **OR** `email` **OR** `username`) contains value. | `search String` |
        | `updatedById` | Modifier ID filter | `eq` | Modifier ID equals value. | `positive Integer` |

        </details>

        ### Deprecated filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | <del>`targetId`</del> | Target node ID | `cn` | Target node (room, folder) ID equals value. | `positive Integer` |
        | <del>`userId` </del>| Creator user ID | `eq` | Creator user ID equals value. Use `createdById` instead. | `positive Integer` |

        </details>

        ---

        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `name:asc|expireAt:desc`  
        Sort by `name` ascending **AND** by `expireAt` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `name` | Alias name |
        | `notifyCreator` | Notify creator on every upload |
        | `expireAt` | Expiration date |
        | `createdAt` | Creation date |
        | `createdBy` | Creator first name, last name |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Create a new Upload Share (aka File Request).

        ### Precondition:
        User 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.

        ### Postcondition:
        Upload Share is created.

        ### Further Information:

        * `name` is limited to **150** characters.
        * `notes` are limited to **255** characters.
        * `password` is limited to **1024** characters.

        Forbidden characters in passwords: [`&`, `'`, `<`, `>`]  

        Use `POST /shares/uploads/{share_id}/email` API for sending emails.

        Please keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters
        may 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80009] Invalid email address
                  summary: Invalid email address
                  value:
                    code: 400
                    debugInfo: Invalid email address
                    errorCode: -80009
                    message: Bad Request
                "-80023":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80024] Invalid range parameters
                  summary: Invalid range parameters
                  value:
                    code: 400
                    debugInfo: Invalid range parameters
                    errorCode: -80024
                    message: Bad Request
                "-80030":
                  description: |-
                    
                    * [-80030] SMS disabled
                  summary: SMS disabled
                  value:
                    code: 400
                    debugInfo: SMS disabled
                    errorCode: -80030
                    message: Bad Request
                "-80040":
                  description: |-
                    
                    * [-80040] Invalid phone number

                    Must 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Update a list of existing Upload Shares (aka File Request).

        ### Precondition:
        User 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.

        ### Postcondition:
        Upload Shares successfully updated.

        ### Further Information:
        Maximum 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-60500":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete an Upload Share (aka File Request).

        ### Precondition:
        User 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.

        ### Postcondition:
        Upload Share is deleted.

        ### Further Information:
        Only 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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-60500":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve detailed information about one Upload Share (aka File Request).

        ### Precondition:
        User 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.

        ### Postcondition:
        Upload Share is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Update existing Upload Share (aka File Request).

        ### Precondition:
        User 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.

        ### Postcondition:
        Upload Share successfully updated.

        ### Further Information:

        * `name` is limited to **150** characters.
        * `notes` are limited to **255** characters.
        * `password` is limited to **1024** characters.

        Forbidden characters in passwords: [`&`, `'`, `<`, `>`]

        Please keep in mind that due to various restrictions of different telecommunication providers, non-ASCII characters
        may 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80030] SMS disabled
                  summary: SMS disabled
                  value:
                    code: 400
                    debugInfo: SMS disabled
                    errorCode: -80030
                    message: Bad Request
                "-80040":
                  description: |-
                    
                    * [-80040] Invalid phone number

                    Must 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: |-
                    
                    * [-80041] Invalid country code

                    Must 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-60500":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Send an email to specific recipients for existing Upload Share.

        ### Precondition:
        User 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.

        ### Postcondition:
        Upload Share link successfully sent.

        ### Further Information:

        * Forbidden characters in the email body: [`<`, `>`]
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80009":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve detailed information about one Upload Share (aka File Request).

        ### Precondition:
        User 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.

        ### Postcondition:
        Upload Share is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Test Active Directory configuration.

        ### Precondition:
        Right <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.

        ### Postcondition:
        Active Directory configuration is returned if successful.

        ### Further Information:
        DRACOON 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-10012] Wrong token
                  summary: Wrong token
                  value:
                    code: 401
                    debugInfo: Wrong token
                    errorCode: -10012
                    message: Unauthorized
                "-90051":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Test RADIUS configuration.

        ### Precondition:
        Right <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.

        ### Postcondition:
        RADIUS configuration is returned if successful.

        ### Further Information:
        DRACOON 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of configured Active Directories.

        ### Precondition:
        Right <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.

        ### Postcondition:
        List of Active Directory configurations is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Create a new Active Directory configuration.

        ### Precondition:
        Right <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.

        ### Postcondition:
        New Active Directory configuration created.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete an existing Active Directory configuration.

        ### Precondition:
        Right <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.

        ### Postcondition:
        Active Directory configuration is removed.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve the configuration of an Active Directory.

        ### Precondition:
        Right <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.

        ### Postcondition:
        Active Directory configuration is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Update an existing Active Directory configuration.

        ### Precondition:
        Right <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.

        ### Postcondition:
        Active Directory configuration updated.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-90050":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of configured OpenID Connect IDPs.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        List of OpenID Connect IDP configurations is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Create new OpenID Connect IDP configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        New OpenID Connect IDP configuration is created.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80010] Invalid URL
                  summary: Invalid URL
                  value:
                    code: 400
                    debugInfo: Invalid URL
                    errorCode: -80010
                    message: Bad Request
                "-80032":
                  description: |-
                    
                    * [-80032] Invalid URI
                  summary: Invalid URI
                  value:
                    code: 400
                    debugInfo: Invalid URI
                    errorCode: -80032
                    message: Bad Request
                "-90049":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete an existing OpenID Connect IDP configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        OpenID Connect IDP configuration is removed.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve an OpenID Connect IDP configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        OpenID Connect IDP configuration is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Update an existing OpenID Connect IDP configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        OpenID Connect IDP configuration is updated.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80010] Invalid URL
                  summary: Invalid URL
                  value:
                    code: 400
                    debugInfo: Invalid URL
                    errorCode: -80010
                    message: Bad Request
                "-80032":
                  description: |-
                    
                    * [-80032] Invalid URI
                  summary: Invalid URI
                  value:
                    code: 400
                    debugInfo: Invalid URI
                    errorCode: -80032
                    message: Bad Request
                "-90049":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-30000] Group not found
                  summary: Group not found
                  value:
                    code: 404
                    debugInfo: Group not found
                    errorCode: -30000
                    message: Not Found
                "-90035":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Delete existing RADIUS configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        RADIUS configuration is deleted.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a RADIUS configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        RADIUS configuration is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Create new RADIUS configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        New RADIUS configuration is created.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Update existing RADIUS configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        RADIUS configuration is updated.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of configured OAuth clients.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        List of OAuth clients is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `isStandard:eq:true`  
        Get standard OAuth clients.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `isStandard` | Standard client filter | `eq` |  | `true or false` |
        | `isExternal` | External client filter | `eq` |  | `true or false` |
        | `isEnabled` | Enabled/disabled clients filter | `eq` |  | `true or false` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `clientName:desc|isStandard:asc`  
        Sort by `clientName` descending **AND** `isStandard` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `clientName` | Client name |
        | `isStandard` | Is a standard client |
        | `isExternal` | Is a external client |
        | `isEnabled` | Is a enabled client |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Create a new OAuth client.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        New OAuth client created.

        ### Further Information:  
        Client secret **MUST** have:  
        * at least 12 characters, at most 32 characters  
        * only lower case characters, upper case characters and digits  
        * at least 1 lower case character, 1 upper case character and 1 digit  

        The client secret is optional and will be generated if it is left empty.  

        Valid grant types are:  
        * `authorization_code`  
        * `implicit`  
        * `password`  
        * `client_credentials`  
        * `refresh_token`  

        Grant type `client_credentials` is currently **NOT** permitted!

        Allowed characters for client ID are: `[a-zA-Z0-9_-]`

        If grant types `authorization_code` or `implicit` are used, a
        redirect URI **MUST** be provided!

        Default access token validity: **8 hours**  
        Default refresh token validity: **30 days**
        Default 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80032] Invalid URI
                  summary: Invalid URI
                  value:
                    code: 400
                    debugInfo: Invalid URI
                    errorCode: -80032
                    message: Bad Request
                "-90083":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete an existing OAuth client.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        OAuth client is removed.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve the configuration of an OAuth client.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        OAuth client is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Update an existing OAuth client.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        OAuth client updated.

        ### Further Information:  
        Client secret **MUST** have:  
        * at least 12 characters, at most 32 characters  
        * only lower case characters, upper case characters and digits  
        * at least 1 lower case character, 1 upper case character and 1 digit  

        The client secret is optional and will be generated if it is left empty.  

        Valid grant types are:  
        * `authorization_code`  
        * `implicit`  
        * `password`  
        * `client_credentials`  
        * `refresh_token`  

        Grant type `client_credentials` is currently **NOT** permitted!

        If grant types `authorization_code` or `implicit` are used, a
        redirect URI **MUST** be provided!
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80032] Invalid URI
                  summary: Invalid URI
                  value:
                    code: 400
                    debugInfo: Invalid URI
                    errorCode: -80032
                    message: Bad Request
                "-90083":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of classification policies:
        * `shareClassificationPolicies`

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        List of configured classification policies is returned.

        ### Further Information:
        `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.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Change current classification policies:
        * `shareClassificationPolicies`

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        Classification policies are changed.

        ### Further Information:
        `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.

      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve guest user policies.  

        ### Precondition:
        Right <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.

        ### Postcondition:
        Guest user policies are returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Change current guest user policies.  

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        Guest user policies are changed.  

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of multi-factor authentication policies.  

        ### Precondition:
        Right <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.

        ### Postcondition:
        List of configured multi-factor authentication policies is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Change current multi-factor authentication policies.  

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        Multi-factor authentication policies are changed.  

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of configured password policies for all password types:  
        * `login`
        * `shares`
        * `encryption`

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        List of configured password policies is returned.

        ### Further Information:
        None.

        ### Available password policies:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Name | Description | Value | Password Type |
        | :--- | :--- | :--- | :--- |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `passwordExpiration.enabled` | Determines whether password expiration is enabled. | `true or false` | <ul><li>`login`</li></ul> |
        | `maxPasswordAge` | Maximum allowed password age (in **days**) | `positive Integer` | <ul><li>`login`</li></ul> |
        | `userLockout.enabled` | Determines whether user lockout is enabled. | `true or false` | <ul><li>`login`</li></ul> |
        | `maxNumberOfLoginFailures` | Maximum allowed number of failed login attempts. | `positive Integer` | <ul><li>`login`</li></ul> |
        | `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> |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Change current password policies for any password types:  
        * `login`
        * `shares`
        * `encryption`

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        Password policies get changed.

        ### Further Information:
        None.

        ### Available password policies:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Name | Description | Value | Recommended Value | Password Type |
        | :--- | :--- | :--- | :--- | :--- |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `numberOfArchivedPasswords` | Number of passwords to archive. | `Integer between 0 and 10`<br>Set `0` to disable password history. | `3` | <ul><li>`login`</li></ul> |
        | `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> |
        | `maxPasswordAge` | Maximum allowed password age (in **days**) | `positive Integer` |  | <ul><li>`login`</li></ul> |
        | `userLockout.enabled` | Determines whether user lockout is enabled. | `true or false` | `true` | <ul><li>`login`</li></ul> |
        | `maxNumberOfLoginFailures` | Maximum allowed number of failed login attempts. | `positive Integer` | `5` | <ul><li>`login`</li></ul> |
        | `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> |

        </details>

        ### Deprecated password policies:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Name | Description | Value | Recommended Value | Password Type |
        | :--- | :--- | :--- | :--- | :--- |
        | <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> |

        </details>

        ### `mustContainCharacters` matrix:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        |  | `alpha` | `uppercase` | `lowercase` | `numeric` | `special` | `all` | `none` |
        | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
        | `alpha` | `alpha` | `uppercase` | `lowercase` | `alpha`<br>`numeric` | `alpha`<br>`special` | `all` | `none` |
        | `uppercase` | `uppercase` | `uppercase` | `uppercase`<br>`lowercase` | `uppercase`<br>`numeric` | `uppercase`<br>`special` | `all` | `none` |
        | `lowercase` | `lowercase` | `uppercase`<br>`lowercase` | `lowercase` | `lowercase`<br>`numeric` | `lowercase`<br>`special` | `all` | `none` |
        | `numeric` | `alpha`<br>`numeric` | `uppercase`<br>`numeric` | `lowercase`<br>`numeric` | `numeric` | `numeric`<br>`special` | `all` | `none` |
        | `special` | `alpha`<br>`special` | `uppercase`<br>`special` | `lowercase`<br>`special` | `numeric`<br>`special` | `special` | `all` | `none` |
        | `all` | `all` | `all` | `all` | `all` | `all` | `all` | `none` |
        | `none` | `none` | `none` |  `none` | `none` | `none` | `none` | `none` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-90001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Enforce login password change for all users.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        Login password change is enforced.
        Every user has to change their login password at next login.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of configured password policies for a certain password type:  
        * `login`
        * `shares`
        * `encryption`

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        List of configured password policies is returned.

        ### Further Information:
        None.

        ### Available password policies:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Name | Description | Value | Password Type |
        | :--- | :--- | :--- | :--- |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `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> |
        | `passwordExpiration.enabled` | Determines whether password expiration is enabled. | `true or false` | <ul><li>`login`</li></ul> |
        | `maxPasswordAge` | Maximum allowed password age (in **days**) | `positive Integer` | <ul><li>`login`</li></ul> |
        | `userLockout.enabled` | Determines whether user lockout is enabled. | `true or false` | <ul><li>`login`</li></ul> |
        | `maxNumberOfLoginFailures` | Maximum allowed number of failed login attempts. | `positive Integer` | <ul><li>`login`</li></ul> |
        | `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> |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON authentication configuration entry point.  

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        Returns a list of configurable authentication methods.

        ### Further Information:
        Authentication methods are sorted by priority attribute.  
        Smaller values have higher priority.  
        Authentication method with highest priority is considered as default.  
        Priority **MUST** be a positive value.

        ### Configurable authentication settings:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Authentication Method | Description |
        | :--- | :--- |
        | `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`. |
        | `active_directory` | **Active Directory** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their Active Directory credentials. |
        | `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. |
        | `openid` | **OpenID Connect** authentication globally allowed.This option **MUST** be activated to allow users to log in with their OpenID Connect identity. |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON authentication configuration entry point.  
        Change configurable authentication settings.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        One or more authentication methods gets changed.

        ### Further Information:
        Authentication methods are sorted by priority attribute.  
        Smaller values have higher priority.  
        Authentication method with highest priority is considered as default.  
        Priority **MUST** be a positive value.

        ### Configurable authentication settings:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Authentication Method | Description |
        | :--- | :--- |
        | `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`. |
        | `active_directory` | **Active Directory** authentication globally allowed.<br>This option **MUST** be activated to allow users to log in with their Active Directory credentials. |
        | `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. |
        | `openid` | **OpenID Connect** authentication globally allowed.This option **MUST** be activated to allow users to log in with their OpenID Connect identity. |

        </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: |-
                    
                    * [-10100] Invalid authentication method
                  summary: Invalid authentication method
                  value:
                    code: 400
                    debugInfo: Invalid authentication method
                    errorCode: -10100
                    message: Bad Request
                "-80000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON system defaults configuration entry point.  

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        Returns a list of configurable system default values.

        ### Further Information:
        None.

        ### Configurable default values
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `languageDefault` | Defines which language should be default. | `ISO 639-1 code` |
        | `downloadShareDefaultExpirationPeriod` | Default expiration period for Download Shares in _days_. | `Integer between 0 and 9999` |
        | `uploadShareDefaultExpirationPeriod` | Default expiration period for Upload Shares in _days_. | `Integer between 0 and 9999` |
        | `fileDefaultExpirationPeriod` | Default expiration period for all uploaded files in _days_. | `Integer between 0 and 9999` |
        | `nonmemberViewerDefault` | Defines if new users get the role _Non Member Viewer_ by default | `true or false` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON system defaults configuration entry point.  
        Change configurable system default values.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        One or more system default values gets changed.

        ### Further Information:
        None.

        ### Configurable default values
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `languageDefault` | Defines which language should be default. | `ISO 639-1 code` |
        | `downloadShareDefaultExpirationPeriod` | Default expiration period for Download Shares in _days_. | `Integer between 0 and 9999`<br>Set `0` to disable. |
        | `uploadShareDefaultExpirationPeriod` | Default expiration period for Upload Shares in _days_. | `Integer between 0 and 9999`<br>Set `0` to disable. |
        | `fileDefaultExpirationPeriod` | Default expiration period for all uploaded files in _days_. | `Integer between 0 and 9999`<br>Set `0` to disable. |
        | `nonmemberViewerDefault` | Defines if new users get the role _Non Member Viewer_ by default | `true or false` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON eventlog configuration entry point.  

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        Returns a list of configurable eventlog settings.

        ### Further Information:
        None.

        ### Configurable eventlog settings:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `enabled` | Determines whether eventlog is enabled. | `true or false` |
        | `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 |
        | `logIpEnabled` | Determines whether user’s IP address is logged. | `true or false` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON eventlog configuration entry point.  
        Change configurable eventlog settings.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        One or more eventlog settings gets changed.

        ### Further Information:
        None.

        ### Configurable eventlog settings:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `enabled` | Determines whether eventlog is enabled. | `true or false` |
        | `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 |
        | `logIpEnabled` | Determines whether user’s IP address is logged. | `true or false` |

        </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: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80018":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON general settings configuration entry point.  

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        Returns a list of configurable general settings.

        ### Further Information:

        ### Auth token restrictions:

        A restriction is a lower bound for a token timeout and defines a duration after which a token is invalidated when it wasn't used.  
        The access/refresh token validity duration of the client is the upper bound. A token is invalidated - in any case - when it has passed.  

        Auth token restrictions are enabled by default.

        * Default access token validity: **2 hours**  
        * Default refresh token validity: **30 days**

        ### Configurable general settings:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `sharePasswordSmsEnabled` | Determines whether sending of share passwords via SMS is allowed. | `true or false` |
        | `cryptoEnabled` | Determines whether client-side encryption is enabled.<br>Can only be enabled once; disabling is **NOT** possible. | `true or false` |
        | `emailNotificationButtonEnabled` | Determines whether email notification button is enabled. | `true or false` |
        | `eulaEnabled` | Determines whether EULA is enabled.<br>Each user has to confirm the EULA at first login. | `true or false` |
        | `useS3Storage` | Defines if S3 is used as storage backend.<br>Can only be enabled once; disabling is **NOT** possible. | `true or false` |
        | `s3TagsEnabled` | Determines whether S3 tags are enabled | `true or false` |
        | `authTokenRestrictions` | Determines auth token restrictions. (e.g. restricted access token validity) | `object` |

        </details>

        ### Deprecated configurable general settings:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting                           | Description | Value |
        |:----------------------------------| :--- | :--- |
        | <del>`mediaServerEnabled`</del>   | Determines whether media server is enabled.<br>Returns boolean value dependent on conjunction of `mediaServerConfigEnabled` AND `mediaServerEnabled` | `true or false` |
        | <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` |
        | <del>`hideLoginInputFields`</del> | Determines whether input fields for login should be enabled | `true or false` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON general settings configuration entry point.  
        Change configurable general settings.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        One or more general settings gets changed.

        ### Further Information:
        Auth token restrictions are enabled by default.
            
        * Default access token validity: **2 hours**  
        * Default refresh token validity: **30 days**

        ### Configurable general settings:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `sharePasswordSmsEnabled` | Determines whether sending of share passwords via SMS is allowed. | `true or false` |
        | `cryptoEnabled` | Determines whether client-side encryption is enabled.<br>Can only be enabled once; disabling is **NOT** possible. | `true or false` |
        | `emailNotificationButtonEnabled` | Determines whether email notification button is enabled. | `true or false` |
        | `eulaEnabled` | Determines whether EULA is enabled.<br>Each user has to confirm the EULA at first login. | `true or false` |
        | `s3TagsEnabled` | Determines whether S3 tags are enabled | `true or false` |
        | `authTokenRestrictions` | Determines auth token restrictions. (e.g. restricted access token validity) | `object` |

        </details>

        ### Deprecated configurable general settings:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting                           | Description | Value |
        |:----------------------------------| :--- | :--- |
        | <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` |
        | <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` |
        | <del>`hideLoginInputFields`</del> | Determines whether input fields for login should be enabled | `true or false` |

        </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: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-90010":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON infrastructure properties entry point.  

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        Returns a list of read-only infrastructure properties.

        ### Further Information:
        Source: `core-service.properties`

        ### Read-only infrastructure properties:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `smsConfigEnabled` | Determines whether sending of share passwords via SMS is **system-wide** enabled. | `true or false` |
        | `mediaServerConfigEnabled` | Determines whether media server is **system-wide** enabled. | `true or false` |
        | `s3DefaultRegion` | Suggested S3 region | `Region name` |
        | `s3EnforceDirectUpload` | Enforce direct upload to S3 | `true or false` |
        | `dracoonCloud` | Determines if the **DRACOON Core** is deployed in the cloud environment | `true or false` |
        | `tenantUuid` | Current tenant UUID | `UUID` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON syslog configuration entry point.  

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        Returns a list of configurable syslog settings.

        ### Further Information:
        None.

        ### Configurable syslog settings:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `enabled` | Determines whether syslog is enabled. | `true or false` |
        | `host` | Syslog server (IP or FQDN) | `DNS name or IPv4 of a syslog server` |
        | `port` | Syslog server port | `Valid port number` |
        | `protocol` | Protocol to connect to syslog server | `TCP or UDP` |
        | `logIpEnabled` | Determines whether user’s IP address is logged. | `true or false` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        DRACOON syslog configuration entry point.  
        Change configurable syslog settings.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        One or more syslog settings gets changed.

        ### Further Information:
        None.

        ### Configurable syslog settings:
        <details open style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Setting | Description | Value |
        | :--- | :--- | :--- |
        | `enabled` | Set `true` to enable syslog. | `true or false` |
        | `host` | Syslog server (IP or FQDN) | `DNS name or IPv4 of a syslog server` |
        | `port` | Syslog server port | `Valid port number` |
        | `protocol` | Protocol to connect to syslog server | `TCP or UDP` |
        | `logIpEnabled` | Determines whether user’s IP address is logged. | `true or false` |

        </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: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80012":
                  description: |-
                    
                    * [-80012] Illegal protocol
                  summary: Illegal protocol
                  value:
                    code: 400
                    debugInfo: Illegal protocol
                    errorCode: -80012
                    message: Bad Request
                "-80014":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve S3 configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        S3 configuration is returned.

        ### Further Information:
        None.

        ### Virtual hosted style access

        Example: https://<span style="color:red;">bucket-name</span>.s3.<span style="color:red;">region</span>.amazonaws.com/<span style="color:red;">key-name</span>
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Create new S3 configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        New S3 configuration is created.

        ### Further Information:
        Forbidden characters in bucket names: [`.`]  
        `bucketName` and `endpointUrl` are deprecated, use `bucketUrl` instead.

        ### Virtual hosted style access

        Example: https://<span style="color:red;">bucket-name</span>.s3.<span style="color:red;">region</span>.amazonaws.com/<span style="color:red;">key-name</span>
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80010] Invalid URL
                  summary: Invalid URL
                  value:
                    code: 400
                    debugInfo: Invalid URL
                    errorCode: -80010
                    message: Bad Request
                "-80023":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-90001] Invalid settings configuration
                  summary: Invalid settings configuration
                  value:
                    code: 400
                    debugInfo: Invalid settings configuration
                    errorCode: -90001
                    message: Bad Request
                "-90025":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Update existing S3 configuration.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        S3 configuration is updated.

        ### Further Information:
        Forbidden characters in bucket names: [`.`]  
        `bucketName` and `endpointUrl` are deprecated, use `bucketUrl` instead.

        ### Virtual hosted style access

        Example: https://<span style="color:red;">bucket-name</span>.s3.<span style="color:red;">region</span>.amazonaws.com/<span style="color:red;">key-name</span>
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80010] Invalid URL
                  summary: Invalid URL
                  value:
                    code: 400
                    debugInfo: Invalid URL
                    errorCode: -80010
                    message: Bad Request
                "-80023":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve all configured S3 tags.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        S3 tags are returned.

        ### Further Information:
        An 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-90030] S3 storage disabled
                  summary: S3 storage disabled
                  value:
                    code: 412
                    debugInfo: S3 storage disabled
                    errorCode: -90030
                    message: Precondition Failed
                "-90032":
                  description: |-
                    
                    * [-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>

        ### Description:  
        Create new S3 tag.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        New S3 tag is created.

        ### Further Information:
        * Maximum key length: **128** characters.  
        * Maximum value length: **256** characters.  
        * Both S3 tag key and value are **case-sensitive** strings.  
        * 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: |-
                    
                    * [-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: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-90030] S3 storage disabled
                  summary: S3 storage disabled
                  value:
                    code: 412
                    debugInfo: S3 storage disabled
                    errorCode: -90030
                    message: Precondition Failed
                "-90032":
                  description: |-
                    
                    * [-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>

        ### Description:  
        Delete S3 tag.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change global config</span> and
        role <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.

        ### Postcondition:
        S3 tag gets deleted.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-90030] S3 storage disabled
                  summary: S3 storage disabled
                  value:
                    code: 412
                    debugInfo: S3 storage disabled
                    errorCode: -90030
                    message: Precondition Failed
                "-90032":
                  description: |-
                    
                    * [-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>

        ### Description:  
        Retrieve single S3 tag.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read global config</span> and
        role <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.

        ### Postcondition:
        S3 tag is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-90030] S3 storage disabled
                  summary: S3 storage disabled
                  value:
                    code: 412
                    debugInfo: S3 storage disabled
                    errorCode: -90030
                    message: Precondition Failed
                "-90032":
                  description: |-
                    
                    * [-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:
        Cancel file upload.

        ### Precondition:
        Valid upload token.

        ### Postcondition:
        Upload canceled, token invalidated and all already transfered chunks removed.

        ### Further Information:
        It 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-50501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Upload a (chunk of a) file.

        ### Precondition:
        Valid upload token.

        ### Postcondition:
        Chunk uploaded.

        ### Further Information:
        Range requests are supported.  

        Following `Content-Types` are supported by this API:
        * `multipart/form-data`
        * provided `Content-Type`

        For both file upload types set the correct `Content-Type` header and body.  

        ### Examples:  

        * `multipart/form-data`
        ```
        POST /api/v4/uploads/{token} HTTP/1.1

        Header:
        ...
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
        ...

        Body:
        ------WebKitFormBoundary7MA4YWxkTrZu0gW
        Content-Disposition: form-data; name="file"; filename="file.txt"
        Content-Type: text/plain

        Content of file.txt
        ------WebKitFormBoundary7MA4YWxkTrZu0gW--
        ```

        * any other `Content-Type` 
        ```
        POST /api/v4/uploads/{token} HTTP/1.1

        Header:
        ...
        Content-Type: { ... }
        ...

        Body:
        raw content
        ```
      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 

            e.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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-50501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Finish uploading a file.

        ### Precondition:
        Valid upload token.

        ### Postcondition:
        File created.

        ### Further Information:
        The provided file name might be changed in accordance with the resolution strategy:

        * **autorename**: changes the file name and adds a number to avoid conflicts.
        * **overwrite**: deletes any old file with the same file name.
        * **fail**: returns an error; in this case, another `PUT` request with a different file name may be sent.

        Please ensure that all chunks have been transferred correctly before finishing the upload.

        Download share id (if exists) gets changed if:
        - node with the same name exists in the target container
        - `resolutionStrategy` is `overwrite`
        - `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: |-
                    
                    * [-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: |-
                    
                    * [-40755] Bad node name
                  summary: Bad node name
                  value:
                    code: 400
                    debugInfo: Bad node name
                    errorCode: -40755
                    message: Bad Request
                "-40763":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-50503] Illegal resolution strategy
                  summary: Illegal resolution strategy
                  value:
                    code: 400
                    debugInfo: Illegal resolution strategy
                    errorCode: -50503
                    message: Bad Request
                "-50506":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-20501] Upload not found
                  summary: Upload not found
                  value:
                    code: 404
                    debugInfo: Upload not found
                    errorCode: -20501
                    message: Not Found
                "-40000":
                  description: |-
                    
                    * [-40000] Container not found
                  summary: Container not found
                  value:
                    code: 404
                    debugInfo: Container not found
                    errorCode: -40000
                    message: Not Found
                "-40751":
                  description: |-
                    
                    * [-40751] File not found
                  summary: File not found
                  value:
                    code: 404
                    debugInfo: File not found
                    errorCode: -40751
                    message: Not Found
                "-41000":
                  description: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-50501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-40010] Container cannot be overwritten
                  summary: Container cannot be overwritten
                  value:
                    code: 409
                    debugInfo: Container cannot be overwritten
                    errorCode: -40010
                    message: Conflict
                "-41001":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieves all information regarding the current user's account.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        User information is returned.

        ### Further Information:
        Setting the query parameter `more_info` to `true`, causes the API to return more details e.g. the user's groups.  

        `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

            e.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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Update current user's account.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        User's account is updated.

        ### Further Information:
        * All input fields are limited to **150** characters.  
        * **All** characters are allowed.  

        `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: |-
                    
                    * [-10100] Invalid authentication method
                  summary: Invalid authentication method
                  value:
                    code: 400
                    debugInfo: Invalid authentication method
                    errorCode: -10100
                    message: Bad Request
                "-70103":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Reset (custom) avatar to default avatar.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        * User's avatar gets deleted.  
        * Default avatar is set.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Get the avatar.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        Avatar is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Change the avatar.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        Avatar is changed.

        ### Further Information:
        * Media type **MUST** be `jpeg` or `png`
        * File size **MUST** bei less than `5 MB`
        * 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Use this API to get: 
        * customer name
        * used / free space
        * used / available
        * user account info

        of the according customer.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        Customer information is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Use `POST /settings/keypair` API

        ### Description:  
        Activate client-side encryption for according customer.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change config</span> required.

        ### Postcondition:
        Client-side encryption is enabled.

        ### Further Information:
        Sets the ability for this customer to encrypt rooms.  
        Once enabled on customer level, it **CANNOT** be unset.  
        On 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-90020":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Use `GET /settings/keypair` API

        ### Description:  
        Retrieve the customer rescue key pair.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        Key pair is returned.

        ### Further Information:
        The 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Delete user key pair.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        Key pair is deleted.

        ### Further Information:
        If parameter `version` is not set and two key versions exist, this API deletes version A.      
        If two keys with the same version are set, this API deletes the older one.

        This will also remove all file keys that were encrypted with the user public key.
        If 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve the user key pair.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        Key pair is returned. 

        ### Further Information:
        The 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Set the user key pair.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        Key pair is set.

        ### Further Information:
        Overwriting an existing key pair is **NOT** possible.  
        Please delete the existing key pair first.  
        The 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve all user key pairs to allow re-encrypting file keys without need for a second distributor.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of key pairs is returned. 

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Create user key pair and preserve copy of old private key.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        Key pair is created.  
        Copy of old private key is preserved.

        ### Further Information:
        You can submit your old private key, encrypted with your current password.  
        This 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Using emergency code for login

        ### Precondition:
        User has MFA enabled and is already logged in with account/pw (aka pre-Auth-Role)

        ### Postcondition:
        All MFA-setups for the user are deleted.

        ### Further Information:


      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Request information about the user's mfa status

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        None.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Get setup information for multi-factor authentication (TOTP).

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        None. 

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Confirm second factor TOTP setup with a generated OTP.

        ### Precondition:
        Authenticated user  

        ### Postcondition:
        Second factor TOTP is enabled.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Delete multi-factor authentication TOTP setup with a valid OTP code.

        ### Precondition:
        Authenticated user  
        Multi-factor authentication is **NOT** enforced

        ### Postcondition:
        Second factor TOTP is disabled.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Change the user's password.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        User's password is changed.

        ### Further Information:
        The password **MUST** comply to configured password policies.  

        Forbidden 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Log out a user.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        * User is logged out  
        * Authentication token gets invalidated.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of notification configurations for current user. 

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of available notification configurations is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Update notification configuration for current user. 

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        Notification configuration is updated.

        ### Further Information:
        Leave `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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-70123] Illegal notification channel
                  summary: Illegal notification channel
                  value:
                    code: 400
                    debugInfo: Illegal notification channel
                    errorCode: -70123
                    message: Bad Request
                "-80000":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Functional Description:  
        Retrieve information about all OAuth client approvals.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        None.

        ### Further Information:
        None.

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `clientName:desc`  
        Sort by `clientName` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `clientName` | Client name |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Functional Description:
        Delete an OAuth client approval.

        ### Precondition:
        Authenticated user and valid client ID

        ### Postcondition:
        OAuth Client approval is revoked.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve information about all OAuth client authorizations.

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of OAuth client authorizations is returned.

        ### Further Information:

        ### Filtering:
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `isStandard:eq:true`  
        Get standard OAuth clients.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `isStandard` | Standard client filter | `eq` |  | `true or false` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `clientName:desc`  
        Sort by `clientName` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `clientName` | Client name |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete all authorizations of a client.

        ### Precondition:
        Authenticated user and valid client ID

        ### Postcondition:
        All authorizations for the client are revoked.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Delete an authorization.

        ### Precondition:
        Authenticated user and valid client ID, authorization ID

        ### Postcondition:
        Authorization is revoked.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Test connection to DRACOON Server (while authenticated).

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        `200 OK` with principal information is returned if successful.

        ### Further Information:
        None.
      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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of user profile attributes.

        ### Precondition:
        None.

        ### Postcondition:
        List of attributes is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `key:cn:searchString_1|value:cn:searchString_2`  
        Filter by attribute key contains `searchString_1` **AND** attribute value contains `searchString_2`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `key` | User profile attribute key filter | `cn, eq, sw` | Attribute key contains / equals / starts with value. | `search String` |
        | `value` | User profile attribute value filter | `cn, eq, sw` | Attribute value contains / equals / starts with value. | `search String` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `key:asc|value:desc`  
        Sort by `key` ascending **AND** by `value` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `key` | User profile attribute key |
        | `value` | User profile attribute value |

        </details>
      operationId: requestProfileAttributes
      parameters:
        - description: Range offset
          in: query
          name: offset
          required: false
          schema:
            format: int32
            type: integer
        - description: |-
            Range limit.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Set custom user profile attributes.

        ### Precondition:
        None.

        ### Postcondition:
        Custom user profile attributes are set.

        ### Further Information:
        Batch function.  
        All existing user profile attributes will be deleted.  

        * Allowed characters for keys are: `[a-zA-Z0-9_-]`  
        * Characters are **case-insensitive**  
        * Maximum key length is **255**  
        * 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Add or edit custom user profile attributes.
        <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/>

        ### Precondition:
        None.

        ### Postcondition:
        Custom user profile attributes are added or edited.

        ### Further Information:
        Batch function.  
        If an entry existed before, it will be overwritten.  
        Range submodel is never returned.

        * Allowed characters for keys are: `[a-zA-Z0-9_-]`  
        * Characters are **case-insensitive**  
        * Maximum key length is **255**  
        * 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Delete custom user profile attribute.

        ### Precondition:
        None.

        ### Postcondition:
        Custom user profile attribute is deleted.

        ### Further Information:
        Allowed 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of subscribed Download Shares for current user. 

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of subscribed Download Shares is returned.

        ### Further Information:
        None.

        ### Filtering
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `authParentId:eq:#`  
        Get download shares where `authParentId` equals `#`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | **`downloadShareId`** | Download Share ID filter | `eq` | Download Share ID equals value. | `long value` |
        | **`authParentId`** | Auth parent ID filter | `eq` | Auth parent ID equals value. | `long value` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `downloadShareId:desc|authParentId:asc`  
        Sort by `downloadShareId` descending **AND** `authParentId` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | **`downloadShareId`** | Download Share ID |
        | **`authParentId`** | Auth parent ID |

        </details>
      operationId: listDownloadShareSubscriptions
      parameters:
        - description: Filter string
          in: query
          name: filter
          required: false
          schema:
            type: string
        - description: |-
            Range limit.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Subscribe/Unsubscribe download shares for notifications.

        ### Precondition:
        User with _"manage download share"_ permissions on target node.



        ### Postcondition:
        Download shares are subscribed or unsubscribed.
        Notifications for these download shares will be triggered in the future.

        ### Further Information:
        Maximum 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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80063":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Unsubscribe Download Share from notifications.

        ### Precondition:
        User with _"manage download share"_ permissions on target node.

        ### Postcondition:
        Download Share is unsubscribed.  
        Notifications for this Download Share are disabled.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Subscribe Download Share for notifications.

        ### Precondition:
        User with _"manage download share"_ permissions on target node.

        ### Postcondition:
        Download Share is subscribed.  
        Notifications for this Download Share will be triggered in the future.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of subscribed nodes for current user. 

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of subscribed nodes is returned.

        ### Further Information:
        None.

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `authParentId:eq:#`  
        Get nodes where `authParentId` equals `#`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | **`nodeId`** | Node ID filter | `eq` | Node ID equals value. | `long value` |
        | **`authParentId`** | Auth parent ID filter | `eq` | Auth parent ID equals value. | `long value` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `nodeId:desc|authParentId:asc`  
        Sort by `nodeId` descending **AND** `authParentId` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | **`nodeId`** | Node ID |
        | **`authParentId`** | Auth parent ID |

        </details>
      operationId: listNodeSubscriptions
      parameters:
        - description: Filter string
          in: query
          name: filter
          required: false
          schema:
            type: string
        - description: |-
            Range limit.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-70123] Illegal notification channel
                  summary: Illegal notification channel
                  value:
                    code: 400
                    debugInfo: Illegal notification channel
                    errorCode: -70123
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Subscribe/Unsubscribe nodes for notifications.

        ### Precondition:
        User has _"read"_ permissions in auth parent room.

        ### Postcondition:
        Nodes are subscribed or unsubscribed.
        Notifications for these nodes will be triggered in the future.

        ### Further Information:
        Maximum 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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80061":
                  description: |-
                    
                    * [-80061] Cannot subscribe node

                    (rooms and files only)
                  summary: Cannot subscribe node
                  value:
                    code: 400
                    debugInfo: Cannot subscribe node
                    errorCode: -80061
                    message: Bad Request
                "-80063":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Unsubscribe node from notifications.

        ### Precondition:
        User has _"read"_ permissions in auth parent room.

        ### Postcondition:
        Node is unsubscribed.  
        Notifications for this node are disabled.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:
        Subscribe node for notifications.

        ### Precondition:
        User has _"read"_ permissions in auth parent room.

        ### Postcondition:
        Node is subscribed.
        Notifications for this node will be triggered in the future.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80061":
                  description: |-
                    
                    * [-80061] Cannot subscribe node

                    (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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of subscribed Upload Shares for current user. 

        ### Precondition:
        Authenticated user.

        ### Postcondition:
        List of subscribed Upload Shares is returned.

        ### Further Information:
        None.

        ### Filtering
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `targetNodeId:eq:#`  
        Get upload shares where `targetNodeId` equals `#`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | **`uploadShareId`** | Upload Share ID filter | `eq` | Upload Share ID equals value. | `long value` |
        | **`targetNodeId`** | Target node ID filter | `eq` | Target node ID equals value. | `long value` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort criteria are possible.  
        Fields are connected via logical conjunction **AND**.

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `uploadShareId:desc|targetNodeId:asc`  
        Sort by `uploadShareId` descending **AND** `targetNodeId` ascending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | **`uploadShareId`** | Upload Share ID |
        | **`targetNodeId`** | Target node ID |

        </details>
      operationId: listUploadShareSubscriptions
      parameters:
        - description: Filter string
          in: query
          name: filter
          required: false
          schema:
            type: string
        - description: |-
            Range limit.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Subscribe/Unsubscribe upload shares for notifications.

        ### Precondition:
        User with _"manage upload share"_ permissions on target node.



        ### Postcondition:
        Upload shares are subscribed or unsubscribed.
        Notifications for these upload shares will be triggered in the future.

        ### Further Information:
        Maximum 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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80063":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Unsubscribe Upload Share from notifications.

        ### Precondition:
        User with _"manage upload share"_ permissions on target node.

        ### Postcondition:
        Upload Share is unsubscribed.  
        Notifications for this Upload Share are disabled.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Subscribe Upload Share for notifications.

        ### Precondition:
        User with _"manage upload share"_ permissions on target node.

        ### Postcondition:
        Upload Share is subscribed.  
        Notifications for this Upload Share will be triggered in the future.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Returns a list of DRACOON users.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.

        ### Postcondition:
        List of users is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Except for `login`, `firstName` and  `lastName` - these are connected via logical disjunction (**OR**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `login:cn:searchString_1|firstName:cn:searchString_2|lockStatus:eq:2`  
        Filter users by login contains `searchString_1` **OR** firstName contains `searchString_2` **AND** those who are **NOT** locked.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR`  | Operator Description | `VALUE`                                                                                                                                                                                                                                                                                                                                                                                              |
        | :--- | :--- |:------------| :--- |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
        | `email` | Email filter | `eq`, `cn`  | Email contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |
        | `userName` | User name filter | `eq`, `cn`  | UserName contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |
        | `firstName` | User first name filter | `cn`        | User first name contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |
        | `lastName` | User last name filter | `cn`        | User last name contains value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |
        | `isLocked` | User lock status filter | `eq`        |  | `true or false`                                                                                                                                                                                                                                                                                                                                                                                      |
        | `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`                                                                                                                                                                                                                                                                                                                                                                  |
        | `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)`                                                                                                                                                                                                                                                                                                                                                                                  |
        | `phone` | Phone filter | `eq`        | Phone equals value. | `search String`                                                                                                                                                                                                                                                                                                                                                                                      |
        | `isEncryptionEnabled` | Encryption status filter<ul><li>client-side encryption</li><li>private key possession</li></ul> | `eq`        |  | `true or false`                                                                                                                                                                                                                                                                                                                                                                                      |
        | `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> |

        </details>

        ### Deprecated filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | <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> |
        | <del>`login`</del> | User login filter | `cn` | User login contains value. | `search String` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `firstName:asc|lastLoginSuccessAt:desc`  
        Sort by `firstName` ascending **AND** by `lastLoginSuccessAt` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `userName` | User name |
        | `email` | User email |
        | `firstName` | User first name |
        | `lastName` | User last name |
        | `isLocked` | User lock status |
        | `lastLoginSuccessAt` | Last successful login date |
        | `expireAt` | Expiration date |
        | `createdAt` | Creation date |

        </details>

        ### Deprecated sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | <del>`gender`</del> | Gender |
        | <del>`lockStatus`</del> | User lock status |
        | <del>`login`</del> | User login |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Create a new user.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.

        ### Postcondition:
        New user is created.

        ### Further Information:
        * If a user should **NOT** expire, leave `expireAt` empty.
        * All input fields are limited to **150** characters
        * Forbidden characters in first or last name: [`<`, `>`]
        * Forbidden characters in passwords: [`&`, `'`, `<`, `>`]

        ### Authentication Method Options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Authentication Method | Option Key | Option Value |
        | :--- | :--- | :--- |
        | `basic` / `sql` | `username` | Unique user identifier |
        | `active_directory` | `ad_config_id` (optional) | Active Directory configuration ID |
        |  | `username` | Active Directory username according to authentication setting `userFilter` |
        | `radius` | `username` | RADIUS username |
        | `openid` | `openid_config_id` (optional) | OpenID Connect configuration ID |
        |  | `username` | OpenID Connect username according to authentication setting `mappingClaim` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-10100] Invalid authentication method
                  summary: Invalid authentication method
                  value:
                    code: 400
                    debugInfo: Invalid authentication method
                    errorCode: -10100
                    message: Bad Request
                "-10102":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80009] Invalid email address
                  summary: Invalid email address
                  value:
                    code: 400
                    debugInfo: Invalid email address
                    errorCode: -80009
                    message: Bad Request
                "-80023":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80064] Policy Violation
                  summary: Policy Violation
                  value:
                    code: 400
                    debugInfo: Policy Violation
                    errorCode: -80064
                    message: Bad Request
                "-90002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete a user.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; delete users</span> required.

        ### Postcondition:
        User is deleted.

        ### Further Information:
        User **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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-41000] Node not found
                  summary: Node not found
                  value:
                    code: 404
                    debugInfo: Node not found
                    errorCode: -41000
                    message: Not Found
                "-70501":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve detailed information about a single user.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.

        ### Postcondition:
        User information is returned.

        ### Further Information:
        None.

        ### Authentication Method Options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Authentication Method | Option Key | Option Value |
        | :--- | :--- | :--- |
        | `basic` / `sql` | `username` | Unique user identifier |
        | `active_directory` | `ad_config_id` (optional) | Active Directory configuration ID |
        |  | `username` | Active Directory username according to authentication setting `userFilter` |
        | `radius` | `username` | RADIUS username |
        | `openid` | `openid_config_id` (optional) | OpenID Connect configuration ID |
        |  | `username` | OpenID Connect username according to authentication setting `mappingClaim` |

        </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.

            * `false`: DIRECT roles

            * `true`: DIRECT **AND** EFFECTIVE roles

            DIRECT means: e.g. user gets role **directly** granted from someone with _grant permission_ right.

            EFFECTIVE 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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Update user's metadata.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.

        ### Postcondition:
        User's metadata is updated.

        ### Further Information:
        * If a user should **NOT** expire, leave `expireAt` empty.
        * All input fields are limited to **150** characters
        * **All** characters are allowed.

        ### Authentication Method Options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | Authentication Method | Option Key | Option Value |
        | :--- | :--- | :--- |
        | `basic` / `sql` | `username` | Unique user identifier |
        | `active_directory` | `ad_config_id` (optional) | Active Directory configuration ID |
        |  | `username` | Active Directory username according to authentication setting `userFilter` |
        | `radius` | `username` | RADIUS username |
        | `openid` | `openid_config_id` (optional) | OpenID Connect configuration ID |
        |  | `username` | OpenID Connect username according to authentication setting `mappingClaim` |

        </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: |-
                    
                    * [-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: |-
                    
                    * [-10100] Invalid authentication method
                  summary: Invalid authentication method
                  value:
                    code: 400
                    debugInfo: Invalid authentication method
                    errorCode: -10100
                    message: Bad Request
                "-10102":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80005":
                  description: |-
                    
                    * [-80005] Invalid boolean value
                  summary: Invalid boolean value
                  value:
                    code: 400
                    debugInfo: Invalid boolean value
                    errorCode: -80005
                    message: Bad Request
                "-80006":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80064] Policy Violation
                  summary: Policy Violation
                  value:
                    code: 400
                    debugInfo: Policy Violation
                    errorCode: -80064
                    message: Bad Request
                "-90002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-70501] User not found
                  summary: User not found
                  value:
                    code: 404
                    debugInfo: User not found
                    errorCode: -70501
                    message: Not Found
                "-90035":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieves a list of groups a user is member of and / or can become a member.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.

        ### Postcondition:
        List of groups is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `isMember:eq:false|name:cn:searchString`  
        Get all groups that the user is **NOT** member of **AND** whose name is like `searchString`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `name` | Group name filter | `cn` | Group name contains value. | `search String` |
        | `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` |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of all rooms where the user is last admin (except homeroom and its subordinary rooms).

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.

        ### Postcondition:
        List of rooms is returned. 

        ### Further Information:
        An 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Request emergency MFA code for a specific user.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.

        ### Postcondition:
        Emergency MFA code is returned.

        ### Further Information:
        Emergency 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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Retrieve a list of all roles granted to a user.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.

        ### Postcondition:
        List of granted roles is returned.

        ### Further Information:
        None.
      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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieves a list of rooms granted to the user and / or that can be granted.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read users</span> required.

        ### Postcondition:
        List of rooms is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `isGranted:eq:true|isLastAdmin:eq:true|name:cn:searchString`  
        Get all rooms that the user is granted **AND** is last admin **AND** whose name is like `searchString`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `name` | Room name filter | `cn` | Room name contains value. | `search String` |
        | `isGranted` | Filter the rooms which the user is (not) granted. | `eq` |  | <ul><li>`true`</li><li>`false`</li><li>`any`</li></ul>default: `true` |
        | `isLastAdmin` | Filter the rooms which the user is last room administrator.<br>Only in connection with `isGranted:eq:true` filter possible. | `eq` |  | `true` |
        | `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` |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80024":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Retrieve a list of user attributes.

        ### Precondition:
        None.

        ### Postcondition:
        List of attributes is returned.

        ### Further Information:

        ### Filtering:
        All filter fields are connected via logical conjunction (**AND**)  
        Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `key:cn:searchString_1|value:cn:searchString_2`  
        Filter by attribute key contains `searchString_1` **AND** attribute value contains `searchString_2`.

        </details>

        ### Filtering options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
        | :--- | :--- | :--- | :--- | :--- |
        | `key` | User attribute key filter | `cn, eq, sw` | Attribute key contains / equals / starts with value. | `search String` |
        | `value` | User attribute value filter | `cn, eq, sw` | Attribute value contains / equals / starts with value. | `search String` |

        </details>

        ---

        ### Sorting:
        Sort string syntax: `FIELD_NAME:ORDER`  
        `ORDER` can be `asc` or `desc`.  
        Multiple sort fields are supported.  

        <details style="padding-left: 10px">
        <summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>

        `key:asc|value:desc`  
        Sort by `key` ascending **AND** by `value` descending.

        </details>

        ### Sorting options:
        <details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
        <summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>

        | `FIELD_NAME` | Description |
        | :--- | :--- |
        | `key` | User attribute key |
        | `value` | User attribute value |

        </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.

            Maximum 500.

             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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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>

        ### Description:  
        Set custom user attributes.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.

        ### Postcondition:
        Custom user attributes are set.

        ### Further Information:
        Batch function.  
        All existing user attributes will be deleted.  

        * Allowed characters for keys are: `[a-zA-Z0-9_-]`  
        * 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:  
        Add or edit custom user attributes.
        <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/>

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.

        ### Postcondition:
        Custom user attributes gets added or edited.

        ### Further Information:
        Batch function.  
        If an entry exists before, it will be overwritten.  

        * Allowed characters for keys are: `[a-zA-Z0-9_-]`  
        * 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80007":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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:
        Delete custom user attribute.

        ### Precondition:
        Right <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; change users</span> required.

        ### Postcondition:
        Custom user attribute is deleted.

        ### Further Information:
        * Allowed characters for keys are: `[a-zA-Z0-9_-]`  
        * 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: |-
                    
                    * [-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: |-
                    
                    * [-80001] Invalid positive number
                  summary: Invalid positive number
                  value:
                    code: 400
                    debugInfo: Invalid positive number
                    errorCode: -80001
                    message: Bad Request
                "-80002":
                  description: |-
                    
                    * [-80002] Invalid number
                  summary: Invalid number
                  value:
                    code: 400
                    debugInfo: Invalid number
                    errorCode: -80002
                    message: Bad Request
                "-80023":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-70501] User not found
                  summary: User not found
                  value:
                    code: 404
                    debugInfo: User not found
                    errorCode: -70501
                    message: Not Found
                "-70550":
                  description: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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: |-
                    
                    * [-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`,

            the 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

            DEPRECATED, will be ignored

            Determines whether a room is created for each user that is created by automatic import (like a home folder).

            Room's name will equal the user's login name.
          type: boolean
        homeFolderParent:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.10.0

            DEPRECATED, will be ignored

            ID 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.

            Reset 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.

            Mandatory for LDAPS connections.

            Format: `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

            who 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

            Derived 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

            (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

            `/` 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

            (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

            Is recycle bin active (for rooms only)

            Recycle 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

            `/` 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:

            * `basic`

            * `active_directory`

            * `radius`

            * `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

            Restricted OAuth access token validity (in seconds)
          format: int32
          type: integer
        refreshTokenValidity:
          description: |-
            &#128640; Since v4.13.0

            Restricted OAuth refresh token validity (in seconds)
          format: int32
          type: integer
        restrictionEnabled:
          description: |-
            &#128640; Since v4.13.0

            Defines 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:

            * `alpha` - at least one alphabetical character (`uppercase` OR `lowercase`)

            * `uppercase` - at least one uppercase character

            * `lowercase` - at least one lowercase character

            * `numeric` - at least one numeric character

            * `special` - at least one special character (letters and digits excluded)

            * `all` - combination of `uppercase`, `lowercase`, `numeric` and `special` (available only in request models)

            * `none` - none of the above
          enum:
            - alpha
            - uppercase
            - lowercase
            - numeric
            - special
            - all
            - none
          items:
            description: |-
              Characters which a password must contain:

              * `alpha` - at least one alphabetical character (`uppercase` OR `lowercase`)

              * `uppercase` - at least one uppercase character

              * `lowercase` - at least one lowercase character

              * `numeric` - at least one numeric character

              * `special` - at least one special character (letters and digits excluded)

              * `all` - combination of `uppercase`, `lowercase`, `numeric` and `special` (available only in request models)

              * `none` - none of the above
            enum:
              - alpha
              - uppercase
              - lowercase
              - numeric
              - special
              - all
              - none
            type: string
          type: array
        numberOfCharacteristicsToEnforce:
          description: |-
            Number of characteristics to enforce

            e.g. from `["uppercase", "lowercase", "numeric", "special"]`

            all 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:

            * `autorename`

            * `overwrite`

            * `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.

        The `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:

            * `autorename`

            * `overwrite`

            * `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

            A room requires at least one admin (user or group)
          items:
            description: |-
              List of group ids

              A room requires at least one admin (user or group)
            format: int64
            type: integer
          type: array
        adminIds:
          description: |-
            List of user ids

            A room requires at least one admin (user or group)
          items:
            description: |-
              List of user ids

              A room requires at least one admin (user or group)
            format: int64
            type: integer
          type: array
        classification:
          default: 2
          description: |-
            Classification ID:

            * `1` - public

            * `2` - internal

            * `3` - confidential

            * `4` - strictly confidential



            Provided (or default) classification is taken from room

            when 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

            (default: `false` if `parentId` is `0`; otherwise: `true`)
          type: boolean
        newGroupMemberAcceptance:
          default: autoallow
          description: |-
            Behaviour when new users are added to the group:

            * `autoallow`

            * `pending`



            Only 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

            Time the node was created on external file system

            (default: current server datetime in UTC format)
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time the content of a node was last modified on external file system

            (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

            Node IDs

            Please use `items` instead.
          items:
            deprecated: true
            description: |-
              Node IDs

              Please use `items` instead.
            format: int64
            type: integer
          type: array
        resolutionStrategy:
          default: autorename
          description: |-
            Node conflict resolution strategy:

            * `autorename`

            * `overwrite`

            * `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`,

            the 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

            Determines whether a room is created for each user that is created by automatic import (like a home folder).

            Room's name will equal the user's login name.
          type: boolean
        homeFolderParent:
          description: |-
            DEPRECATED, will be ignored

            ID 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.

            Reset 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.

            Mandatory for LDAPS connections.

            Format: `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

            who 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

            Language tag for messages to creator
          type: string
        expiration:
          $ref: "#/components/schemas/ObjectExpiration"
        fileKey:
          $ref: "#/components/schemas/FileKey"
        internalNotes:
          description: |-
            &#128640; Since v4.11.0

            Internal notes
          maximum: 255
          type: string
        keyPair:
          $ref: "#/components/schemas/UserKeyPairContainer"
        mailBody:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Notification email content
          type: string
        mailRecipients:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            CSV string of recipient email addresses
          type: string
        mailSubject:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Notification email subject
          type: string
        maxDownloads:
          description: Max allowed downloads
          format: int32
          type: integer
        name:
          description: |-
            Alias name

            (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

            Notify 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

            Notify recipients via email

            Please use `POST /shares/downloads/{share_id}/email` API instead.
          type: boolean
        sendSms:
          default: false
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Send share password via SMS

            Please 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

            CSV string of recipient MSISDNs
          type: string
        textMessageRecipients:
          description: |-
            &#128640; Since v4.11.0

            List of recipient FQTNs

            E.123 / E.164 Format
          items:
            description: |-
              List of recipient FQTNs

              E.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:

            * `1` - public

            * `2` - internal

            * `3` - confidential

            * `4` - strictly confidential



            (default: classification from parent room)
          enum:
            - 1
            - 2
            - 3
            - 4
          format: int32
          type: integer
        directS3Upload:
          default: false
          description: |-
            &#128640; Since v4.15.0

            Upload direct to S3
          type: boolean
        expiration:
          $ref: "#/components/schemas/ObjectExpiration"
        name:
          description: File name
          type: string
        notes:
          description: |-
            User notes

            Use 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

            Time the node was created on external file system

            (default: current server datetime in UTC format)
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time the content of a node was last modified on external file system

            (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

            Classification ID:

            * `1` - public

            * `2` - internal

            * `3` - confidential

            * `4` - strictly confidential



            Provided (or default) classification is taken from room

            when file gets uploaded without any classification.
          enum:
            - 1
            - 2
            - 3
            - 4
          format: int32
          type: integer
        name:
          description: Name
          type: string
        notes:
          description: |-
            User notes

            Use 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

            Time the node was created on external file system

            (default: current server datetime in UTC format)
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time the content of a node was last modified on external file system

            (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

            Validity 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

            * `authorization_code`

            * `implicit`

            * `password`

            * `client_credentials`

            * `refresh_token`



            cf. [RFC 6749](https://tools.ietf.org/html/rfc6749)
          enum:
            - authorization_code
            - client_credentials
            - implicit
            - password
            - refresh_token
          items:
            description: |-
              Authorized grant types

              * `authorization_code`

              * `implicit`

              * `password`

              * `client_credentials`

              * `refresh_token`



              cf. [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

            Flow, which is used at authentication
          enum:
            - authorization_code
            - hybrid
          type: string
        issuer:
          description: |-
            Issuer identifier of the IDP

            The 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.

            cf. [RFC 7636](https://tools.ietf.org/html/rfc7636)
          type: string
        pkceEnabled:
          default: false
          description: |-
            Determines whether PKCE is enabled.

            cf. [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

            who 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.

            Reset with `0`
          format: int64
          type: integer
        userInfoEndPointUrl:
          description: URL of the user info endpoint
          type: string
        userInfoSource:
          description: |-
            &#128640; Since v4.23.0

            Source, 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.

            Use empty string to remove.
          type: string
        userUpdateEnabled:
          default: false
          description: |-
            Determines if the DRACOON account is updated with data from AD / IDP.

            For 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

            A room requires at least one admin (user or group)
          items:
            description: |-
              List of group ids

              A room requires at least one admin (user or group)
            format: int64
            type: integer
          type: array
        adminIds:
          description: |-
            List of user ids

            A room requires at least one admin (user or group)
          items:
            description: |-
              List of user ids

              A room requires at least one admin (user or group)
            format: int64
            type: integer
          type: array
        classification:
          default: 2
          description: |-
            Classification ID:

            * `1` - public

            * `2` - internal

            * `3` - confidential

            * `4` - strictly confidential



            Provided (or default) classification is taken from room

            when 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

            Is recycle bin active (for rooms only)

            Recycle bin is always on (disabling is not possible).
          type: boolean
        inheritPermissions:
          description: |-
            Inherit permissions from parent room

            (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:

            * `autoallow`

            * `pending`



            Only relevant if `adminGroupIds` has items.
          enum:
            - autoallow
            - pending
          type: string
        notes:
          description: |-
            User notes

            Use 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

            Time the node was created on external file system

            (default: current server datetime in UTC format)
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time the content of a node was last modified on external file system

            (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

            Upload 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

            Time the node was created on external file system

            (default: current server datetime in UTC format)
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time the content of a node was last modified on external file system

            (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

            Language 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

            Internal notes
          maximum: 255
          type: string
        mailBody:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Notification email content
          type: string
        mailRecipients:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            CSV string of recipient email addresses
          type: string
        mailSubject:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Notification 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

            (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

            Notify 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

            Notify recipients via email

            Please use `POST /shares/uploads/{share_id}/email` API instead.
          type: boolean
        sendSms:
          default: false
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Send share password via SMS

            Please use `textMessageRecipients` attribute instead.
          type: boolean
        showCreatorName:
          default: false
          description: |-
            &#128640; Since v4.11.0

            Show creator first and last name.
          type: boolean
        showCreatorUsername:
          default: false
          description: |-
            &#128640; Since v4.11.0

            Show 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

            CSV string of recipient MSISDNs
          type: string
        targetId:
          description: Target room or folder ID
          format: int64
          type: integer
        textMessageRecipients:
          description: |-
            &#128640; Since v4.11.0

            List of recipient FQTNs

            E.123 / E.164 Format
          items:
            description: |-
              List of recipient FQTNs

              E.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

            Authentication methods:

            * `sql`

            * `active_directory`

            * `radius`

            * `openid`

            use `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

            Gender

            Do NOT use `gender`! It will be ignored.
          type: string
        isNonmemberViewer:
          description: |-
            &#128640; Since v4.12.0

            Determines 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

            User login name
          type: string
        mfaConfig:
          $ref: "#/components/schemas/MfaConfig"
        needsToChangePassword:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            Determines whether user has to change his / her initial password.

            use `authDate.mustChangePassword` instead
          type: boolean
        notifyUser:
          description: |-
            &#128640; Since v4.9.0

            Notify user about his new account

            * default: `true` for `basic` auth type

            * default: `false` for `active_directory`, `openid` and `radius` auth types
          type: boolean
        password:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            An initial password may be preset

            use `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

            Job title
          type: string
        userName:
          description: |-
            &#128640; Since v4.13.0

            Username
          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

            Customer activation code string:

            * valid only for types `free` and `demo`

            * 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

            Customer UUID
          type: string
        id:
          description: Unique identifier for the customer
          format: int64
          type: integer
        isLocked:
          default: false
          description: |-
            Customer is locked:

            * `false` - unlocked

            * `true` - locked



            All 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

            Customer lock status:

            * `false` - unlocked

            * `true` - locked



            Please use `isLocked` instead.

            All 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`)

            (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

            Maximal 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:

            * `1` - public

            * `2` - internal

            * `3` - confidential

            * `4` - strictly confidential



            (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

            `/` if node is a root node (room)
          type: string
        referenceId:
          description: |-
            &#128640; Since v4.37.0

            Reference 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

            `/` if node is a root node (room)
          type: string
        referenceId:
          description: |-
            &#128640; Since v4.37.0

            Reference ID. Identical across all versions of a file
          format: int64
          type: integer
        timestampCreation:
          description: |-
            &#128640; Since v4.22.0

            Time the node was created on external file system
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time 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

            Classification ID:

            * `1` - public

            * `2` - internal

            * `3` - confidential

            * `4` - strictly confidential



            (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

            Internal notes
          maximum: 255
          type: string
        isEncrypted:
          description: |-
            Encrypted share

            (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

            Notify creator on every download.
          type: boolean
        recipients:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            CSV 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

            CSV 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`)

            (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.

            After that period, all entries are deleted.

            Recommended 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

            Required if failover server is enabled.
          type: string
        failoverPort:
          description: |-
            RADIUS Failover Server Port

            Required 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

            (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

            (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

            Authentication methods:

            * `sql`

            * `active_directory`

            * `radius`

            * `openid`

            use `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

            Gender
          type: string
        language:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.7.0

            Language 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

            User login name
          type: string
        needsToChangePassword:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            Determines whether user has to change his / her initial password.

            use `authDate.mustChangePassword` instead
          type: boolean
        needsToChangeUserName:
          default: false
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            If `true`, the user must change the `userName` at the first login.
          type: boolean
        notifyUser:
          description: |-
            Notify user about his new account

            * default: `true` for `basic` auth type

            * default: `false` for `active_directory`, `openid` and `radius` auth types
          type: boolean
        password:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            An initial password may be preset

            use `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

            Job title
          type: string
        userName:
          description: |-
            &#128640; Since v4.13.0

            Username
          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.

            Can 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

            Defines if login fields should be hidden
          type: boolean
        mediaServerEnabled:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.12.0

            Determines if the media server is enabled
          type: boolean
        s3TagsEnabled:
          description: |-
            &#128640; Since v4.9.0

            Defines 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

            Allow weak password

            * A weak password has to fulfill the following criteria:

               * is at least 8 characters long

               * contains letters and numbers

            * A strong password has to fulfill the following criteria in addition:

               * contains at least one special character

               * contains upper and lower case characters

            Please 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.

            Can 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

            Defines if login fields should be hidden
          type: boolean
        homeRoomParentId:
          description: |-
            &#128640; Since v4.10.0

            Homeroom Parent ID
          format: int64
          readOnly: true
          type: integer
        homeRoomsActive:
          description: |-
            &#128640; Since v4.10.0

            Homerooms active
          readOnly: true
          type: boolean
        mediaServerEnabled:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.12.0

            Determines if the media server is enabled
          type: boolean
        s3TagsEnabled:
          description: |-
            &#128640; Since v4.9.0

            Defines 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

            Subscription 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

            Allow weak password

            * A weak password has to fulfill the following criteria:

               * is at least 8 characters long

               * contains letters and numbers

            * A strong password has to fulfill the following criteria in addition:

               * contains at least one special character

               * contains upper and lower case characters

            Please 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)

            *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

            Display name

            use information from `UserInfo` instead to combine a display name
          type: string
        email:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Email 

            use `email` from `UserInfo` instead
          type: string
        id:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Unique identifier for the user

            use `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

            User 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

            Determines 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

            Enforce direct upload to S3
          type: boolean
        smsConfigEnabled:
          description: Allow sending of share passwords via SMS
          type: boolean
        tenantUuid:
          description: |-
            &#128640; Since v4.21.0

            Current 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

            `/` 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

            (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

            `/` 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:

            * `0` - Success

            * `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

            (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`)

            (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

            Language ID or ISO 639-1 code
          type: string
        login:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.7.0

            User login name
          type: string
        password:
          description: Password
          type: string
        state:
          description: |-
            For RADIUS Access-Challenge

            If 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

            Username
          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

            Time the node was created on external file system

            (default: current server datetime in UTC format)
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time the content of a node was last modified on external file system

            (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

            Node IDs

            Please use `items` instead.
          items:
            deprecated: true
            description: |-
              Node IDs

              Please use `items` instead.
            format: int64
            type: integer
          type: array
        resolutionStrategy:
          default: autorename
          description: |-
            Node conflict resolution strategy:

            * `autorename`

            * `overwrite`

            * `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

            Customer activation code string:

            * valid only for types `free` and `demo`

            * 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:

            * `false` - unlocked

            * `true` - locked



            All 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

            Customer lock status:

            * `false` - unlocked

            * `true` - locked



            Please use `isLocked` instead.

            All 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`)

            (not used)
          format: int32
          type: integer
        userMax:
          description: Maximal number of users
          format: int32
          type: integer
        webhooksMax:
          description: |-
            &#128640; Since v4.19.0

            Maximal 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

            Customer activation code string:

            * valid only for types `free` and `demo`

            * 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

            Customer 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:

            * `false` - unlocked

            * `true` - locked



            All 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

            Customer lock status:

            * `false` - unlocked

            * `true` - locked



            Please use `isLocked` instead.

            All 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`)

            (not used)
          format: int32
          type: integer
        userMax:
          description: Maximal number of users
          format: int32
          type: integer
        webhooksMax:
          description: |-
            &#128640; Since v4.19.0

            Maximal 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

            Auth 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

            Child nodes list (if requested)

            (for rooms / folders only)
          items:
            $ref: "#/components/schemas/Node"
          type: array
        classification:
          description: |-
            Classification ID:

            * `1` - public

            * `2` - internal

            * `3` - confidential

            * `4` - strictly confidential
          enum:
            - 1
            - 2
            - 3
            - 4
          format: int32
          type: integer
        cntChildren:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Number of direct children

            (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

            (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

            Amount of direct child files where this node is the parent node

            (no recursion; for rooms / folders only)
          format: int32
          type: integer
        cntFolders:
          description: |-
            &#128640; Since v4.11.0

            Amount of direct child folders where this node is the parent node

            (no recursion; for rooms / folders only)
          format: int32
          type: integer
        cntRooms:
          description: |-
            &#128640; Since v4.11.0

            Amount of direct child rooms where this node is the parent node

            (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

            (default: `false` if `parentId` is `0`; otherwise: `true`)
          type: boolean
        isBrowsable:
          description: |-
            &#128640; Since v4.11.0

            Determines 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

            `/` 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

            Reference 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

            Time the node was created on external file system
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time 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,

            may 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.

            Leave empty to disable notifications.
          items:
            description: |-
              List of notification channel IDs.

              Leave 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

            Creation 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

            ID of the OAuth authorization
          format: int64
          type: integer
        isCurrentAuthorization:
          description: |-
            &#128640; Since v4.25.0

            Determines whether authorization matches the one from Authorization Header
          type: boolean
        isStandard:
          description: |-
            &#128640; Since v4.12.0

            Determines whether client is a standard client.
          type: boolean
        usedAt:
          description: |-
            &#128640; Since v4.13.0

            Usage date of the authorization

            (Time of last usage.)
          format: date-time
          type: string
        userAgentCategory:
          description: |-
            &#128640; Since v4.12.0

            User agent category.
          enum:
            - browser
            - native
            - unknown
          type: string
        userAgentInfo:
          description: |-
            &#128640; Since v4.12.0

            User agent info.
          type: string
        userAgentOs:
          description: |-
            &#128640; Since v4.12.0

            User agent OS.
          type: string
        userAgentType:
          description: |-
            &#128640; Since v4.12.0

            User 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

            Validity 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

            * `authorization_code`

            * `implicit`

            * `password`

            * `client_credentials`

            * `refresh_token`



            cf. [RFC 6749](https://tools.ietf.org/html/rfc6749)
          enum:
            - authorization_code
            - client_credentials
            - implicit
            - password
            - refresh_token
          items:
            description: |-
              Authorized grant types

              * `authorization_code`

              * `implicit`

              * `password`

              * `client_credentials`

              * `refresh_token`



              cf. [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

            Flow, 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

            The 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.

            cf. [RFC 7636](https://tools.ietf.org/html/rfc7636)
          type: string
        pkceEnabled:
          default: false
          description: |-
            Determines whether PKCE is enabled.

            cf. [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

            Usually `openid` and the names of the requested claims.
          items:
            description: |-
              List of requested scopes

              Usually `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

            who 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.

            Reset with `0`
          format: int64
          type: integer
        userInfoEndPointUrl:
          description: URL of the user info endpoint
          type: string
        userInfoSource:
          description: |-
            &#128640; Since v4.23.0

            Source, 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.

            Use empty string to remove.
          type: string
        userUpdateEnabled:
          default: false
          description: |-
            Determines if the DRACOON account is updated with data from AD / IDP.

            For 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

            The 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.

            Use 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:

            * `ACCEPTED`

            * `WAITING`

            * `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:

            * `ACCEPTED`

            * `WAITING`

            * `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

            use `id` from `GroupInfo` instead
          format: int64
          type: integer
        name:
          description: |-
            Group name

            use `name` from `GroupInfo` instead
          type: string
      required:
        - id
        - name
      type: object
    PendingUserData:
      deprecated: true
      description: Pending user information
      properties:
        displayName:
          description: |-
            Display name

            use information from `UserInfo` instead to combine a display name
          type: string
        email:
          description: |-
            Email 

            use `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

            Creation date
          format: date-time
          type: string
        createdBy:
          description: |-
            &#128640; Since v4.24.0

            Created 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

            Determines 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

            * `application/zip` (for folders and rooms)

            * 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

            Creation date
          format: date-time
          type: string
        createdBy:
          description: |-
            &#128640; Since v4.24.0

            Created 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

            Creator name
          type: string
        creatorUsername:
          description: |-
            &#128640; Since v4.11.0

            Creator 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

            Instruction how to handle the situation.
          type: string
        replyState:
          description: |-
            For RADIUS Access-Challenge

            If 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

            Language ID or ISO 639-1 code
          type: string
        login:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            User login name
          type: string
        userName:
          description: |-
            &#128640; Since v4.13.0

            Username
          type: string
      type: object
    ResetPasswordTokenValidateResponse:
      description: Password reset information
      properties:
        allowSystemGlobalWeakPassword:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.14.0

            Allow weak password

            Please use `loginPasswordPolicies` instead
          type: boolean
        firstName:
          description: User first name
          type: string
        gender:
          default: n
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.12.0

            Gender
          type: string
        lastName:
          description: User last name
          type: string
        loginPasswordPolicies:
          $ref: "#/components/schemas/LoginPasswordPolicies"
        title:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.18.0

            Job 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

            (default: previous parent ID)
          format: int64
          type: integer
        resolutionStrategy:
          default: autorename
          description: |-
            Node conflict resolution strategy:

            * `autorename`

            * `overwrite`

            * `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

            Display name

            use information from `UserInfo` instead to combine a display name
          type: string
        id:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Unique identifier for the user

            use `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

            List 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

            Is recycle bin active (for rooms only)

            Recycle 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:

            * `autoallow`

            * `pending`



            Only 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:

            * `autoallow`

            * `pending`



            Only 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.

            All files in a room will have their expiration date set to this period after their respective upload. 

            0 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.

            All files in a room will have their expiration date set to this period after their respective upload. 

            0 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

            Display name

            use information from `UserInfo` instead to combine a display name
          type: string
        email:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Email 

            use `email` from `UserInfo` instead
          type: string
        id:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Unique identifier for the user

            use `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

            User 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

            S3 bucket name

            use `bucketUrl` instead
          type: string
        bucketUrl:
          description: S3 object storage bucket URL
          type: string
        endpointUrl:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.24.0

            S3 object storage endpoint URL

            use `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

            S3 bucket name

            use `bucketUrl` instead
          type: string
        bucketUrl:
          description: S3 object storage bucket URL
          type: string
        endpointUrl:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.24.0

            S3 object storage endpoint URL

            use `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

            S3 bucket name

            use `bucketUrl` instead
          type: string
        bucketUrl:
          description: S3 object storage bucket URL
          type: string
        endpointUrl:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.24.0

            S3 object storage endpoint URL

            use `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:

            * `transfer` - upload in progress

            * `finishing` - completing file upload

            * `done` - file upload successully done

            * `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:

            * `transfer` - upload in progress

            * `finishing` - completing file upload

            * `done` - file upload successully done

            * `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

            Minimum 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`)

            (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

            Determines 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

            Defines 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

            Defines 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

            Authentication methods:

            * `sql`

            * `active_directory`

            * `radius`

            * `openid`

            use `authData` instead
          items:
            $ref: "#/components/schemas/AuthMethod"
          type: array
        hideLoginInputFields:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.42.0

            Defines if login fields should be hidden
          type: boolean
        languageDefault:
          description: |-
            System default language

            cf. [RFC 5646](https://tools.ietf.org/html/rfc5646)
          type: string
        s3EnforceDirectUpload:
          description: |-
            &#128640; Since v4.15.0

            Determines whether S3 direct upload is enforced or not
          type: boolean
        s3Hosts:
          description: |-
            &#128640; Since v4.14.0

            List 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

            Defines 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.

            Mandatory for LDAPS connections.

            Format: `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.

            Mandatory for LDAPS connections.

            Format: `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`,

            the 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

            Determines whether a room is created for each user that is created by automatic import (like a home folder).

            Room's name will equal the user's login name.
          type: boolean
        homeFolderParent:
          description: |-
            DEPRECATED, will be ignored

            ID 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.

            Reset 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.

            Mandatory for LDAPS connections.

            Format: `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

            who 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

            Restricted OAuth access token validity (in seconds)
          format: int32
          type: integer
        overwriteEnabled:
          description: |-
            &#128640; Since v4.13.0

            Defines if OAuth token restrictions are enabled
          type: boolean
        refreshTokenValidity:
          description: |-
            &#128640; Since v4.13.0

            Restricted 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:

            * `false` - unlocked

            * `true` - locked



            All 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

            Customer lock status:

            * `false` - unlocked

            * `true` - locked



            Please use `isLocked` instead.

            All 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

            Maximal 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

            Customer activation code string:

            * valid only for types `free` and `demo`

            * 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

            Customer UUID
          type: string
        id:
          description: Unique identifier for the customer
          format: int64
          type: integer
        isLocked:
          default: false
          description: |-
            Customer is locked:

            * `false` - unlocked

            * `true` - locked



            All 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

            Customer lock status:

            * `false` - unlocked

            * `true` - locked



            Please use `isLocked` instead.

            All 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`)

            (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

            Maximal 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

            Internal 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

            Notify 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

            E.123 / E.164 Format
          items:
            description: |-
              List of recipient FQTNs

              E.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`)

            (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.

            After that period, all entries are deleted.

            Recommended 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:

            * `1` - public

            * `2` - internal

            * `3` - confidential

            * `4` - strictly confidential
          format: int32
          type: integer
        expiration:
          $ref: "#/components/schemas/ObjectExpiration"
        name:
          description: File name
          type: string
        notes:
          description: |-
            User notes

            Use empty string to remove.
          type: string
        timestampCreation:
          description: |-
            &#128640; Since v4.22.0

            Time the node was created on external file system

            (default: current server datetime in UTC format)
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time the content of a node was last modified on external file system

            (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:

            * `1` - public

            * `2` - internal

            * `3` - confidential

            * `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

            Classification ID:

            * `1` - public

            * `2` - internal

            * `3` - confidential

            * `4` - strictly confidential



            Provided (or default) classification is taken from room

            when 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

            Use empty string to remove.
          type: string
        timestampCreation:
          description: |-
            &#128640; Since v4.22.0

            Time the node was created on external file system

            (default: current server datetime in UTC format)
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time the content of a node was last modified on external file system

            (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.

            Can 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

            Defines if login fields should be hidden
          type: boolean
        mediaServerEnabled:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.12.0

            Determines if the media server is enabled
          type: boolean
        s3TagsEnabled:
          description: |-
            &#128640; Since v4.9.0

            Defines 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

            Allow weak password

            * A weak password has to fulfill the following criteria:

               * is at least 8 characters long

               * contains letters and numbers

            * A strong password has to fulfill the following criteria in addition:

               * contains at least one special character

               * contains upper and lower case characters

            Please 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

            Determines whether a login password change should be enforced for all users

            Only 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

            (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`)

            (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

            Validity 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

            * `authorization_code`

            * `implicit`

            * `password`

            * `client_credentials`

            * `refresh_token`



            cf. [RFC 6749](https://tools.ietf.org/html/rfc6749)
          enum:
            - authorization_code
            - client_credentials
            - implicit
            - password
            - refresh_token
          items:
            description: |-
              Authorized grant types

              * `authorization_code`

              * `implicit`

              * `password`

              * `client_credentials`

              * `refresh_token`



              cf. [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

            Flow, which is used at authentication
          enum:
            - authorization_code
            - hybrid
          type: string
        issuer:
          description: |-
            Issuer identifier of the IDP

            The 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.

            cf. [RFC 7636](https://tools.ietf.org/html/rfc7636)
          type: string
        pkceEnabled:
          default: false
          description: |-
            Determines whether PKCE is enabled.

            cf. [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

            Usually `openid` and the names of the requested claims.
          items:
            description: |-
              List of requested scopes

              Usually `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

            who 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.

            Reset with `0`
          format: int64
          type: integer
        userInfoEndPointUrl:
          description: URL of the user info endpoint
          type: string
        userInfoSource:
          description: |-
            &#128640; Since v4.23.0

            Source, 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.

            Use empty string to remove.
          type: string
        userUpdateEnabled:
          default: false
          description: |-
            Determines if the DRACOON account is updated with data from AD / IDP.

            For 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

            Use empty string to remove.
          type: string
        quota:
          description: Quota in byte
          format: int64
          type: integer
        timestampCreation:
          description: |-
            &#128640; Since v4.22.0

            Time the node was created on external file system
          format: date-time
          type: string
        timestampModification:
          description: |-
            &#128640; Since v4.22.0

            Time 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`)

            (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

            Defines 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

            Internal 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

            Notify 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

            E.123 / E.164 Format
          items:
            description: |-
              List of recipient FQTNs

              E.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

            Present, if EULA is system global active.

            cf. `GET system/config/settings/general` - `eulaEnabled`

            If 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

            Gender

            Do NOT use `gender`! It will be ignored.
          type: string
        language:
          description: |-
            &#128640; Since v4.20.0

            IETF language tag
          type: string
        lastName:
          description: User last name
          type: string
        login:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            User login name
          type: string
        phone:
          description: Phone number
          type: string
        title:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.18.0

            Job title
          type: string
        userName:
          description: |-
            &#128640; Since v4.13.0

            Username
          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

            Authentication methods:

            * `sql`

            * `active_directory`

            * `radius`

            * `openid`

            use `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

            Gender

            Do NOT use `gender`! It will be ignored.
          type: string
        isLocked:
          default: false
          description: |-
            User is locked:

            * `false` - unlocked

            * `true` - locked



            User 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

            User lock status:

            * `0` - locked

            * `1` - Web access allowed

            * `2` - Web and mobile access allowed



            Please 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

            Job title
          type: string
        userName:
          description: |-
            &#128640; Since v4.13.0

            Username
          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

            Internal 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

            Notify creator on every upload.
          type: boolean
        recipients:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            CSV string of recipient email addresses
          type: string
        showCreatorName:
          description: |-
            &#128640; Since v4.11.0

            Show creator first and last name.
          type: boolean
        showCreatorUsername:
          description: |-
            &#128640; Since v4.11.0

            Show 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

            CSV 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

            Authentication methods:

            * `sql`

            * `active_directory`

            * `radius`

            * `openid`

            use `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

            Gender
          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.

            Possible if client-side encryption is active for this customer
          type: boolean
        isLocked:
          default: false
          description: |-
            User is locked:

            * `false` - unlocked

            * `true` - locked



            User is locked and can not login anymore.
          type: boolean
        language:
          description: |-
            &#128640; Since v4.20.0

            IETF 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

            Last 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

            Last successful logon IP address
          type: string
        lastName:
          description: User last name
          type: string
        lockStatus:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.7.0

            User lock status:

            * `0` - locked

            * `1` - Web access allowed

            * `2` - Web and mobile access allowed



            Please use `isLocked` instead.
          format: int32
          type: integer
        login:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            User login name
          type: string
        mustSetEmail:
          default: false
          description: |-
            &#128640; Since v4.13.0

            If `true`, the user must set the `email` at the first login.
          type: boolean
        needsToAcceptEULA:
          description: |-
            User has accepted EULA.

            Present, if EULA is system global active.

            cf. `GET system/config/settings/general` - `eulaEnabled`
          type: boolean
        needsToChangePassword:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            Determines whether user has to change his / her password
          type: boolean
        needsToChangeUserName:
          default: false
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            If `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

            Job 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

            Username
          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



            Authentication methods:

            * `basic`

            * `active_directory`

            * `radius`

            * `openid`
          type: string
        mustChangePassword:
          description: |-
            Determines whether user has to change his / her password

            * default: `true` for `basic` auth type

            * 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)

            *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



            Authentication methods:

            * `basic`

            * `active_directory`

            * `radius`

            * `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



            Authentication methods:

            * `basic`

            * `active_directory`

            * `radius`

            * `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

            Authentication methods:

            * `sql`

            * `active_directory`

            * `radius`

            * `openid`

            use `authData` instead
          items:
            $ref: "#/components/schemas/UserAuthMethod"
          type: array
        avatarUuid:
          description: |-
            &#128640; Since v4.11.0

            Avatar 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

            Gender
          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.

            Possible if client-side encryption is active for this customer
          type: boolean
        isLocked:
          default: false
          description: |-
            User is locked:

            * `false` - unlocked

            * `true` - locked



            User 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

            User lock status:

            * `0` - locked

            * `1` - Web access allowed

            * `2` - Web and mobile access allowed



            Please use `isLocked` instead.
          format: int32
          type: integer
        login:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            User 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

            Job title
          type: string
        userAttributes:
          $ref: "#/components/schemas/UserAttributes"
        userName:
          description: |-
            &#128640; Since v4.13.0

            Username
          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

            Avatar UUID
          type: string
        displayName:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.11.0

            Display name

            use other fields from `UserInfo` instead to combine a display name
          type: string
        email:
          description: |-
            &#128640; Since v4.11.0

            Email 
          type: string
        firstName:
          description: |-
            &#128640; Since v4.11.0

            User 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

            User last name (mandatory if `userType` is `internal`)
          type: string
        title:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.18.0

            Job title
          type: string
        userName:
          description: |-
            &#128640; Since v4.13.0

            Username (only returned for `internal` users)
          type: string
        userType:
          description: |-
            &#128640; Since v4.11.0

            User type:

            * `internal` - ordinary DRACOON user

            * `external` - external user without DRACOON account

            * `system` - system user (non human &#128125;)

            * `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

            Avatar 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

            Gender
          type: string
        hasManageableRooms:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.27.0

            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.

            Possible if client-side encryption is active for this customer
          type: boolean
        isLocked:
          default: false
          description: |-
            User is locked:

            * `false` - unlocked

            * `true` - locked



            User 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

            User lock status:

            * `0` - locked

            * `1` - Web access allowed

            * `2` - Web and mobile access allowed



            Please use `isLocked` instead.
          format: int32
          type: integer
        login:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.13.0

            User login name
          type: string
        phone:
          description: Phone number
          type: string
        title:
          deprecated: true
          description: |-
            &#128679; Deprecated since v4.18.0

            Job title
          type: string
        userAttributes:
          $ref: "#/components/schemas/UserAttributes"
        userName:
          description: |-
            &#128640; Since v4.13.0

            Username
          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
