openapi: 3.0.1
servers:
  - url: /api/
    variables: {}
tags:
  - name: Costs
    description: Costs management methods
  - name: Budget groups
    description: Budget groups management methods
  - name: Budget
    description: Budget management
  - name: Configuration
    description: Configuration operations
  - name: External group
    description: Operation on external group
  - name: External user
    description: Operation on external user
  - name: Theme
    description: Theme configuration
  - name: TrainingApplications
    description: Training applications
  - name: TrainingCompanies
    description: External company for training
  - name: Translations
    description: Translation information methods
  - name: User
    description: User management methods
  - name: Users avatar
    description: Operations on users avatar
  - name: Applications
    description: Application management methods
  - name: 'Knowledge base '
    description: Operations on knowledge base content
  - name: Posts
    description: Operations on posts
  - name: Social events
    description: Operations on social events
  - name: Notifications
    description: Enables sending notifications
  - name: Friends
    description: Operations on friends
  - name: Comments
    description: Comments for object
  - name: Attachments
    description: Operations on attachements
  - name: Dictionaries
    description: Informations and operations about dictionaries
  - name: Contents
    description: Informations and operations about contents
  - name: Courses
    description: Informations and operations about courses
  - name: Results of courses
    description: Informations and operations about results of courses
  - name: Paths and programs
    description: Informations and operations about paths and programs
  - name: Groups
    description: Groups managing
  - name: OrgCharts
    description: Operation on Organization Charts
  - name: Learning sessions
    description: 'Informations about learning sessions (SCROM, AICC)'
  - name: Lessons
    description: Informations and operations about lessons
  - name: Messages
    description: Information about messages
  - name: OrgChart
    description: Information about org chart
  - name: Permissions
    description: Methods related to permissions configuration
  - name: Results
    description: Informations about results
  - name: Rights and roles
    description: Methods related to user rights and roles
  - name: Channels
    description: Operations on channels
  - name: Channel
    description: Information about channel
  - name: Surveys
    description: Surveys
  - name: System
    description: System specific methods
  - name: Terms
    description: Informations and operations about terms
  - name: Terms Results
    description: Informations and operations about terms results
  - name: Trainings
    description: Informations and operations about trainings
  - name: User profiles
    description: Information for user profiles
  - name: UserActivity
    description: Activities registry
  - name: User reactions
    description: Information for user reactions
  - name: UserAssignation
    description: Informations and operations about user assignations
  - name: UserRelation
    description: Informations and operations about user relations
  - name: Users
    description: Informations and operations about users
  - name: Program
    description: Program management methods
paths:
  /costs:
    post:
      tags:
        - Costs
      summary: Create or modify one cost
      description: Creates or modifies costs in specified budget
      operationId: addOrUpdateBudgetCost
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetCost'
      responses:
        '200':
          description: Successfully update of cost
        '500':
          description: Error while adding or updating
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /costs/batch:
    post:
      tags:
        - Costs
      summary: Create or update multiple costs at once
      description: Creates or updates multiple costs at once (in batch)
      operationId: updateBudgetCosts
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/BudgetCost'
      responses:
        '200':
          description: Successfully saved costs
        '500':
          description: Error while saving
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/budgetgroups/{budgetGroupId}/users':
    post:
      tags:
        - Budget groups
      summary: Add or remove user to budget group
      description: Adds or remove user to budget group
      operationId: addOrUpdateBudgetGroupUser
      parameters:
        - name: budgetGroupId
          in: path
          description: Id of budget group
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetGroupUser'
      responses:
        '200':
          description: Successfully modified associations
        '400':
          description: Wrong request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while modifying assocations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /budgetgroups/users/batch:
    post:
      tags:
        - Budget groups
      summary: Add or remove users from budget groups
      description: Adds or removes users from budget groups (in batch)
      operationId: updateBudgetGroupUsers
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/BudgetGroupUser'
      responses:
        '200':
          description: Successfully modified associations
        '400':
          description: Wrong request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while modifying assocations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /budgetgroups:
    post:
      tags:
        - Budget groups
      summary: Create or update budget group details
      description: Creates or updates budget group details
      operationId: addOrUpdateBudgetGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetGroup'
      responses:
        '200':
          description: Successfully saved details
        '500':
          description: Error while adding or updating
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /budgetgroups/batch:
    post:
      tags:
        - Budget groups
      summary: Create or update multiple budget group details
      description: Creates or updates multiple budget group details (in batch)
      operationId: updateBudgetGroups
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/BudgetGroup'
      responses:
        '200':
          description: Successfully saved details
        '500':
          description: Error while adding or updating
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/budgetgroups/{budgetGroupId}/users/{userId}':
    delete:
      tags:
        - Budget groups
      summary: Remove user from budget group
      description: Removes user from budget group
      operationId: deleteBudgetGroupUser
      parameters:
        - name: budgetGroupId
          in: path
          description: Id of budget group
          required: true
          schema:
            type: string
        - name: userId
          in: path
          description: Id of user
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successfully modified associations
        '400':
          description: Wrong request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while modifying assocations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /budgets:
    post:
      tags:
        - Budget
      summary: Create or update one budget
      description: Creates or updates budget definition
      operationId: addOrUpdateBudget
      requestBody:
        description: Budget to save
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Budget'
      responses:
        '200':
          description: Successfully saved budget
  /budgets/batch:
    post:
      tags:
        - Budget
      summary: Create or update multiple budgets at once
      description: Creates or updates multiple budgets at once (in batch)
      operationId: updateBudgets
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Budget'
      responses:
        '200':
          description: Successfully saved budgets
  /v2/config/fcm-service-url:
    get:
      tags:
        - Configuration
      summary: Get FCM service address
      description: Returns FCM service address for communicator services
      operationId: getFcmServiceUrl
      responses:
        '200':
          description: Successfully returned value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigDto'
  /v2/config/communicator-service-url:
    get:
      tags:
        - Configuration
      summary: Get communicator service address
      description: Returns communicator service address
      operationId: getCommunicatorServiceUrl
      responses:
        '200':
          description: Successfully returned value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigDto'
  /v2/config/knowledgebase-latest-range:
    get:
      tags:
        - Configuration
      summary: Get Knowledge Base 'latest' range in days
      description: Returns Knowledge Base 'latest' range in days
      operationId: getKBLatestDaysRange
      responses:
        '200':
          description: Successfully returned value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigDto'
  '/v2/config/property/{propertyName}':
    get:
      tags:
        - Configuration
      operationId: getProperty
      parameters:
        - name: propertyName
          in: path
          required: true
          schema:
            type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
    post:
      tags:
        - Configuration
      operationId: setMoveUsersToNode
      parameters:
        - name: propertyName
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: New value of instance property
        content:
          application/json:
            schema:
              type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
  /v2/config/mail-configuration:
    get:
      tags:
        - Configuration
      operationId: getMailConfiguration
      responses:
        default:
          description: default response
          content:
            application/json: {}
  /v2/config/onlyNewsPopular:
    get:
      tags:
        - Configuration
      operationId: hasOnlyNewsPopular
      responses:
        default:
          description: default response
          content:
            application/json: {}
  '/v2/external/groups/{externalId}':
    get:
      tags:
        - External group
      summary: Get group details
      description: Get group details
      operationId: getGroup
      parameters:
        - name: externalId
          in: path
          description: External group id
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successfully fetched group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupDto'
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Group not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
    put:
      tags:
        - External group
      summary: Adds or edits group by external ID
      description: Adds or edits group by external ID
      operationId: addOrUpdateGroupByExtIdByPUT
      parameters:
        - name: externalId
          in: path
          description: External Id of group to add/update
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalGroupDto'
        required: true
      responses:
        '200':
          description: Group successfully added/updated. Internal ID is returned.
          content:
            application/json:
              schema:
                type: long
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Group not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while updating group. Description of an error is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
    post:
      tags:
        - External group
      summary: Adds or edits group by external ID
      description: Adds or edits group by external ID
      operationId: addOrUpdateGroupByExtId
      parameters:
        - name: externalId
          in: path
          description: External Id of group to add/update
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalGroupDto'
        required: true
      responses:
        '200':
          description: Group successfully added/updated. Internal ID is returned.
          content:
            application/json:
              schema:
                type: long
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Group not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while updating group. Description of an error is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
    delete:
      tags:
        - External group
      summary: Deletes group
      description: Deletes group by external id
      operationId: deleteGroup
      parameters:
        - name: externalId
          in: path
          description: External group id
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Group was successfully deleted
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Group not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while deleting. Description of an error is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/external/groups/{externalId}/parent':
    post:
      tags:
        - External group
      summary: Move group by external id to root
      description: Move group by external id to root
      operationId: moveGroup
      parameters:
        - name: externalId
          in: path
          description: External id of group to be moved to root
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Group was successfully moved to root
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Group not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while moving. Description of an error is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/external/groups/{externalGroupId}/parent/{externalParentId}':
    post:
      tags:
        - External group
      summary: Move group by external id
      description: Move group by external id to group by external id
      operationId: moveGroup_1
      parameters:
        - name: externalGroupId
          in: path
          description: External Id of group to be moved
          required: true
          schema:
            type: string
        - name: externalParentId
          in: path
          description: External Id of new parent
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Group was successfully moved to specified parent
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Group not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while moving group. Description of an error is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/external/groups/parent/{externalId}':
    get:
      tags:
        - External group
      summary: Get children groups by external id of parent group
      description: Get children groups by external id of parent group
      operationId: getGroupsByParent
      parameters:
        - name: externalId
          in: path
          description: External Id of parent group
          required: true
          schema:
            type: string
        - name: types
          in: query
          description: Types of groups to select
          schema:
            type: array
            items:
              type: string
              enum:
                - COMMON
                - USER
                - STAT
                - COURSE
                - PATH
        - name: roles
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - ROLE_OBJECT_GROUP_STR_EDIT
                - ROLE_COURSE_VIEW
                - ROLE_COURSE_EDIT
                - ROLE_STAT_VIEW
                - ROLE_STAT_EDIT
                - ROLE_SURVEY_EDIT
                - ROLE_SURVEY_VIEW
                - ROLE_EDU_EVENT_VIEW
                - ROLE_EDU_EVENT_EDIT
                - ROLE_OBJECT_FILE_VIEW
                - ROLE_OBJECT_FILE_EDIT
                - ROLE_USER_VIEW
                - ROLE_USER_EDIT
                - ROLE_PATH_VIEW
                - ROLE_PATH_EDIT
                - ROLE_PROGRAM_VIEW
                - ROLE_PROGRAM_EDIT
                - ROLE_TASK_GROUP_EDIT
                - ROLE_TASK_GROUP_VIEW
                - ROLE_PULSE_CHECK_GROUP_EDIT
                - ROLE_PULSE_CHECK_GROUP_VIEW
      responses:
        '200':
          description: Successfully returned list of children groups
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupDto'
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Group not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/external/users/{externalId}/groups':
    get:
      tags:
        - External user
      summary: Get user groups by external user id
      description: Get user groups by external user id
      operationId: getExternalUserGroups
      parameters:
        - name: externalId
          in: path
          description: External user id
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successfully returned list of groups
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupDto'
        '500':
          description: Internal server error. Description of error is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/external/users/{externalId}':
    get:
      tags:
        - External user
      summary: Get user by external user id
      description: Get user by external user id
      operationId: getExternalUser
      parameters:
        - name: externalId
          in: path
          description: External Id of user
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '403':
          description: Insufficient permissions to get user data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error Description of error is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/theme/application-logo:
    get:
      tags:
        - Theme
      summary: 'Downloads application logo '
      description: Gets default or configured application logo
      operationId: getApplicationLogo
      responses:
        '200':
          description: Application logo content
          content:
            application/octet-stream:
              schema:
                type: file
                description: Application logo file
        '404':
          description: Application logo not found
  '/v2/theme/attachment-thumbnail/{attachmentType}':
    get:
      tags:
        - Theme
      summary: 'Downloads attachment thumbnail '
      description: Gets attachment thumbnail by attachment type
      operationId: getAttachmentThumbnail
      parameters:
        - name: attachmentType
          in: path
          description: 'Attachment type for which we want get thumbnail. Available value [ARCHIVE, AUDIO, EXCEL, FILE, IMAGE, PDF, POWERPOINT, TEXT, VIDEO, WORD]'
          required: true
          schema:
            type: string
            enum:
              - ARCHIVE
              - AUDIO
              - EXCEL
              - FILE
              - IMAGE
              - PDF
              - POWERPOINT
              - TEXT
              - VIDEO
              - WORD
      responses:
        '200':
          description: Attachment thumbnail
          content:
            application/octet-stream:
              schema:
                type: file
                description: Attachment thumbnail
        '404':
          description: Attachment thumbnail not found
  '/trainingapps/{applicationId}/fields':
    post:
      tags:
        - TrainingApplications
      summary: Update field's value of application
      description: Updates application's field's value. Field applicationId in request body is ignored. Uses only applicationId from path.
      operationId: addOrUpdateApplicationFieldValue
      parameters:
        - name: applicationId
          in: path
          description: Id of application
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationFieldValue'
      responses:
        '200':
          description: Successfully saved value
        '400':
          description: Wrong parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error Description of error is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
      deprecated: true
  /trainingapps/fields/batch:
    post:
      tags:
        - TrainingApplications
      summary: Update multiple fields value of application
      description: Updates multiple application's field's value at once
      operationId: updateApplicationFieldValues
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ApplicationFieldValue'
      responses:
        '200':
          description: Successfully saved value
        '400':
          description: Wrong parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error Description of error is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
      deprecated: true
  /trainingcompanies:
    post:
      tags:
        - TrainingCompanies
      summary: Update one training company details
      description: Updates one training company details
      operationId: updateOrAddTrainingCompany
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrainingCompany'
      responses:
        '200':
          description: Successfully saved details
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /trainingcompanies/batch:
    post:
      tags:
        - TrainingCompanies
      summary: Update multiple training company details at once
      description: Updates multiple training company details at once (in batch)
      operationId: updateTrainingCompanies
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TrainingCompany'
      responses:
        '200':
          description: Successfully saved details
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/translations/langs:
    get:
      tags:
        - Translations
      summary: Get available languages list
      description: Returns available languages list
      operationId: getLanguages
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LangDto'
  '/v2/translations/mobile/social/{lang}':
    get:
      tags:
        - Translations
      summary: Get social module translations
      description: Returns social module translations
      operationId: getMobileSocialTranslationsForLang
      parameters:
        - name: lang
          in: path
          description: 'Language symbol: pl, en, ...'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successfully returned translations
          content:
            application/json: {}
  /v2/translations/mobile/social:
    get:
      tags:
        - Translations
      summary: 'Social module translations for logged user '
      description: Social module translations
      operationId: getMobileSocialTranslations
      responses:
        '200':
          description: Successfully returned translations
          content:
            application/json: {}
  '/v2/user/{id}/group':
    get:
      tags:
        - User
      summary: Get groups to which the user belongs
      operationId: getUserGroups
      parameters:
        - name: id
          in: path
          description: Id of user
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully returned groups
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupDto'
        '403':
          description: Insufficient permission to get user data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while changing value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/user/{id}':
    get:
      tags:
        - User
      summary: Get details about user
      description: Returns details about user
      operationId: getUser
      parameters:
        - name: id
          in: path
          description: Id of user
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully returned details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '403':
          description: Insufficient permissions to get user data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error/ Description of error is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/user/{userId}/field/{fieldName}':
    put:
      tags:
        - User
      summary: Changes the value of the additional field of the given user.
      description: 'Does not change user groups. To use the mechanism of automatically creating groups and placing the user in them, use the user update method.'
      operationId: updateUserCustomField
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: string
        - name: fieldName
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: New value of field
        content:
          application/json:
            schema:
              type: string
      responses:
        '200':
          description: Successfully changed value of field
        '403':
          description: Insufficient permission to edit user field
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while changing value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/avatar/{userId}':
    get:
      tags:
        - Users avatar
      summary: Get user avatar file
      description: Returns user's avatar
      operationId: getAvatar
      parameters:
        - name: userId
          in: path
          description: Id of user
          required: true
          schema:
            type: string
      responses:
        '200':
          description: User avatar file
          content:
            application/json:
              schema:
                type: string
                format: binary
        '404':
          description: User avatar file not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/users/{userId}/avatar':
    put:
      tags:
        - User
      summary: Update user's avatar
      description: Updates user's avatar
      operationId: updateAvatar2
      parameters:
        - name: userId
          in: path
          description: Id of user
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimpleUserAvatar'
      responses:
        '200':
          description: Successfully saved avatar
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultSuccess'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/users/{userId}':
    delete:
      tags:
        - User
      summary: Delete an archived user
      description: Removes only an archived user
      operationId: deleteUser
      parameters:
        - name: userId
          in: path
          description: Id of user
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully removed an user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultSuccess'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/users/{userId}/force':
    delete:
      tags:
        - User
      summary: Delete an user
      description: Archives and deletes an user
      operationId: deleteUserForce
      parameters:
        - name: userId
          in: path
          description: Id of user
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully removed an user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultSuccess'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/users/{externalUserId}/avatar':
    post:
      tags:
        - User
      summary: Update user's avatar. Deprecated.
      description: 'Updates user''s avatar. Deprecated: use PUT /users/{userId}/avatar instead.'
      operationId: updateAvatar
      parameters:
        - name: externalUserId
          in: path
          description: External id of user
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserAvatar'
      responses:
        '200':
          description: Successfully saved avatar
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultSuccess'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
      deprecated: true
  /users:
    post:
      tags:
        - User
      summary: Create or update an user
      description: Creates or updates an user
      operationId: addUserOrUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '200':
          description: Successfully saved an user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultSuccess'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/users/{userId}/archive':
    put:
      tags:
        - User
      summary: Archive an user
      description: Moves an user to archive
      operationId: archiveUser
      parameters:
        - name: userId
          in: path
          description: Id of user
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully archived an user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultSuccess'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /users/batch:
    post:
      tags:
        - User
      summary: Create or update multiple users
      description: Creates or updates multiple users
      operationId: updateUsers
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/User'
      responses:
        '200':
          description: Successfully saved users
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultSuccess'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/application/{id}':
    get:
      tags:
        - Applications
      summary: Return detailed information about application
      description: Returns detailed information about application
      operationId: getApplicationById
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationDTO'
        '404':
          description: Application not found
  '/v2/application/type/{id}/filterableColumns':
    get:
      tags:
        - Applications
      summary: Get available columns for filtering list of applications
      description: Returns list of available columns which might be used for filterin list of applications
      operationId: getDocumentTypeFilterableColumns
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  '/v2/application/step/{stepId}/accept':
    put:
      tags:
        - Applications
      summary: Accept application's step
      description: Specified step will be accepted only if is current and not accepted/rejected/withdrawn.
      operationId: acceptStep
      parameters:
        - name: stepId
          in: path
          description: Id of step
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully accepted step
        '500':
          description: Error while accepting a step
  '/v2/application/step/{stepId}/reject':
    put:
      tags:
        - Applications
      summary: Reject application's step
      description: Specified step will be rejected only if is current and not accepted/rejected/withdrawn.
      operationId: rejectStep
      parameters:
        - name: stepId
          in: path
          description: Id of step
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RejectDto'
      responses:
        '200':
          description: Successfully rejected step
        '500':
          description: Error while rejecting a step
  '/v2/application/step/{stepId}/assignedUser/{userId}':
    put:
      tags:
        - Applications
      summary: Change user assigned for given step
      description: Changing user is only available for steps not proceed yet.
      operationId: changeStepUser
      parameters:
        - name: stepId
          in: path
          description: Id of step
          required: true
          schema:
            type: integer
            format: int64
        - name: userId
          in: path
          description: Id of new user
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangeStepUserDto'
      responses:
        '200':
          description: Successfully changed user
        '500':
          description: Error while changing user
  '/v2/application/type/{id}':
    post:
      tags:
        - Applications
      summary: Get applications by type
      description: Returns list of application of specified type
      operationId: getApplicationsByType
      parameters:
        - name: id
          in: path
          description: Id of type
          required: true
          schema:
            type: integer
            format: int64
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/knowledge-base/page/{pageId}':
    put:
      tags:
        - 'Knowledge base '
      summary: Update page
      description: Knowledge base page update
      operationId: updatePage
      parameters:
        - name: pageId
          in: path
          description: Id of knowledge base page
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KnowledgeBaseObjectApiDto'
      responses:
        '200':
          description: Page updated
    delete:
      tags:
        - 'Knowledge base '
      summary: Delete page
      description: Delete knowledge base page
      operationId: deletePage
      parameters:
        - name: pageId
          in: path
          description: Id of knowledge base page
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Page deleted
          content:
            application/json:
              schema:
                type: long
  '/v2/knowledge-base/page/{pageId}/publish':
    put:
      tags:
        - 'Knowledge base '
      summary: Publish page
      description: Knowledge base page publish
      operationId: publishPage
      parameters:
        - name: pageId
          in: path
          description: Id of knowledge base page
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KnowledgeBaseObjectApiDto'
      responses:
        '200':
          description: Page published
  '/v2/knowledge-base/page/{pageId}/unpublish':
    put:
      tags:
        - 'Knowledge base '
      summary: Unpublish page
      description: Knowledge base page unpublish
      operationId: unpublishPage
      parameters:
        - name: pageId
          in: path
          description: Id of knowledge base page
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KnowledgeBaseObjectApiDto'
      responses:
        '200':
          description: Page unpublished
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KnowledgeBaseObjectApiDto'
  /v2/knowledge-base/page:
    post:
      tags:
        - 'Knowledge base '
      summary: Add new page
      description: Add new knowledge page
      operationId: addPage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KnowledgeBaseObjectApiDto'
      responses:
        '200':
          description: Page added
  '/v2/knowledge-base/page/{pageId}/view':
    put:
      tags:
        - 'Knowledge base '
      summary: View page
      description: Knowledge base page view
      operationId: viewedPage
      parameters:
        - name: pageId
          in: path
          description: Id of knowledge base page
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KnowledgeBaseObjectApiDto'
      responses:
        '200':
          description: Page viewed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KnowledgeBaseObjectApiDto'
  '/v2/knowledge-base/news/{newsId}/view':
    post:
      tags:
        - 'Knowledge base '
      operationId: viewedNews
      parameters:
        - name: newsId
          in: path
          description: Id of knowledge base news
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KnowledgeBaseObjectApiDto'
      responses:
        default:
          description: default response
          content:
            application/json: {}
  '/v2/posts/markread/{postId}':
    post:
      tags:
        - Posts
      summary: mark post read
      description: mark post read by logged user
      operationId: markPostRead
      parameters:
        - name: postId
          in: path
          description: postId to mark as read by logged user
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Post marked as read
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Post not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/posts/{postId}':
    put:
      tags:
        - Posts
      summary: Edit post
      description: Edit post as logged user
      operationId: editPost
      parameters:
        - name: postId
          in: path
          description: Id of post
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SavePostDTO'
      responses:
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Post not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        default:
          description: Post edited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SocialEventApiDTO'
    delete:
      tags:
        - Posts
      summary: Delete post
      description: Delete post by post id
      operationId: deletePost
      parameters:
        - name: postId
          in: path
          description: Id of post
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Post deleted
          content:
            application/json:
              schema:
                type: long
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Post not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/posts/pin/{postId}':
    post:
      tags:
        - Posts
      summary: Pin post
      description: Pin post by logged user
      operationId: pinPost
      parameters:
        - name: postId
          in: path
          description: postId to pin
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Post pinned
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Post not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/posts/unpin/{postId}':
    post:
      tags:
        - Posts
      summary: Unpin post
      description: Unpin post by logged user
      operationId: unpinPost
      parameters:
        - name: postId
          in: path
          description: postId to unpin
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Post unpinned
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Post not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/posts:
    post:
      tags:
        - Posts
      summary: Add new post
      description: Add new post as logged user
      operationId: addNewPost
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SavePostDTO'
      responses:
        '200':
          description: Post added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SocialEventApiDTO'
        '403':
          description: Insufficient privileges.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/socialEvents/list:
    get:
      tags:
        - Social events
      summary: Find social events on all channels
      description: Finds social events on all asccessible for logged user channels
      operationId: findAllSocialEvents
      parameters:
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Found social events of logged user
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SocialEventApiDTO'
  /v2/socialEvents/list/channel/friends:
    get:
      tags:
        - Social events
      summary: Find social events on special friends channel
      description: Finds logged user social events on friends special channel
      operationId: findFriendsSocialEvents
      parameters:
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Found friends social events of logged user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
  '/v2/socialEvents/list/channel/{channelId}':
    get:
      tags:
        - Social events
      summary: Find social events on given channel
      description: Finds logged user social events on given channel
      operationId: findChannelSocialEvents
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Found social events of logged user
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SocialEventApiDTO'
  '/v2/socialEvents/{socialEventId}':
    get:
      tags:
        - Social events
      operationId: findSocialEvent
      parameters:
        - name: socialEventId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        default:
          description: default response
          content:
            application/json: {}
  /v2/notification:
    post:
      tags:
        - Notifications
      summary: Send notification
      description: Send new configurable notification
      operationId: sendNotification
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRequest'
      responses:
        '200':
          description: Notification send
  /v2/friends:
    get:
      tags:
        - Friends
      summary: Get user ids of friends
      description: Get user ids of logged user friends
      operationId: getUserFriendsIds
      responses:
        '200':
          description: Successfully returned ids of friends
          content:
            application/json:
              schema:
                type: array
                items:
                  type: long
  '/v2/comments/{commentId}':
    get:
      tags:
        - Comments
      summary: Get comment
      description: Gets comment by id.
      operationId: getComment
      parameters:
        - name: commentId
          in: path
          description: Id of comment
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully returned comment's details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentApiDTO'
        '400':
          description: Comment not found
    delete:
      tags:
        - Comments
      summary: Delete comment
      description: Delete comment by id.
      operationId: deleteComment
      parameters:
        - name: commentId
          in: path
          description: Id of comment
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Id of deleted comment is returned
          content:
            application/json:
              schema:
                type: long
        '500':
          description: Comment not found
  '/v2/comments/object/{objectId}/{commentType}':
    get:
      tags:
        - Comments
      summary: Gets comments page
      description: Gets comments page for post id and post type
      operationId: getComments
      parameters:
        - name: objectId
          in: path
          description: Id of post
          required: true
          schema:
            type: integer
            format: int64
        - name: commentType
          in: path
          description: 'comment type for which we want get comment. Available value [SOCIAL_EVENT, TASK]'
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      responses:
        default:
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommentApiDTO'
  /v2/comments:
    post:
      tags:
        - Comments
      summary: Add comment
      description: Add or edit comment.
      operationId: addComment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewCommentDTO'
      responses:
        '200':
          description: A newly created comment is returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentApiDTO'
        '500':
          description: Error while creating a new comment
  '/v2/attachments/{attachmentId}':
    get:
      tags:
        - Attachments
      summary: Get attachment metadata
      description: Get attachment metadata by its identifier
      operationId: getAttachment
      parameters:
        - name: attachmentId
          in: path
          description: Id of attachment
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '404':
          description: Attachment not found
        default:
          description: Attachment metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentDTO'
    put:
      tags:
        - Attachments
      summary: Modify attachment
      description: Modify attachment metadata and its contents by id
      operationId: updateAttachment
      parameters:
        - name: attachmentId
          in: path
          description: Id of attachment
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdateAttachmentModel'
            encoding:
              fileContent:
                contentType: application/octet-stream
              fileMetadata:
                contentType: application/json
      responses:
        '201':
          description: 'Attachment has been modified, and file content stored. Returns attachment identifier.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentDTO'
        '500':
          description: Error while uploading and storing file
    delete:
      tags:
        - Attachments
      summary: Delete attachment
      description: Delete attachment metadata and file contents by its identifier
      operationId: deleteAttachment_1
      parameters:
        - name: attachmentId
          in: path
          description: Id of attachment
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Attachment deleted
        '404':
          description: Attachment not found
  '/v2/attachments/object/{objectType}/list':
    get:
      tags:
        - Attachments
      summary: 'Get list of public attachments '
      description: Get list of public attachments attachments by type
      operationId: listPublicAttachments
      parameters:
        - name: objectType
          in: path
          description: Type of object with attachment
          required: true
          schema:
            type: string
            enum:
              - COMMENT
              - POST
              - MESSAGE
              - TILE
              - KNOWLEDGE_BASE_PAGE
              - KNOWLEDGE_BASE_NEWS
              - KNOWLEDGE_BASE_NEWS_THUMBNAIL
              - NEWSLETTER
        - name: type
          in: query
          description: Type of content with attachment
          schema:
            type: string
            enum:
              - IMAGE
              - MOVIE
              - ATTACHMENT
              - TILE_IMAGE
              - NEWSLETTER_BANNER
      responses:
        '200':
          description: Object attachments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AttachmentDTO'
  /v2/attachments/list:
    post:
      tags:
        - Attachments
      summary: Get list of attachments by type and object ids
      description: Get list of objects attachments by objects identifiers and type
      operationId: listsAttachmentsForCommunicator
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/AttachmentCommunicatorData'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AttachmentDTO'
  /v2/attachments/attachmentInfo:
    get:
      tags:
        - Attachments
      summary: Get attachment info
      description: Get attachment info
      operationId: getAttachmentInfo
      responses:
        '200':
          description: Attachment info
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AttachmentDTO'
        '404':
          description: Root not found
  '/v2/attachments/object/{objectType}/{sourceObjectId}/copy':
    post:
      tags:
        - Attachments
      summary: Copy attachments of source object
      description: Copy attachments of specified source object to target object with given id
      operationId: copyAttachments
      parameters:
        - name: objectType
          in: path
          description: Type of source object with attachment
          required: true
          schema:
            type: string
            enum:
              - COMMENT
              - POST
              - MESSAGE
              - TILE
              - KNOWLEDGE_BASE_PAGE
              - KNOWLEDGE_BASE_NEWS
              - KNOWLEDGE_BASE_NEWS_THUMBNAIL
              - NEWSLETTER
        - name: sourceObjectId
          in: path
          description: Id of source object with attachments
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          '*/*':
            schema:
              type: integer
              format: int64
        required: true
      responses:
        '200':
          description: Map of source attachment ids and idds of it's copies
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  '/v2/attachments/{attachmentId}/content':
    get:
      tags:
        - Attachments
      summary: 'Downloads attachment content '
      description: Gets attachment metadata by it's identifier
      operationId: downloadContent
      parameters:
        - name: attachmentId
          in: path
          description: Id of attachment
          required: true
          schema:
            type: integer
            format: int64
        - name: version
          in: query
          description: Version of attached file
          schema:
            type: string
            enum:
              - DEFAULT
              - ORIGINAL
              - THUMBNAIL
        - name: preview
          in: query
          description: Set if should be served for preview purposes
          schema:
            type: boolean
      responses:
        '200':
          description: Attachment metadata
          content:
            application/octet-stream:
              schema:
                type: file
                description: Attachment file
        '404':
          description: Attachment not found
  /v2/attachments/messagesMaxSize:
    get:
      tags:
        - Attachments
      summary: Get message attachment max size (MB)
      description: Get message attachment max size (MB)
      operationId: getMessagesAttachmentMaxSize
      responses:
        '200':
          description: Get message attachment max size (MB)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MessagesAttachmentDto'
        '404':
          description: Not found
  /v2/attachments/list-all:
    get:
      tags:
        - Attachments
      summary: Get list of attachments for given object types
      description: Get list of attachments for given object types
      operationId: listAll
      parameters:
        - name: objectType
          in: query
          description: Types of attachment parents
          schema:
            type: array
            items:
              type: string
              enum:
                - COMMENT
                - POST
                - MESSAGE
                - TILE
                - KNOWLEDGE_BASE_PAGE
                - KNOWLEDGE_BASE_NEWS
                - KNOWLEDGE_BASE_NEWS_THUMBNAIL
                - NEWSLETTER
      responses:
        '200':
          description: Object attachments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AttachmentDTO'
  /v2/attachments:
    post:
      tags:
        - Attachments
      summary: Upload attachment
      description: Upload new attachment metadata and its contents
      operationId: addAttachment
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/NewAttachmentModel'
            encoding:
              fileContent:
                contentType: application/octet-stream
              fileMetadata:
                contentType: application/json
      responses:
        '201':
          description: 'New attachment has been created, and file content stored. Returns attachment identifier.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentDTO'
        '500':
          description: Error while uploading and storing file
  '/v2/attachments/object/{objectType}/{objectId}':
    get:
      tags:
        - Attachments
      summary: Get list of attachments
      description: Get list of objects attachments by object identifier and type
      operationId: listAttachments
      parameters:
        - name: objectId
          in: path
          description: Id of object with attachment
          required: true
          schema:
            type: integer
            format: int64
        - name: objectType
          in: path
          description: Type of object with attachment
          required: true
          schema:
            type: string
            enum:
              - COMMENT
              - POST
              - MESSAGE
              - TILE
              - KNOWLEDGE_BASE_PAGE
              - KNOWLEDGE_BASE_NEWS
              - KNOWLEDGE_BASE_NEWS_THUMBNAIL
              - NEWSLETTER
        - name: type
          in: query
          description: Type of content with attachment
          schema:
            type: string
            enum:
              - IMAGE
              - MOVIE
              - ATTACHMENT
              - TILE_IMAGE
              - NEWSLETTER_BANNER
      responses:
        '200':
          description: Object attachments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AttachmentDTO'
    delete:
      tags:
        - Attachments
      summary: Delete attachment
      description: Delete attachment metadata and file contents by objectId and objectType
      operationId: deleteAttachment
      parameters:
        - name: objectId
          in: path
          description: Id of object with attachment
          required: true
          schema:
            type: integer
            format: int64
        - name: objectType
          in: path
          description: Type of object with attachment
          required: true
          schema:
            type: string
            enum:
              - COMMENT
              - POST
              - MESSAGE
              - TILE
              - KNOWLEDGE_BASE_PAGE
              - KNOWLEDGE_BASE_NEWS
              - KNOWLEDGE_BASE_NEWS_THUMBNAIL
              - NEWSLETTER
      responses:
        '200':
          description: Attachment deleted
  '/v2/public-attachments/{attachmentId}/content':
    get:
      tags:
        - Attachments
      summary: 'Downloads attachment content '
      description: Gets attachment metadata by it's identifier
      operationId: downloadPublicContent
      parameters:
        - name: attachmentId
          in: path
          description: Id of attachment
          required: true
          schema:
            type: integer
            format: int64
        - name: version
          in: query
          description: Version of attached file
          schema:
            type: string
            enum:
              - DEFAULT
              - ORIGINAL
              - THUMBNAIL
        - name: preview
          in: query
          description: Set if should be served for preview purposes
          schema:
            type: boolean
      responses:
        '200':
          description: Attachment metadata
          content:
            application/octet-stream:
              schema:
                type: file
                description: Attachment file
        '404':
          description: Attachment not found
  /v2/categories/filterableColumns:
    get:
      tags:
        - Dictionaries
      summary: Get available columns for filtering list of categories
      description: Returns list of available columns which might be used for filtering list of categories
      operationId: getFilterableColumns
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/categories:
    post:
      tags:
        - Dictionaries
      summary: List of categories
      description: Returns list of tegories
      operationId: getRecords
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CategoryDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/contents/filterableColumns:
    get:
      tags:
        - Contents
      summary: Get available columns for filtering list of contents
      description: Returns list of available columns which might be used for filtering list of contents
      operationId: getFilterableColumns_1
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/contents:
    post:
      tags:
        - Contents
      summary: List of contents
      description: Returns list of contents
      operationId: getRecords_1
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ContentDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/courses/filterableColumns:
    get:
      tags:
        - Courses
      summary: Get available columns for filtering list of courses
      description: Returns list of available columns which might be used for filtering list of courses
      operationId: getFilterableColumns_2
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/courses:
    post:
      tags:
        - Courses
      summary: List of courses
      description: Returns list of courses
      operationId: getRecords_2
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CourseDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/courses/results/filterableColumns:
    get:
      tags:
        - Results of courses
      summary: Get available columns for filtering list of results
      description: Returns list of available columns which might be used for filtering list of results
      operationId: getFilterableColumns_3
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/courses/results:
    post:
      tags:
        - Results of courses
      summary: List of results
      description: Returns list of results
      operationId: getRecords_3
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CourseResultDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/edupack/get-certificate/{userId}/{unitId}/{unitType}':
    get:
      tags:
        - Paths and programs
      summary: Gets certificate for specified user and edu pack unit
      description: Gets certificate for specified user and edu pack unit. File content encoded in Base64.
      operationId: getCertificate
      parameters:
        - name: userId
          in: path
          description: Id of user
          required: true
          schema:
            type: integer
            format: int64
        - name: unitId
          in: path
          description: Id of unit
          required: true
          schema:
            type: integer
            format: int64
        - name: unitType
          in: path
          description: Type of unit
          required: true
          schema:
            type: string
            enum:
              - PATH
              - PROGRAM
      responses:
        '200':
          description: The certificate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateDTO'
        '400':
          description: Bad request values
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/groups/{groupId}/user':
    get:
      tags:
        - Groups
      summary: Gets group users
      description: Gets group users page according to QueryParams.
      operationId: getGroupUsers
      parameters:
        - name: groupId
          in: path
          description: Id of group
          required: true
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
        '500':
          description: Error while retrieving list of users
  /v2/groups/parent:
    get:
      tags:
        - Groups
      summary: Root groups list
      description: 'Gets list of root groups by '
      operationId: getGroupRoot
      parameters:
        - name: types
          in: query
          description: Types of groups to select
          schema:
            type: array
            items:
              type: string
              enum:
                - COMMON
                - USER
                - STAT
                - COURSE
                - PATH
        - name: roles
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - ROLE_OBJECT_GROUP_STR_EDIT
                - ROLE_COURSE_VIEW
                - ROLE_COURSE_EDIT
                - ROLE_STAT_VIEW
                - ROLE_STAT_EDIT
                - ROLE_SURVEY_EDIT
                - ROLE_SURVEY_VIEW
                - ROLE_EDU_EVENT_VIEW
                - ROLE_EDU_EVENT_EDIT
                - ROLE_OBJECT_FILE_VIEW
                - ROLE_OBJECT_FILE_EDIT
                - ROLE_USER_VIEW
                - ROLE_USER_EDIT
                - ROLE_PATH_VIEW
                - ROLE_PATH_EDIT
                - ROLE_PROGRAM_VIEW
                - ROLE_PROGRAM_EDIT
                - ROLE_TASK_GROUP_EDIT
                - ROLE_TASK_GROUP_VIEW
                - ROLE_PULSE_CHECK_GROUP_EDIT
                - ROLE_PULSE_CHECK_GROUP_VIEW
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupDto'
  /v2/groups/list:
    post:
      tags:
        - Groups
      summary: Group list by group ids
      description: Search groups by ids
      operationId: searchGroupByIds
      parameters:
        - name: roles
          in: query
          description: Ids of roles
          schema:
            type: array
            items:
              type: string
              enum:
                - ROLE_OBJECT_GROUP_STR_EDIT
                - ROLE_COURSE_VIEW
                - ROLE_COURSE_EDIT
                - ROLE_STAT_VIEW
                - ROLE_STAT_EDIT
                - ROLE_SURVEY_EDIT
                - ROLE_SURVEY_VIEW
                - ROLE_EDU_EVENT_VIEW
                - ROLE_EDU_EVENT_EDIT
                - ROLE_OBJECT_FILE_VIEW
                - ROLE_OBJECT_FILE_EDIT
                - ROLE_USER_VIEW
                - ROLE_USER_EDIT
                - ROLE_PATH_VIEW
                - ROLE_PATH_EDIT
                - ROLE_PROGRAM_VIEW
                - ROLE_PROGRAM_EDIT
                - ROLE_TASK_GROUP_EDIT
                - ROLE_TASK_GROUP_VIEW
                - ROLE_PULSE_CHECK_GROUP_EDIT
                - ROLE_PULSE_CHECK_GROUP_VIEW
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
                format: int64
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupDto'
  /v2/groups:
    post:
      tags:
        - Groups
      summary: Add group
      description: Adds new group
      operationId: addGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewGroupDto'
        required: true
      responses:
        '201':
          description: Successfully created group. Id of created group is returned.
          content:
            application/json:
              schema:
                type: long
  '/v2/groups/parent/{group_id}':
    get:
      tags:
        - Groups
      summary: Group descendants list
      description: Gets list group descendants list
      operationId: getGroupDescendants
      parameters:
        - name: group_id
          in: path
          description: Id of group
          required: true
          schema:
            type: integer
            format: int64
        - name: types
          in: query
          description: Types of groups to select
          schema:
            type: array
            items:
              type: string
              enum:
                - COMMON
                - USER
                - STAT
                - COURSE
                - PATH
        - name: roles
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - ROLE_OBJECT_GROUP_STR_EDIT
                - ROLE_COURSE_VIEW
                - ROLE_COURSE_EDIT
                - ROLE_STAT_VIEW
                - ROLE_STAT_EDIT
                - ROLE_SURVEY_EDIT
                - ROLE_SURVEY_VIEW
                - ROLE_EDU_EVENT_VIEW
                - ROLE_EDU_EVENT_EDIT
                - ROLE_OBJECT_FILE_VIEW
                - ROLE_OBJECT_FILE_EDIT
                - ROLE_USER_VIEW
                - ROLE_USER_EDIT
                - ROLE_PATH_VIEW
                - ROLE_PATH_EDIT
                - ROLE_PROGRAM_VIEW
                - ROLE_PROGRAM_EDIT
                - ROLE_TASK_GROUP_EDIT
                - ROLE_TASK_GROUP_VIEW
                - ROLE_PULSE_CHECK_GROUP_EDIT
                - ROLE_PULSE_CHECK_GROUP_VIEW
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupDto'
        '404':
          description: Group not exist
  '/v2/groups/{groupId}/user/{userId}':
    post:
      tags:
        - Groups
      summary: Add user to group
      description: Add user to group
      operationId: addUserToGroup
      parameters:
        - name: groupId
          in: path
          description: Id of group
          required: true
          schema:
            type: integer
            format: int64
        - name: userId
          in: path
          description: Id of user
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully added user to group
        '500':
          description: Error while assigning group to user
    delete:
      tags:
        - Groups
      summary: Delete user from group
      description: Delete user from group
      operationId: deleteUserFromGroup
      parameters:
        - name: groupId
          in: path
          description: Id of group
          required: true
          schema:
            type: integer
            format: int64
        - name: userId
          in: path
          description: Id of user
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully removed user from group
        '500':
          description: Error while removing user from group
  /v2/groups/members/full:
    post:
      tags:
        - Groups
      summary: Gets users with all groups ids
      description: Gets users with groups ids for which they belong to and its descendants as well
      operationId: getFullGroupMembers
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
                format: int64
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserGroupsDto'
  /v2/groups/members:
    post:
      tags:
        - Groups
      summary: Gets users with groups ids
      description: Gets users with groups ids for which they belong to
      operationId: getGroupMembers
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
                format: int64
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserGroupsDto'
  /v2/organisationalgroups/roots:
    get:
      tags:
        - OrgCharts
      summary: Get org chart structure root
      description: Get org chart group when they haven't any parent
      operationId: getOrgChartRoots
      responses:
        '200':
          description: Org chart root
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupNodeResponse'
        '404':
          description: Root not found
  '/v2/organisationalgroups/{parentId}/children':
    get:
      tags:
        - OrgCharts
      summary: Get org chart structure children
      description: Get org chart children group by parent identifier
      operationId: getOrgChartChildren
      parameters:
        - name: parentId
          in: path
          description: Id of parent
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Org chart children
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupNodeResponse'
        '404':
          description: Children not found
  '/v2/organisationalgroups/{groupId}/ancestors':
    get:
      tags:
        - OrgCharts
      summary: Get org chart group and its ancestors with children
      description: Get org chart group and its ancestors with children by groupId
      operationId: getAncestorsWithChildren
      parameters:
        - name: groupId
          in: path
          description: Id of group
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Org chart group and ancestors with children
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupNodeResponse'
        '404':
          description: Group not found
  '/v2/organisationalgroups/{groupId}':
    get:
      tags:
        - OrgCharts
      summary: Get org chart structure group
      description: Get org chart group by group identifier
      operationId: getOrgChartGroup
      parameters:
        - name: groupId
          in: path
          description: Id of group
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Org chart group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupNodeResponse'
        '404':
          description: Group not found
  /v2/organisationalgroups/highlight:
    post:
      tags:
        - OrgCharts
      summary: Highlight users
      description: Mark users as highlighted in group
      operationId: highlightUsers
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UserHighlightedDto'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserHighlightFailedResponse'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Highlight users not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/organisationalgroups/unhighlight:
    post:
      tags:
        - OrgCharts
      summary: Unhighlight users
      description: Remove highlight from users in group
      operationId: unhighlightUsers
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UserHighlightedDto'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserHighlightFailedResponse'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Unhighlight users not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/organisationalgroups/{groupId}/members':
    get:
      tags:
        - OrgCharts
      summary: Get users belong to group
      description: Get users belong to selected group by group identifier
      operationId: getUsersBelongToGroup
      parameters:
        - name: groupId
          in: path
          description: Id of group
          required: true
          schema:
            type: integer
            format: int64
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Org chart users belong group
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BusinessCardInfoResponse'
        '404':
          description: Group not found
  /v2/learning-sessions/filterableColumns:
    get:
      tags:
        - Learning sessions
      summary: Get available columns for filtering list of learning sessions
      description: Returns list of available columns which might be used for filtering list of learning sessions
      operationId: getFilterableColumns_4
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/learning-sessions:
    post:
      tags:
        - Learning sessions
      summary: List of learning sessions
      description: Returns list of learning sessions
      operationId: getRecords_4
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LearningSessionDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/lessons/filterableColumns:
    get:
      tags:
        - Lessons
      summary: Get available columns for filtering list of lessons
      description: Returns list of available columns which might be used for filtering list of lessons
      operationId: getFilterableColumns_5
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/lessons:
    post:
      tags:
        - Lessons
      summary: List of lessons
      description: Returns list of lessons
      operationId: getRecords_5
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LessonDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/system/properties/messages:
    get:
      tags:
        - Messages
      summary: Get information about messages is enabled
      description: Returns information about messages
      operationId: isMessagesEnabled
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MessagesDataDto'
  /v2/system/properties/orgchart:
    get:
      tags:
        - OrgChart
      summary: Get information about org chart is enabled
      description: Returns information about org chart
      operationId: isOrgChartEnabled
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrgChartDataDto'
  '/v2/permissions/roles/type/{type}':
    get:
      tags:
        - Permissions
      summary: Gets roles list of specific type
      description: returns list of roles
      operationId: getRoles
      parameters:
        - name: type
          in: path
          required: true
          schema:
            type: string
            enum:
              - OBJECT
              - SYSTEM
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleLightWeightDto'
        '500':
          description: Error while checking roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/permissions/roles/{id}':
    get:
      tags:
        - Permissions
      summary: Gets role by id
      description: returns role
      operationId: getRole
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleDto'
        '404':
          description: not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Error while checking roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/permissions/roles/object/possessors:
    get:
      tags:
        - Permissions
      summary: Gets object role possessors of every role and group
      description: returns all possessor ids for all object roles grouped by role and group
      operationId: getAllObjectRolePossessors
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectRolePossessorsDto'
        '500':
          description: Error while checking roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
    post:
      tags:
        - Permissions
      summary: Edit users and groups in object role on target groups
      description: Edit users and groups in object role on target groups
      operationId: editObjectRoleUsersGroups
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ObjectRolePossessorsUsersGroupsSaveDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ObjectRolePossessorsUsersGroupsSaveDto'
        '500':
          description: Error while checking roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/permissions/roles/{id}/system/possessors':
    get:
      tags:
        - Permissions
      summary: Gets user ids and group ids of system role id
      description: returns user ids and group ids of system role id
      operationId: getUsersGroupsForSystemRole
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RolePossessorsUsersGroupsDto'
        '500':
          description: Error while checking roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/permissions/roles/{id}/object/{groupId}/possessors':
    get:
      tags:
        - Permissions
      summary: Gets object role by role id and group id
      description: returns user ids and group ids
      operationId: getUsersGroupsForObjectRole
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: groupId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RolePossessorsUsersGroupsDto'
        '500':
          description: Error while checking roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/permissions/rights/type/{type}':
    get:
      tags:
        - Permissions
      summary: Gets rights list of specific type
      description: returns list of rights
      operationId: getRights
      parameters:
        - name: type
          in: path
          required: true
          schema:
            type: string
            enum:
              - OBJECT
              - SYSTEM
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RightDto'
        '500':
          description: Error while checking rights
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/permissions/roles/delete:
    post:
      tags:
        - Permissions
      summary: Delete roles
      description: Delete role by ids
      operationId: deleteRoles
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
                format: int64
      responses:
        '200':
          description: Roles deleted
        '500':
          description: Error while checking roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/permissions/roles:
    post:
      tags:
        - Permissions
      summary: Add/edit of role details
      description: Add/edit of role details
      operationId: saveRole
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleDto'
        '500':
          description: Error while checking roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/permissions/roles/system/possessors:
    post:
      tags:
        - Permissions
      summary: Edit users and groups in system role
      description: Edit users and groups in system role
      operationId: editSystemRoleUsersGroups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RolePossessorsUsersGroupsSaveDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RolePossessorsUsersGroupsSaveDto'
        '500':
          description: Error while checking roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/results/filterableColumns:
    get:
      tags:
        - Results
      summary: Get available columns for filtering list of results
      description: Returns list of available columns which might be used for filtering list of results
      operationId: getFilterableColumns_6
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/results:
    post:
      tags:
        - Results
      summary: List of results
      description: 'Returns list of results. If no sort is specified, results are ordered ascending by userId, contentId, termId, eduPathId.'
      operationId: getRecords_6
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResultDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/rights/organization-level/{role}':
    get:
      tags:
        - Rights and roles
      summary: Check organization level access for roles
      description: Return true if role has organization access
      operationId: hasOrganizationLevel
      parameters:
        - name: role
          in: path
          description: Role
          required: true
          schema:
            type: string
            enum:
              - ROLE_WEB_STUDENT
              - ROLE_WEB_ADMIN
              - ROLE_PATH_STUDENT
              - ROLE_CONFIGURATION_EDIT
              - ROLE_SYSTEM_OBJECT_ROLES_VIEW
              - ROLE_SYSTEM_OBJECT_ROLES_EDIT
              - ROLE_SYSTEM_ROLES_ASSIGN_EDIT
              - ROLE_USERS_GROUPS_IMPORT
              - ROLE_SYS_AGENT
              - ROLE_SWITCH_USER
              - ROLE_OBJECT_GROUP_STR_EDIT
              - ROLE_COURSE_VIEW
              - ROLE_COURSE_EDIT
              - ROLE_STAT_VIEW
              - ROLE_STAT_EDIT
              - ROLE_USER_VIEW
              - ROLE_USER_EDIT
              - ROLE_PATH_VIEW
              - ROLE_PATH_EDIT
              - ROLE_USER_ADD
              - ROLE_ARCHIVE_OBJECT_DEL
              - ROLE_FORUM_MODERATE
              - ROLE_EDU_PACK_ASSIGN_VIEW
              - ROLE_EDU_PACK_ASSIGN_EDIT
              - ROLE_USER_RESULTS_APPLICATIONS_VIEW
              - ROLE_USER_RESULTS_APPLICATIONS_EDIT
              - ROLE_OBJECT_RESULTS_APPLICATIONS_VIEW
              - ROLE_OBJECT_RESULTS_APPLICATIONS_EDIT
              - ROLE_COMMUNICATION
              - ROLE_REPORT_GENERATE
              - ROLE_OBJECT_ROLES_ASSIGN_VIEW
              - ROLE_OBJECT_ROLES_ASSIGN_EDIT
              - ROLE_ORGANIZER_TRAINER_ASSIGN
              - ROLE_CONTENT_ASSIGN
              - ROLE_WIKI_ADMIN
              - ROLE_SURVEY_VIEW
              - ROLE_SURVEY_EDIT
              - ROLE_STAT_TRAINER
              - ROLE_OBJECT_FILE_EDIT
              - ROLE_OBJECT_FILE_VIEW
              - ROLE_PERIODIC_REPORT_ADMIN
              - ROLE_PROGRAM_VIEW
              - ROLE_PROGRAM_EDIT
              - ROLE_EDU_EVENT_VIEW
              - ROLE_EDU_EVENT_EDIT
              - ROLE_MN_ANALITICS
              - ROLE_SYSTEM_NOTIFICATION_VIEW
              - ROLE_SYSTEM_NOTIFICATION_EDIT
              - ROLE_TEST_VIEW
              - ROLE_TEST_EDIT
              - ROLE_WALL_MANAGE
              - ROLE_WEBINAR_MANAGE
              - ROLE_ACTIVITY_VIEW
              - ROLE_DOCUMENT_VIEW
              - ROLE_DOCUMENT_EDIT
              - ROLE_BUDGET_MANAGE
              - ROLE_BUDGET_VIEW
              - ROLE_SYSTEM_COMMUNICATION
              - ROLE_SYSTEM_API
              - ROLE_MAINTENANCE
              - ROLE_TASK_VIEW
              - ROLE_TASK_EDIT
              - ROLE_USER_REVIEW_VIEW
              - ROLE_USER_REVIEW_EDIT
              - ROLE_DOCUMENT_ADD
              - ROLE_USER_COST_VIEW
              - ROLE_USER_COST_EDIT
              - ROLE_USER_BLOCK_EDIT
              - ROLE_USER_BLOCK_VIEW
              - ROLE_USER_RESULT_SURVEY_REVIEW_VIEW
              - ROLE_SYSTEM_TERM_USERS_MANAGE_AFTER_BLOCK
              - ROLE_CONTENT_PASS_EXEMPTION
              - ROLE_TASK_GROUP_EDIT
              - ROLE_TASK_GROUP_VIEW
              - ROLE_PULSE_CHECK_GROUP_EDIT
              - ROLE_PULSE_CHECK_GROUP_VIEW
      responses:
        '200':
          content:
            application/json:
              schema:
                type: boolean
        '500':
          description: Error while checking roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/security/password/recovery:
    post:
      summary: Generate password recovery code
      description: 'Returns password recovery code and '
      operationId: passwordRecovery
      parameters:
        - name: loginName
          in: query
          description: Login of user
          schema:
            type: string
        - name: ts
          in: query
          description: Current unix timestamp
          schema:
            type: integer
            format: int64
        - name: hash
          in: query
          description: Checksum of request
          schema:
            type: string
      requestBody:
        content:
          application/json: {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordRecoveryApiDTO'
        '400':
          description: Wrong hash
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/security/token/refresh:
    post:
      operationId: refreshToken
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefreshToken'
      responses:
        default:
          description: default response
          content:
            application/json: {}
  '/v2/channels/${channelId}/notifications/enable':
    post:
      tags:
        - Channels
      summary: Enable notification
      description: Enables notification for logged in user
      operationId: enableNotifications
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully enabled notifications
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/channels/${channelId}/reject/invitation':
    post:
      tags:
        - Channels
      summary: Reject invitation
      description: Rejects invitation to join channel for logged in user
      operationId: rejectInvitation
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Channel user status after operation
          content:
            application/json:
              schema:
                type: string
                enum:
                  - ADMIN
                  - MEMBER
                  - WAITING
                  - INVITED
                  - REJECTED
                  - NOT_MEMBER
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/channels/friends/notifications/disable:
    post:
      tags:
        - Channels
      summary: Disable friends channel notification
      description: Disable friends channel notification for logged in user
      operationId: disableFriendsChannelNotifications
      responses:
        '200':
          description: Successfully disabled notifications from friends channel
  /v2/channels/friends/notifications/enable:
    post:
      tags:
        - Channels
      summary: Enable friends channel notification
      description: Enables friends channel notification for logged in user
      operationId: enableFriendsChannelNotifications
      responses:
        '200':
          description: Successfully enabled notifications from friends channel
  '/v2/channels/${channelId}/user':
    get:
      tags:
        - Channels
      summary: Gets channel user
      description: Gets channel user by channelId
      operationId: getChannelUser
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: The channel user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelUserDTO'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/channels/${channelId}/members':
    get:
      tags:
        - Channels
      summary: Get user ids of channel members
      description: Get user ids of channel members
      operationId: getChannelMemberIds
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Member user ids
          content:
            application/json:
              schema:
                type: array
                items:
                  type: long
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/channels/${channelId}/join':
    post:
      tags:
        - Channels
      summary: Join channel
      description: Sends application for joining channel for logged in user
      operationId: joinChannel
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Channel user status after operation
          content:
            application/json:
              schema:
                type: string
                enum:
                  - ADMIN
                  - MEMBER
                  - WAITING
                  - INVITED
                  - REJECTED
                  - NOT_MEMBER
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/channels/${channelId}/leave':
    post:
      tags:
        - Channels
      summary: Leave channel
      description: Leave channel for logged in user
      operationId: leaveChannel
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Channel user status after operation
          content:
            application/json:
              schema:
                type: string
                enum:
                  - ADMIN
                  - MEMBER
                  - WAITING
                  - INVITED
                  - REJECTED
                  - NOT_MEMBER
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/channels/list/member:
    get:
      tags:
        - Channels
      summary: Get member channels
      description: Gets channels in which logged in user is member
      operationId: getMemberChannels
      responses:
        '200':
          description: Member channels
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChannelApiDTO'
  /v2/channels/list/available:
    get:
      tags:
        - Channels
      summary: Get available channels
      description: Gets available channels in which logged in user is not a member
      operationId: getAvailableChannels
      responses:
        '200':
          description: Available channels
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChannelApiDTO'
  '/v2/channels/${channelId}/member/count':
    get:
      tags:
        - Channels
      summary: Get member count
      description: Get channel member count
      operationId: countChannelMember
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Member count
          content:
            application/json:
              schema:
                type: integer
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/channels/${channelId}/withdraw/application':
    post:
      tags:
        - Channels
      summary: Withdraw application
      description: Withdraw application to join channel for logged in user
      operationId: withdrawApplication
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Channel user status after operation
          content:
            application/json:
              schema:
                type: string
                enum:
                  - ADMIN
                  - MEMBER
                  - WAITING
                  - INVITED
                  - REJECTED
                  - NOT_MEMBER
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/channels/user:
    get:
      tags:
        - Channels
      summary: Gets friend channel user
      description: Gets friend channel user
      operationId: getFriendsChannelUser
      responses:
        '200':
          description: The friend channel user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelUserDTO'
        '500':
          description: Channel not found
  '/v2/channels/${channelId}/notifications/disable':
    post:
      tags:
        - Channels
      summary: Disable notification
      description: Disable  notification for logged in user
      operationId: disableNotifications
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Successfully disabled notifications
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/channels/{channelId}':
    get:
      tags:
        - Channels
      summary: Gets channel
      description: Gets channel by id
      operationId: getChannel
      parameters:
        - name: channelId
          in: path
          description: Id of channel
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: The channel
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelApiDTO'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/system/properties/social:
    get:
      tags:
        - Channel
      summary: Get information about  channel is enabled
      description: Returns information about channel
      operationId: isChannelEnabled
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SocialModuleDto'
  '/v2/survey-actions/{surveyActionId}/training/{trainingId}':
    put:
      tags:
        - Surveys
      summary: Add training to specified survey action
      operationId: addTraining
      parameters:
        - name: surveyActionId
          in: path
          description: Id of survey action
          required: true
          schema:
            type: integer
            format: int64
        - name: trainingId
          in: path
          description: Id of training
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: boolean
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/survey-actions/{surveyActionId}/term/{termId}':
    put:
      tags:
        - Surveys
      summary: Add term to specified survey action
      operationId: addTerm
      parameters:
        - name: surveyActionId
          in: path
          description: Id of survey action
          required: true
          schema:
            type: integer
            format: int64
        - name: termId
          in: path
          description: Id of term
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: boolean
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/system/properties/analytics:
    get:
      tags:
        - System
      summary: Get google analytics ids
      description: Returns google analytics ids
      operationId: getAnalyticsIds
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /v2/system/properties/reload:
    post:
      tags:
        - System
      summary: Reload configuration properties
      description: Reloads configuration properties on system level
      operationId: reloadInstanceProperties
      responses:
        '200':
          description: Successfully reloaded properties
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/terms/filterableColumns:
    get:
      tags:
        - Terms
      summary: Get available columns for filtering list of terms
      description: Returns list of available columns which might be used for filtering list of terms
      operationId: getFilterableColumns_7
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/terms:
    post:
      tags:
        - Terms
      summary: List of terms
      description: Returns list of terms
      operationId: getRecords_7
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
        - name: filterFormula
          in: query
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TermApiDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/terms/create:
    post:
      tags:
        - Terms
      summary: Create new term
      description: 'Creates new term. Date-time field value''s example: 2020-05-10T12:34:56+0200.'
      operationId: create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTermApiDTO'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CreateTermApiDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/terms/results/filterableColumns:
    get:
      tags:
        - Terms Results
      summary: Get available columns for filtering list of terms results
      description: Returns list of available columns which might be used for filtering list of terms results
      operationId: getFilterableColumns_8
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/terms/results:
    post:
      tags:
        - Terms Results
      summary: List of terms results
      description: Returns list of terms results
      operationId: getRecords_8
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
        - name: filterFormula
          in: query
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TermResultApiDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/trainings/publish:
    post:
      tags:
        - Trainings
      summary: Publish training
      operationId: publish
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublishTrainingApiDTO'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: boolean
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/trainings/filterableColumns:
    get:
      tags:
        - Trainings
      summary: Get available columns for filtering list of trainings
      description: Returns list of available columns which might be used for filtering list of trainings
      operationId: getFilterableColumns_9
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/trainings/assign:
    post:
      tags:
        - Trainings
      summary: Assign training to user
      operationId: assign
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignTrainingApiDTO'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: boolean
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/trainings:
    post:
      tags:
        - Trainings
      summary: List of trainings
      description: Returns list of trainings
      operationId: getRecords_9
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
        - name: filterFormula
          in: query
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TrainingApiDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/trainings/{id}':
    put:
      tags:
        - Trainings
      summary: Update exists training
      operationId: update
      parameters:
        - name: id
          in: path
          description: Id of training
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTrainingApiDTO'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TrainingApiDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/trainings/create:
    post:
      tags:
        - Trainings
      summary: Create new training
      description: 'Creates new training. When copyOfTrainingId is used, then fill only fields you want to change against source training.'
      operationId: create_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTrainingApiDTO'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TrainingApiDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/user/profiles/language:
    post:
      tags:
        - User profiles
      summary: Get users language
      description: Get list of languages with user ids for given user ids list
      operationId: getUsersLanguage
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: long
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UsersLangDTO'
  /v2/user/profiles/search:
    get:
      tags:
        - User profiles
      summary: Gets profiles page
      description: Gets profiles page according to QueryParams.
      operationId: getPageUserProfiles
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BusinessCardInfoResponse'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/user/profiles:
    get:
      tags:
        - User profiles
      summary: Gets profiles page
      description: Gets profiles page according to QueryParams.
      operationId: getUserProfiles
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BusinessCardInfoResponse'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
    post:
      tags:
        - User profiles
      summary: Get profile list
      description: Get list of user profiles by list of ids
      operationId: getUsersProfiles
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: long
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BusinessCardInfoResponse'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/user/profiles/count:
    get:
      tags:
        - User profiles
      summary: 'Number of profiles '
      description: Total number of user profiles.
      operationId: countUserProfiles
      parameters:
        - name: textSearch
          in: query
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: integer
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/user/profiles/{id}':
    get:
      tags:
        - User profiles
      summary: 'Gets profile '
      description: Gets specific user profile.
      operationId: getUserProfile
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProfileResponse'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Profile not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/user-activities/filterableColumns:
    get:
      tags:
        - UserActivity
      summary: Get available columns for filtering list of activities
      description: Returns list of available columns which might be used for filtering list of activities
      operationId: getFilterableColumns_10
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/user-activities:
    post:
      tags:
        - UserActivity
      summary: List of user activities
      description: Returns list of user activities
      operationId: getRecords_10
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserActivityDTO'
        '406':
          description: Wrong conditions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/userreaction/object/{objectType}/{objectId}':
    get:
      tags:
        - User reactions
      summary: Get reactions to object
      description: Gets reactions to an object of a specific type
      operationId: getUserReaction
      parameters:
        - name: objectId
          in: path
          description: ID of the object related with reaction
          required: true
          schema:
            type: integer
            format: int64
        - name: objectType
          in: path
          description: Type of the object related with reaction
          required: true
          schema:
            type: string
            enum:
              - SOCIAL_EVENT
              - COMMENT
              - TASK
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserReactionApiDTO'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultError'
    put:
      tags:
        - User reactions
      summary: Add user reaction
      operationId: addUserReaction
      parameters:
        - name: objectId
          in: path
          description: ID of the object related with reaction
          required: true
          schema:
            type: integer
            format: int64
        - name: objectType
          in: path
          description: Type of the object related with reaction
          required: true
          schema:
            type: string
            enum:
              - SOCIAL_EVENT
              - COMMENT
              - TASK
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserReactionApiDTO'
        '403':
          description: Insufficient permissions
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Object not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiResultError'
    delete:
      tags:
        - User reactions
      summary: Delete user reaction
      description: Delete user reaction
      operationId: deleteUserReaction
      parameters:
        - name: objectId
          in: path
          description: ID of the object related with reaction
          required: true
          schema:
            type: integer
            format: int64
        - name: objectType
          in: path
          description: Type of the object related with reaction
          required: true
          schema:
            type: string
            enum:
              - SOCIAL_EVENT
              - COMMENT
              - TASK
      responses:
        '200':
          content:
            text/plain:
              schema:
                type: long
        '403':
          description: Insufficient permissions
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '404':
          description: Object not found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  '/v2/userreaction/object/{objectType}/{objectId}/count':
    get:
      tags:
        - User reactions
      summary: Get reactions count to object
      description: Gets reactions count to an object of a specific type
      operationId: countUserReaction
      parameters:
        - name: objectId
          in: path
          description: ID of the object related with reaction
          required: true
          schema:
            type: integer
            format: int64
        - name: objectType
          in: path
          description: Type of the object related with reaction
          required: true
          schema:
            type: string
            enum:
              - SOCIAL_EVENT
              - COMMENT
              - TASK
      responses:
        '200':
          content:
            text/plain:
              schema:
                type: long
        '403':
          description: Insufficient permissions
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiResultError'
        '500':
          description: Internal server error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiResultError'
  /v2/users/assignations/filterableColumns:
    get:
      tags:
        - UserAssignation
      summary: Get available columns for filtering list of assignations
      description: Returns list of available columns which might be used for filtering list of assignations
      operationId: getFilterableColumns_11
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/users/assignations:
    post:
      tags:
        - UserAssignation
      summary: List of users assignations
      description: Returns list of users assignations for specified filters
      operationId: getRecords_11
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SimpleUserContentAssignForApi'
  /v2/users/relations/filterableColumns:
    get:
      tags:
        - UserRelation
      summary: Get available columns for filtering list of relations
      description: Returns list of available columns which might be used for filtering list of relations
      operationId: getFilterableColumns_12
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/users/relations:
    post:
      tags:
        - UserRelation
      summary: List of users relations
      description: Returns list of users relations for specified filters
      operationId: getRecords_12
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
        - name: filterFormula
          in: query
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserRelationApiDTO'
  /v2/users/filterableColumns:
    get:
      tags:
        - Users
      summary: Get available columns for filtering list of users
      description: Returns list of available columns which might be used for filtering list of users
      operationId: getFilterableColumns_13
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiFilteredColumn'
  /v2/users:
    post:
      tags:
        - Users
      summary: List of users
      description: Returns list of users for specified filters
      operationId: getRecords_13
      parameters:
        - name: search
          in: query
          description: Search phrase
          schema:
            type: string
        - name: sort
          in: query
          description: Name of ordering field
          schema:
            type: string
        - name: order
          in: query
          description: 'Ordering direction: ASC, DESC'
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          schema:
            type: integer
            format: int64
        - name: size
          in: query
          description: Page size
          schema:
            type: integer
            format: int64
        - name: filterFormula
          in: query
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterDto'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
  '/program/list/{role}':
    get:
      tags:
        - Program
      summary: Get list programs available for specific role
      description: Returns list of programs available for specific role type
      operationId: listPrograms
      parameters:
        - name: role
          in: path
          description: 'Role type: VIEW, EDIT, ASSIGN_VIEW, ASSIGN_EDIT'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successfully returned list of programs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultSuccess'
  /user:
    post:
      tags:
        - User
      summary: Update an user
      description: Updates an user
      operationId: postUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserModel'
      responses:
        '200':
          description: Successfully updated user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultSuccess'
components:
  schemas:
    ApiResultError:
      type: object
      properties:
        status:
          type: string
          enum:
            - SUCCESS
            - ERROR
        result:
          type: object
    BudgetCost:
      required:
        - cost
      type: object
      properties:
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
        cost:
          type: number
        currency:
          type: string
        description:
          type: string
        budgetPeriodId:
          type: string
          xml:
            attribute: true
        userId:
          type: string
          xml:
            attribute: true
        termId:
          type: string
          xml:
            attribute: true
        budgetGroupId:
          type: string
          xml:
            attribute: true
        costTypeId:
          type: string
          xml:
            attribute: true
      xml:
        name: budgetCost
    CustomField:
      type: object
      properties:
        value:
          type: string
        name:
          type: string
          xml:
            attribute: true
        type:
          type: string
          xml:
            attribute: true
    BudgetGroupUser:
      type: object
      properties:
        budgetGroupId:
          type: string
          xml:
            attribute: true
        userId:
          type: string
          xml:
            attribute: true
        delete:
          type: boolean
          xml:
            attribute: true
      xml:
        name: budgetGroupUser
    BudgetGroup:
      type: object
      properties:
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
        budgetGroupId:
          type: string
          xml:
            attribute: true
        name:
          type: string
          xml:
            attribute: true
        delete:
          type: boolean
          xml:
            attribute: true
      xml:
        name: budgetGroup
    Budget:
      type: object
      properties:
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
        budgetPeriodId:
          type: string
          xml:
            attribute: true
        budgetGroupId:
          type: string
          xml:
            attribute: true
        ownerId:
          type: string
          xml:
            attribute: true
        currency:
          type: string
          xml:
            attribute: true
        value:
          type: number
          xml:
            attribute: true
        delete:
          type: boolean
          xml:
            attribute: true
      xml:
        name: budget
    ConfigDto:
      type: object
      properties:
        value:
          type: string
    GroupDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        orgChartEnabled:
          type: boolean
        name:
          type: string
        parentId:
          type: integer
          format: int64
        description:
          type: string
        hasChildren:
          type: boolean
        externalId:
          type: string
    ExternalGroupDto:
      type: object
      properties:
        groupId:
          type: integer
          format: int64
        groupType:
          type: string
          enum:
            - COMMON
            - USER
            - COURSE
            - STAT
            - PATH
            - RELATION_HIDDEN
            - BUDGET_GROUP
        parentId:
          type: integer
          format: int64
        externalId:
          type: string
        name:
          type: string
        path:
          type: string
        description:
          type: string
        isLeaf:
          type: boolean
        isSynchronized:
          type: boolean
        orgChartEnabled:
          type: boolean
        orgChartManuallySelected:
          type: boolean
    AdditionalData:
      type: object
      properties:
        value:
          type: string
        name:
          type: string
          xml:
            attribute: true
    User:
      type: object
      properties:
        userFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
        additionalData:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalData'
        userRelations:
          type: array
          items:
            $ref: '#/components/schemas/UserRelation'
        userId:
          type: string
          xml:
            attribute: true
        loginName:
          type: string
          xml:
            attribute: true
        archive:
          type: string
          xml:
            attribute: true
      xml:
        name: user
    UserRelation:
      type: object
      properties:
        name:
          type: string
          xml:
            attribute: true
        userId:
          type: string
          xml:
            attribute: true
        role:
          type: string
          xml:
            attribute: true
    ApplicationFieldValue:
      type: object
      properties:
        comment:
          type: string
        applicationId:
          type: string
          xml:
            attribute: true
        fieldId:
          type: string
          xml:
            attribute: true
        userId:
          type: string
          xml:
            attribute: true
        value:
          type: string
          xml:
            attribute: true
      xml:
        name: applicationFieldValue
    TrainingCompany:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        contactPerson:
          type: string
        externalId:
          type: string
        nip:
          type: string
        author:
          $ref: '#/components/schemas/User'
        creationDate:
          type: string
          format: date-time
        modifiedBy:
          $ref: '#/components/schemas/User'
        modifyDate:
          type: string
          format: date-time
        customFields:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        customFieldsValue:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CommonCustomFieldValue'
    LangDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        isoKey:
          type: string
        description:
          type: string
    ApiResultSuccess:
      type: object
      properties:
        status:
          type: string
          enum:
            - SUCCESS
            - ERROR
        result:
          type: object
    SimpleUserAvatar:
      type: object
      properties:
        value:
          type: string
        filename:
          type: string
          xml:
            attribute: true
      xml:
        name: simpleUserAvatar
    UserAvatar:
      type: object
      properties:
        value:
          type: string
        userId:
          type: string
          xml:
            attribute: true
        filename:
          type: string
          xml:
            attribute: true
      xml:
        name: userAvatar
    AdditionalDataDTO:
      type: object
      properties:
        key:
          type: string
        name:
          type: string
        value:
          type: string
    ApplicationDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        typeId:
          type: integer
          format: int64
        name:
          type: string
        status:
          type: string
        user:
          $ref: '#/components/schemas/ApplicationUserDTO'
        additionalData:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalDataDTO'
        actualStep:
          $ref: '#/components/schemas/ApplicationStepDTO'
    ApplicationStepDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
    ApplicationUserDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        firstName:
          type: string
        lastName:
          type: string
    ApiFilteredColumn:
      type: object
      properties:
        key:
          type: string
        sortable:
          type: boolean
        searchable:
          type: boolean
        conditionable:
          type: boolean
        conditions:
          type: array
          items:
            type: string
            enum:
              - EQUAL
              - IEQUAL
              - LIKE
              - ILIKE
              - ILIKE_FRAGMENT
              - GREATER
              - LOWER
              - NOTEQUAL
              - INOTEQUAL
              - IN
              - NOTIN
              - GREATER_OR_EQUAL
              - LOWER_OR_EQUAL
              - BETWEEN
              - IS_NOT_NULL
              - IS_NULL
              - IS_NOT_EMPTY
              - IS_EMPTY
              - 'TRUE'
              - 'FALSE'
              - AND
              - OR
              - STARTS_WITH
              - ENDS_WITH
        deprecated:
          type: boolean
    RejectDto:
      type: object
      properties:
        reason:
          type: string
    ChangeStepUserDto:
      type: object
      properties:
        resultStatus:
          type: string
          enum:
            - IN_PROGRESS
            - PRE_ACCEPTED
            - ACCEPTED
            - REJECTED
            - WITHDRAWN
        userNotifyEnabled:
          type: boolean
    ConditionDto:
      type: object
      properties:
        fieldName:
          type: string
        condition:
          type: string
          enum:
            - EQUAL
            - IEQUAL
            - LIKE
            - ILIKE
            - ILIKE_FRAGMENT
            - GREATER
            - LOWER
            - NOTEQUAL
            - INOTEQUAL
            - IN
            - NOTIN
            - GREATER_OR_EQUAL
            - LOWER_OR_EQUAL
            - BETWEEN
            - IS_NOT_NULL
            - IS_NULL
            - IS_NOT_EMPTY
            - IS_EMPTY
            - 'TRUE'
            - 'FALSE'
            - AND
            - OR
            - STARTS_WITH
            - ENDS_WITH
        value:
          type: string
    FilterDto:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/ConditionDto'
    KnowledgeBaseObjectApiDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        isPublished:
          type: boolean
        activityDate:
          type: string
          format: date-time
        userId:
          type: integer
          format: int64
    SocialEventApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        authorId:
          type: integer
          format: int64
        creationDate:
          type: string
          format: date-time
        channelId:
          type: integer
          format: int64
        rowStatus:
          type: string
          enum:
            - DELETED
            - ARCHIVED
            - RESERVED
            - ACTIVE
        pinned:
          type: boolean
        eventType:
          type: string
          enum:
            - LEVEL
            - BADGE
            - COURSE
            - STAT
            - POST
            - EMPLOYMENT
            - FAKE
        content:
          type: string
        youtubeMovieId:
          type: string
        modifyDate:
          type: string
          format: date-time
        read:
          type: boolean
        mentionedUserIds:
          type: array
          items:
            type: integer
            format: int64
        socialEventBadge:
          $ref: '#/components/schemas/SocialEventBadgeDTO'
        countSuper:
          type: integer
          format: int32
        superFromLoggedUser:
          type: boolean
        commentIds:
          type: array
          items:
            type: integer
            format: int64
    SocialEventBadgeDTO:
      type: object
      properties:
        name:
          type: string
        objectName:
          type: string
        objectRowStatus:
          type: integer
          format: int32
        objectType:
          type: string
        badgeUrl:
          type: string
        userBadgeId:
          type: integer
          format: int64
    SavePostDTO:
      type: object
      properties:
        channelId:
          type: integer
          format: int64
        content:
          type: string
        pinned:
          type: boolean
        youtubeMovieId:
          type: string
        eventType:
          type: string
          enum:
            - LEVEL
            - BADGE
            - COURSE
            - STAT
            - POST
            - EMPLOYMENT
            - FAKE
        mentionedUserIds:
          type: array
          items:
            type: integer
            format: int64
    Page:
      type: object
      properties:
        totalElements:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
        sort:
          $ref: '#/components/schemas/Sort'
        first:
          type: boolean
        last:
          type: boolean
        numberOfElements:
          type: integer
          format: int32
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            type: object
        number:
          type: integer
          format: int32
    Sort:
      type: object
    AdditionalField:
      type: object
      properties:
        name:
          type: string
          writeOnly: true
        value:
          type: string
          writeOnly: true
    NotificationRequest:
      type: object
      properties:
        eventType:
          type: integer
          format: int64
          writeOnly: true
        objectId:
          type: integer
          format: int64
          writeOnly: true
        objectName:
          type: string
          writeOnly: true
        recipientId:
          type: integer
          format: int64
          writeOnly: true
        additionalFields:
          type: array
          writeOnly: true
          items:
            $ref: '#/components/schemas/AdditionalField'
    CommentApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        authorId:
          type: integer
          format: int64
        creationDate:
          type: string
          format: date-time
        content:
          type: string
        rowStatus:
          type: string
          enum:
            - DELETED
            - ARCHIVED
            - RESERVED
            - ACTIVE
        objectId:
          type: integer
          format: int64
        objectType:
          type: string
          enum:
            - SOCIAL_EVENT
            - TASK
        translationKey:
          type: boolean
        mentionedUserIds:
          type: array
          items:
            type: integer
            format: int64
    NewCommentDTO:
      type: object
      properties:
        objectId:
          type: integer
          format: int64
        content:
          type: string
        objectType:
          type: string
          enum:
            - SOCIAL_EVENT
            - TASK
        mentionedUserIds:
          type: array
          items:
            type: integer
            format: int64
    AttachmentDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        fileName:
          type: string
        objectType:
          type: string
          enum:
            - COMMENT
            - POST
            - MESSAGE
            - TILE
            - KNOWLEDGE_BASE_PAGE
            - KNOWLEDGE_BASE_NEWS
            - KNOWLEDGE_BASE_NEWS_THUMBNAIL
            - NEWSLETTER
        objectId:
          type: integer
          format: int64
        creationDate:
          type: string
          format: date-time
        modifyDate:
          type: string
          format: date-time
        createdById:
          type: integer
          format: int64
        modifiedById:
          type: integer
          format: int64
        size:
          type: integer
          format: int64
        fileType:
          type: string
          enum:
            - IMAGE
            - MOVIE
            - ATTACHMENT
            - TILE_IMAGE
            - NEWSLETTER_BANNER
        conversionStatus:
          type: string
          enum:
            - PASSED
            - IN_PROGRESS
            - ERROR
        conversionProgress:
          type: integer
          format: int32
        unique:
          type: boolean
    AttachmentCommunicatorData:
      type: object
      properties:
        objectIds:
          type: array
          items:
            type: integer
            format: int64
        objectType:
          type: string
          enum:
            - COMMENT
            - POST
            - MESSAGE
            - TILE
            - KNOWLEDGE_BASE_PAGE
            - KNOWLEDGE_BASE_NEWS
            - KNOWLEDGE_BASE_NEWS_THUMBNAIL
            - NEWSLETTER
    UpdateAttachmentMetadata:
      type: object
      properties:
        fileName:
          type: string
      description: attachment metadata
    UpdateAttachmentModel:
      type: object
      properties:
        fileMetadata:
          $ref: '#/components/schemas/UpdateAttachmentMetadata'
        fileContent:
          type: string
          description: Attachment file
          format: binary
    MessagesAttachmentDto:
      type: object
      properties:
        attachmentMaxSize:
          type: integer
          format: int64
    NewAttachmentMetadata:
      type: object
      properties:
        fileName:
          type: string
        objectId:
          type: integer
          format: int64
        objectType:
          type: string
          enum:
            - COMMENT
            - POST
            - MESSAGE
            - TILE
            - KNOWLEDGE_BASE_PAGE
            - KNOWLEDGE_BASE_NEWS
            - KNOWLEDGE_BASE_NEWS_THUMBNAIL
            - NEWSLETTER
        fileType:
          type: string
          enum:
            - IMAGE
            - MOVIE
            - ATTACHMENT
            - TILE_IMAGE
            - NEWSLETTER_BANNER
      description: attachment metadata
    NewAttachmentModel:
      type: object
      properties:
        fileMetadata:
          $ref: '#/components/schemas/NewAttachmentMetadata'
        fileContent:
          type: string
          description: Attachment file
          format: binary
    CategoryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
    ContentDTO:
      type: object
      properties:
        contentId:
          type: integer
          format: int64
        typeId:
          type: integer
          format: int64
        name:
          type: string
        creationDate:
          type: string
          format: date-time
        modifyDate:
          type: string
          format: date-time
        groups:
          type: array
          items:
            type: integer
            format: int64
        published:
          type: boolean
        deleted:
          type: boolean
    CourseCustomFieldDTO:
      type: object
      properties:
        identifier:
          type: string
        name:
          type: string
        value:
          type: string
    CourseDTO:
      type: object
      properties:
        courseId:
          type: integer
          format: int64
        courseContentId:
          type: integer
          format: int64
        resourceId:
          type: string
        name:
          type: string
        description:
          type: string
        author:
          type: string
        keywords:
          type: string
        category:
          type: string
        timeDuration:
          type: integer
          format: int64
        cost:
          type: number
          format: double
        published:
          type: boolean
        creationDate:
          type: string
          format: date-time
        modifyDate:
          type: string
          format: date-time
        createdBy:
          type: integer
          format: int64
        modifiedBy:
          type: integer
          format: int64
        groups:
          type: array
          items:
            $ref: '#/components/schemas/CourseGroupDTO'
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CourseCustomFieldDTO'
    CourseGroupDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
    CourseResultDTO:
      type: object
      properties:
        studentCourseId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        courseContentId:
          type: integer
          format: int64
        prefAudio:
          type: integer
          format: int32
        prefLanguage:
          type: string
        prefText:
          type: boolean
        statusId:
          type: string
          enum:
            - UNKNOWN
            - NOT_ATTEMPTED
            - INCOMPLETE
            - COMPLETED
            - BROWSED
            - FAILED
            - PASSED
        audioLevel:
          type: number
          format: double
        deliverySpeed:
          type: number
          format: double
        statusTime:
          type: string
          format: date-time
        visitCount:
          type: integer
          format: int64
        firstVisitTime:
          type: string
          format: date-time
        lastVisitTime:
          type: string
          format: date-time
        scoreTime:
          type: integer
          format: int64
        totalTime:
          type: integer
          format: int64
        cycleCount:
          type: integer
          format: int64
        timestamp:
          type: string
          format: date-time
        firstPassScoreTime:
          type: string
          format: date-time
        adminModifyId:
          type: integer
          format: int64
        adminModifyDate:
          type: string
          format: date-time
        periodNumber:
          type: integer
          format: int64
        repetitiveAvailableSentDate:
          type: string
          format: date-time
        firstPassTime:
          type: string
          format: date-time
    CertificateDTO:
      type: object
      properties:
        fileName:
          type: string
        creationDate:
          type: string
          format: date-time
        fileContent:
          type: string
    NewGroupDto:
      required:
        - groupType
      type: object
      properties:
        groupType:
          type: string
          enum:
            - COMMON
            - USER
            - COURSE
            - STAT
            - PATH
            - RELATION_HIDDEN
            - BUDGET_GROUP
        parentId:
          type: integer
          format: int64
        name:
          type: string
        orgChartEnabled:
          type: boolean
        externalId:
          type: string
    UserGroupsDto:
      type: object
      properties:
        userId:
          type: integer
          format: int64
        login:
          type: string
        languageKey:
          type: string
        email:
          type: string
        groupIds:
          type: array
          items:
            type: integer
            format: int64
    GroupNodeResponse:
      type: object
      properties:
        groupId:
          type: integer
          format: int64
        name:
          type: string
        parentId:
          type: integer
          format: int64
        description:
          type: string
        hasChildren:
          type: boolean
    UserHighlightFailedResponse:
      type: object
      properties:
        userId:
          type: string
        groupId:
          type: string
        message:
          type: string
    ExtUserGroupHighlightedDto:
      type: object
      properties:
        groupExtId:
          type: string
        userExtIds:
          type: array
          items:
            type: string
    UserGroupHighlightedDto:
      type: object
      properties:
        groupId:
          type: integer
          format: int64
        userIds:
          type: array
          items:
            type: integer
            format: int64
    UserHighlightedDto:
      type: object
      properties:
        extUserGroupHighlighted:
          $ref: '#/components/schemas/ExtUserGroupHighlightedDto'
        userGroupHighlighted:
          $ref: '#/components/schemas/UserGroupHighlightedDto'
    AdditionalDataDto:
      type: object
      properties:
        value:
          type: string
        name:
          type: string
    BusinessCardInfoResponse:
      type: object
      properties:
        userFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldDto'
        additionalData:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalDataDto'
        userRelations:
          type: array
          items:
            $ref: '#/components/schemas/UserRelationDto'
        userId:
          type: string
        loginName:
          type: string
        rowStatus:
          type: string
          enum:
            - ARCHIVED
            - AVAILABLE
            - HIDDEN
            - DELETED
    CustomFieldDto:
      type: object
      properties:
        value:
          type: string
        name:
          type: string
        type:
          type: string
        label:
          type: string
    UserRelationDto:
      type: object
      properties:
        name:
          type: string
        userId:
          type: string
        role:
          type: string
    LearningSessionDTO:
      type: object
      properties:
        learningSessionId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        lessonContentId:
          type: integer
          format: int64
        beginTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
        sessionTime:
          type: integer
          format: int64
    LessonDTO:
      type: object
      properties:
        lessonId:
          type: integer
          format: int64
        lessonContentId:
          type: integer
          format: int64
        courseId:
          type: integer
          format: int64
        resourceId:
          type: string
        name:
          type: string
        description:
          type: string
        author:
          type: string
        keywords:
          type: string
        timeDuration:
          type: integer
          format: int64
        modifyDate:
          type: string
          format: date-time
        path:
          type: string
        fullscreen:
          type: boolean
        popupWidth:
          type: integer
          format: int32
        popupHeight:
          type: integer
          format: int32
        popupResize:
          type: boolean
        scoreAsPercent:
          type: boolean
        scoreUnit:
          type: string
        trackingType:
          $ref: '#/components/schemas/TrackingTypeDTO'
        useBestScore:
          type: boolean
        minScore:
          type: number
          format: double
        maxScore:
          type: number
          format: double
        accessLmt:
          type: integer
          format: int32
        blockIfCompleted:
          type: boolean
    TrackingTypeDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        code:
          type: string
        name:
          type: string
    MessagesDataDto:
      type: object
      properties:
        isMessagesEnabled:
          type: boolean
          writeOnly: true
        messagesEnabled:
          type: boolean
    OrgChartDataDto:
      type: object
      properties:
        isOrgChartEnabled:
          type: boolean
          writeOnly: true
        orgChartEnabled:
          type: boolean
    RoleLightWeightDto:
      type: object
      properties:
        roleId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        addedByUser:
          type: boolean
    RoleDto:
      type: object
      properties:
        roleId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        availableForRelation:
          type: boolean
        addedByUser:
          type: boolean
        roleType:
          type: string
          enum:
            - OBJECT
            - SYSTEM
        rightIds:
          type: array
          items:
            type: integer
            format: int64
    ObjectRolePossessorsUsersGroupsSaveDto:
      type: object
      properties:
        roleId:
          type: integer
          format: int64
        targetGroupId:
          type: integer
          format: int64
        userIdsToAdd:
          type: array
          items:
            type: integer
            format: int64
        userIdsToDelete:
          type: array
          items:
            type: integer
            format: int64
        groupIdsToAdd:
          type: array
          items:
            type: integer
            format: int64
        groupIdsToDelete:
          type: array
          items:
            type: integer
            format: int64
    RolePossessorsUsersGroupsDto:
      type: object
      properties:
        userIds:
          type: array
          items:
            type: integer
            format: int64
        groupIds:
          type: array
          items:
            type: integer
            format: int64
    ObjectRolePossessorsDto:
      type: object
      properties:
        roleId:
          type: integer
          format: int64
        groups:
          type: array
          items:
            $ref: '#/components/schemas/PossessorsByGroupIdDto'
    PossessorDto:
      type: object
      properties:
        ownerId:
          type: integer
          format: int64
        possessorType:
          type: string
          enum:
            - GROUP
            - USER
    PossessorsByGroupIdDto:
      type: object
      properties:
        groupId:
          type: integer
          format: int64
        possessors:
          type: array
          items:
            $ref: '#/components/schemas/PossessorDto'
    RightDto:
      type: object
      properties:
        rightId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        roleType:
          type: string
          enum:
            - OBJECT
            - SYSTEM
        availableForRelation:
          type: boolean
    RolePossessorsUsersGroupsSaveDto:
      type: object
      properties:
        roleId:
          type: integer
          format: int64
        userIdsToAdd:
          type: array
          items:
            type: integer
            format: int64
        userIdsToDelete:
          type: array
          items:
            type: integer
            format: int64
        groupIdsToAdd:
          type: array
          items:
            type: integer
            format: int64
        groupIdsToDelete:
          type: array
          items:
            type: integer
            format: int64
    ResultDTO:
      type: object
      properties:
        contentId:
          type: integer
          format: int64
        eduPathId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        objectType:
          type: string
          enum:
            - UNKNOWN
            - GROUP
            - USER
            - COURSE
            - STAT
            - EDU_PACK
            - PATH
            - CATALOG
            - PROGRAM
            - LESSON
            - FOLDER
            - TEST
            - SURVEY
            - SURVEY_ROOT
            - SURVEY_CHILD
            - FILE
            - EDU_EVENT
            - NOTIFICATION
            - DIRECT_ASSIGNATION
            - SUPLEMENTARY_CATALOG
            - MULTI_DIRECT_ASSIGNATION
            - WIKI_PAGE
            - TASK
            - PULSE_CHECK
            - PRE_TEST
            - POST_TEST
            - EXTERNAL
        objectName:
          type: string
        objectPublished:
          type: boolean
        status:
          type: string
          enum:
            - UNKNOWN
            - LACK_SELECTED_DATE
            - NOT_STARTED
            - ABSENT
            - NOT_COMPLETED
            - PRESENT_FAIL
            - COMPLETED
            - CLASSIFIED
            - PRESENT
            - PRESENT_CLASSIFIED
            - FAILED
            - IN_REALIZATION
            - IN_RATING
            - CLOSED
            - NOTIFIED
        result:
          type: number
          format: double
        progress:
          type: integer
          format: int64
        realizationTerm:
          type: string
          format: date-time
        achieveTime:
          type: string
          format: date-time
        expireTime:
          type: string
          format: date-time
        note:
          type: string
        passDate:
          type: string
          format: date-time
        category:
          type: string
        requiredObject:
          type: boolean
        termId:
          type: integer
          format: int64
        visitCount:
          type: integer
          format: int64
        taskId:
          type: integer
          format: int64
        certificateId:
          type: integer
          format: int64
        certificateNumber:
          type: string
    PasswordRecoveryApiDTO:
      type: object
      properties:
        code:
          type: string
        url:
          type: string
    RefreshToken:
      type: object
      properties:
        Authorization-refresh:
          type: string
    ChannelDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        viewAccessType:
          type: string
          enum:
            - EVERY_USER
            - MEMBERS_AND_ADMINS
            - ADMINS
        editAccessType:
          type: string
          enum:
            - EVERY_USER
            - MEMBERS_AND_ADMINS
            - ADMINS
        description:
          type: string
        visible:
          type: boolean
        adminAcceptAppRequired:
          type: boolean
        memberCanInviteUser:
          type: boolean
        authorId:
          type: integer
          format: int64
        creationDate:
          type: string
          format: date-time
        modifiedById:
          type: integer
          format: int64
        modifyDate:
          type: string
          format: date-time
        ownerId:
          type: integer
          format: int64
        type:
          type: string
          enum:
            - BASE
            - ALL_EVENTS
            - FRIENDS
    ChannelUserAuthorizationDTO:
      type: object
      properties:
        userAllowedToCreatePost:
          type: boolean
        userInvited:
          type: boolean
        statusSelfUpdate:
          type: boolean
        joinEnabled:
          type: boolean
        rejectEnabled:
          type: boolean
        undoEnabled:
          type: boolean
        channelAdmin:
          type: boolean
        userChannelMember:
          type: boolean
        awaitingAcceptance:
          type: boolean
        rejectedByOtherUser:
          type: boolean
        leaveChannelEnabled:
          type: boolean
        settingEnabled:
          type: boolean
        notificationsEnabled:
          type: boolean
        postVisible:
          type: boolean
        pinEnabled:
          type: boolean
        userAllowedToAddComment:
          type: boolean
    ChannelUserDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        channelId:
          type: integer
          format: int64
        status:
          type: string
          enum:
            - ADMIN
            - MEMBER
            - WAITING
            - INVITED
            - REJECTED
            - NOT_MEMBER
        statusUpdateById:
          type: integer
          format: int64
        statusTime:
          type: string
          format: date-time
        notifications:
          type: boolean
        channel:
          $ref: '#/components/schemas/ChannelDTO'
        channelAuthorization:
          $ref: '#/components/schemas/ChannelUserAuthorizationDTO'
        memberType:
          type: string
          enum:
            - MANUAL
            - SYNCHRONIZED
    ChannelApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        type:
          type: string
          enum:
            - BASE
            - ALL_EVENTS
            - FRIENDS
    SocialModuleDto:
      type: object
      properties:
        isSocialEnabled:
          type: boolean
          writeOnly: true
        socialEnabled:
          type: boolean
    TermApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        learningHours:
          type: number
          format: double
        userLimit:
          type: integer
          format: int64
        minUserNumber:
          type: integer
          format: int32
        enrollmentStart:
          type: string
          format: date-time
        enrollmentEnd:
          type: string
          format: date-time
        termType:
          $ref: '#/components/schemas/TrainingTermTypeApiDTO'
        organizerId:
          type: integer
          format: int64
        cancelled:
          type: boolean
        extTrainer:
          type: string
        trainers:
          type: array
          items:
            type: integer
            format: int64
        trainingCompany:
          $ref: '#/components/schemas/TrainingCompanyApiDTO'
        postTrainingNotes:
          type: string
        location:
          type: string
        street:
          type: string
        city:
          type: string
    TrainingCompanyApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        externalId:
          type: string
    TrainingTermTypeApiDTO:
      type: object
      properties:
        typeId:
          type: integer
          format: int64
        name:
          type: string
    CreateTermApiDTO:
      type: object
      properties:
        contentId:
          type: integer
          format: int64
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        minUserNumber:
          type: integer
          format: int32
        learningHours:
          type: number
        trainingCompanyId:
          type: integer
          format: int64
        city:
          type: string
        location:
          type: string
        extTrainer:
          type: string
        userLimit:
          type: integer
          format: int64
    TermResultApiDTO:
      type: object
      properties:
        userId:
          type: integer
          format: int64
        termId:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
        score:
          type: number
        passed:
          type: boolean
        presence:
          type: boolean
        statusDate:
          type: string
          format: date-time
    PublishTrainingApiDTO:
      type: object
      properties:
        trainingId:
          type: integer
          format: int64
    AssignTrainingApiDTO:
      type: object
      properties:
        trainingId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
    TrainingApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        category:
          $ref: '#/components/schemas/TrainingCategoryApiDTO'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        published:
          type: boolean
        applicationsManagedByManagers:
          type: boolean
        registrationByAdministrators:
          type: boolean
        registrationByUsers:
          type: boolean
        withdrawalFromTermByParticipants:
          type: boolean
        reportingNeedForNewTermByAdministrators:
          type: boolean
        reportingNeedForNewTermByUsers:
          type: boolean
        trainingNeedIsRequiredToRegisterByAdministrator:
          type: boolean
        trainingNeedIsRequiredToRegisterByUser:
          type: boolean
        isVirtualPaid:
          type: boolean
          writeOnly: true
        virtualCostOfEntry:
          type: integer
          format: int32
        budgetGroupId:
          type: integer
          format: int64
        cost:
          type: number
        costPerUser:
          type: boolean
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/TrainingCustomFieldDTO'
        educationalMaterials:
          type: boolean
        virtualPaid:
          type: boolean
    TrainingCategoryApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
    TrainingCustomFieldDTO:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
        identifier:
          type: string
    UpdateTrainingApiDTO:
      type: object
      properties:
        name:
          type: string
        cost:
          type: number
        costPerUser:
          type: boolean
    CreateTrainingApiDTO:
      type: object
      properties:
        copyOfTrainingId:
          type: integer
          format: int64
        name:
          type: string
        category:
          type: string
        description:
          type: string
        applicationsManagedByManagers:
          type: boolean
        registrationByAdministrators:
          type: boolean
        registrationByUsers:
          type: boolean
        withdrawalFromTermByParticipants:
          type: boolean
        reportingNeedForNewTermByAdministrators:
          type: boolean
        reportingNeedForNewTermByUsers:
          type: boolean
        trainingNeedIsRequiredToRegisterByAdministrator:
          type: boolean
        trainingNeedIsRequiredToRegisterByUser:
          type: boolean
        studentSeeParticipants:
          type: boolean
        rejectAppReasonRequired:
          type: boolean
        suggestReplacement:
          type: boolean
        repeatable:
          type: boolean
        certificateEnabled:
          type: boolean
        isVirtualPaid:
          type: boolean
        virtualCostOfEntry:
          type: integer
          format: int32
        notifyYourSuperiors:
          type: boolean
        ntfSupervisorAboutUserTraining:
          type: boolean
        notifyApproval:
          type: boolean
        notifyNewTerm:
          type: boolean
        notifyUnrealizedPostTest:
          type: boolean
        notifyUnrealizedPostTestDays:
          type: integer
          format: int64
        budgetGroupId:
          type: integer
          format: int64
        cost:
          type: number
        costPerUser:
          type: boolean
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/TrainingCustomFieldDTO'
        educationalMaterials:
          type: boolean
        createNeedForSubs:
          type: boolean
        automaticResult:
          type: boolean
        periodConfig:
          $ref: '#/components/schemas/TrainingPeriodConfigDTO'
    TrainingPeriodConfigDTO:
      type: object
      properties:
        enabled:
          type: boolean
        expirePeriod:
          type: integer
          format: int64
        expirePeriodUnit:
          type: string
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - WEEKS
            - HOURS
        preExpireAccess:
          type: integer
          format: int64
        preExpireAccessUnit:
          type: string
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - WEEKS
            - HOURS
        notifyBeforeExpire:
          type: integer
          format: int64
    UsersLangDTO:
      type: object
      properties:
        langKey:
          type: string
        userIds:
          type: array
          items:
            type: integer
            format: int64
    UserProfileResponse:
      type: object
      properties:
        userFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldDto'
        additionalData:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalDataDto'
        userRelations:
          type: array
          items:
            $ref: '#/components/schemas/UserRelationDto'
        userId:
          type: string
        loginName:
          type: string
        rowStatus:
          type: string
          enum:
            - ARCHIVED
            - AVAILABLE
            - HIDDEN
            - DELETED
    UserActivityDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        type:
          type: string
          enum:
            - UNKNOWN
            - COURSE_START
            - COURSE_PASSED
            - COURSE_FAILED
            - TEST_START
            - TEST_PASSED
            - TEST_FAILED
            - DOWNLOAD_FILE
            - WIKI_PAGE_VIEWED
            - PRESENCE_AT_TRAINING
            - SURVEY_START
            - SURVEY_FINISH
            - LOGIN
            - BADGE_GET
            - TASK_STATUS_REALIZED
            - TASK_STATUS_RETURNED
            - TASK_STATUS_CLOSED
            - TASK_CALLER_CREATED
            - TASK_CALLER_CLOSED
            - TASK_CALLER_RETURNED
            - POINT_SCORED
            - LEVEL_GAINED
            - TERM_STATUS_RETIRED
            - TRAINING_APP_CREATE
            - LOGOUT
            - TRAINING_PAYMENT
            - EDU_PACK_COMPLETION_BONUS
            - TRAINING_PAYMENT_RETURN
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        objectType:
          type: string
          enum:
            - UNKNOWN
            - NONE
            - CONTENT
            - EDU_PACK
            - BADGE
            - TASK
            - SOCIAL_EVENT
            - LEVEL_TYPE
            - TERM
            - TRAINING_APPLICATION
            - COIN_TRANSACTAION
        objectName:
          type: string
        objectId:
          type: integer
          format: int64
    UserReactionApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        objectId:
          type: integer
          format: int64
        objectType:
          type: string
          enum:
            - SOCIAL_EVENT
            - COMMENT
            - TASK
    AbstractCost:
      type: object
      properties:
        costId:
          type: integer
          format: int64
        planedCost:
          type: number
          format: double
        planedCostsCount:
          type: integer
          format: int64
        realCosts:
          type: number
          format: double
        realCostsCount:
          type: integer
          format: int64
        currencyType:
          $ref: '#/components/schemas/CurrencyType'
        costType:
          $ref: '#/components/schemas/CostType'
        planedCostTotal:
          type: number
          format: double
        realCostTotal:
          type: number
          format: double
    AbstractCustomField:
      type: object
      properties:
        customFieldId:
          type: integer
          format: int64
        name:
          type: string
        type:
          type: string
          enum:
            - TEXT
            - DATE
            - LIST
            - LABEL
            - RICH_TEXT
            - FLOW_STATUS
            - EDU_PATH_SELECT
            - GENERIC_LIST
            - TRAINING_NAME
            - MODIFIED_BY
            - CREATED_BY
            - BUDGET_PERIOD
            - PARTICIPANT
            - BOOLEAN
            - NUMERIC_FIELD
            - TERM
            - BUDGET_GROUP
            - TRAINING_COMPANY
        validatorType:
          type: string
          enum:
            - PESEL
            - CUSTOM_REGEXP
            - NONE
        regexp:
          type: string
        listValues:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldListValue'
        orderValue:
          type: integer
          format: int32
        requiredField:
          type: boolean
        fieldPrivs:
          type: array
          items:
            $ref: '#/components/schemas/AbstractFieldPriv'
        uniqueIdentifier:
          type: string
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        entityType:
          type: string
          enum:
            - COMMON
            - USER
        objectType:
          type: string
          enum:
            - TRAINING_COMPANY
            - GROUP_BUDGET
            - BUDGET_COST
            - BUDGET_PERIOD
            - TRAINING
            - USER
            - PLANNED_COST
            - REALIZED_COST
            - DOCUMENT
            - COURSE
            - TEST
        content:
          type: string
        unique:
          type: boolean
        modifierUserId:
          type: integer
          format: int64
        modifierDate:
          type: string
          format: date-time
        objectId:
          type: integer
          format: int64
        visible:
          type: boolean
        readOnlyOnDocumentEdit:
          type: boolean
        restrictBudgetGroups:
          $ref: '#/components/schemas/AbstractCustomField'
        autofill:
          type: boolean
        readOnly:
          type: boolean
        defaultValue:
          type: string
        hidden:
          type: boolean
        identifier:
          type: integer
          format: int64
        order:
          type: integer
          format: int32
        id:
          type: integer
          format: int64
        uniqueIdentifierWithTag:
          type: string
        uniqueIdentifierTag:
          type: string
        defaultFieldValue:
          type: object
    AbstractFieldPriv:
      type: object
      properties:
        fieldPrivId:
          type: integer
          format: int64
        privId:
          type: integer
          format: int64
        staticField:
          type: object
        customField:
          $ref: '#/components/schemas/AbstractCustomField'
        relationField:
          $ref: '#/components/schemas/UserRelationType'
        fieldAvailableType:
          type: string
          enum:
            - FOR_USER
            - USER_EDIT
            - FOR_OTHER_USER
        modificationDate:
          type: string
          format: date-time
        modificationUserId:
          type: integer
          format: int64
        identifier:
          type: integer
          format: int64
        field:
          type: object
    AbstractTestElement:
      type: object
      properties:
        id:
          type: integer
          format: int64
        category:
          $ref: '#/components/schemas/TestCategory'
        elementType:
          type: string
          enum:
            - SCREEN
            - SINGLE_CHOICE
            - DROPDOWN_LIST
            - MULTIPLE_CHOICE
            - TRUTH_FALSE
            - CREATING_SENTENCES
            - COMBINING_STATEMENTS
            - COMPLETING_SENTENCES
            - OPEN_QUESTION
            - KEY_WORDS
        content:
          type: string
        contentTranslation:
          $ref: '#/components/schemas/Translation'
        contentTranslationId:
          type: integer
          format: int64
        order:
          type: integer
          format: int32
        identifier:
          type: string
        visible:
          type: boolean
        required:
          type: boolean
    AccessTime:
      type: object
      properties:
        id:
          type: integer
          format: int64
        content:
          $ref: '#/components/schemas/SimpleContent'
        dateFrom:
          type: integer
          format: int64
        dateTo:
          type: integer
          format: int64
        dayList:
          type: string
    BehaviorLevel:
      required:
        - name
      type: object
      properties:
        skillLevelId:
          type: integer
          format: int64
        name:
          type: string
        level:
          type: integer
          format: int32
        type:
          type: string
          enum:
            - COMPETENCE
            - BEHAVIOUR
        description:
          type: string
        skillBehavior:
          $ref: '#/components/schemas/SkillBehavior'
        targetId:
          type: integer
          format: int64
        orginalBehaviorLevel:
          type: integer
          format: int64
        identifier:
          type: integer
          format: int64
        order:
          type: integer
          format: int32
        id:
          type: integer
          format: int64
        levelNumber:
          type: integer
          format: int32
    Category:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
    Certificate:
      type: object
      properties:
        certId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        creationDate:
          type: string
          format: date-time
        createdBy:
          $ref: '#/components/schemas/User'
        modifyDate:
          type: string
          format: date-time
        modifiedBy:
          type: integer
          format: int64
        unremovable:
          type: boolean
        author:
          $ref: '#/components/schemas/UserSimpleValue'
        listValues:
          type: array
          items:
            $ref: '#/components/schemas/CertificateDefault'
        identifier:
          type: integer
          format: int64
    CertificateDefault:
      type: object
      properties:
        certDefaultId:
          type: integer
          format: int64
        type:
          type: string
          enum:
            - COURSE
            - STAT
            - PATH
            - CATALOG
            - PROGRAM
            - TEST
        certificate:
          $ref: '#/components/schemas/Certificate'
        identifier:
          type: integer
          format: int64
    CommonCustomField:
      type: object
      properties:
        customFieldId:
          type: integer
          format: int64
        name:
          type: string
        type:
          type: string
          enum:
            - TEXT
            - DATE
            - LIST
            - LABEL
            - RICH_TEXT
            - FLOW_STATUS
            - EDU_PATH_SELECT
            - GENERIC_LIST
            - TRAINING_NAME
            - MODIFIED_BY
            - CREATED_BY
            - BUDGET_PERIOD
            - PARTICIPANT
            - BOOLEAN
            - NUMERIC_FIELD
            - TERM
            - BUDGET_GROUP
            - TRAINING_COMPANY
        validatorType:
          type: string
          enum:
            - PESEL
            - CUSTOM_REGEXP
            - NONE
        regexp:
          type: string
        listValues:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldListValue'
        orderValue:
          type: integer
          format: int32
        requiredField:
          type: boolean
        fieldPrivs:
          type: array
          items:
            $ref: '#/components/schemas/AbstractFieldPriv'
        uniqueIdentifier:
          type: string
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        entityType:
          type: string
          enum:
            - COMMON
            - USER
        objectType:
          type: string
          enum:
            - TRAINING_COMPANY
            - GROUP_BUDGET
            - BUDGET_COST
            - BUDGET_PERIOD
            - TRAINING
            - USER
            - PLANNED_COST
            - REALIZED_COST
            - DOCUMENT
            - COURSE
            - TEST
        content:
          type: string
        unique:
          type: boolean
        modifierUserId:
          type: integer
          format: int64
        modifierDate:
          type: string
          format: date-time
        objectId:
          type: integer
          format: int64
        visible:
          type: boolean
        readOnlyOnDocumentEdit:
          type: boolean
        restrictBudgetGroups:
          $ref: '#/components/schemas/AbstractCustomField'
        autofill:
          type: boolean
        readOnly:
          type: boolean
        defaultValue:
          type: string
        values:
          type: array
          items:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        hidden:
          type: boolean
        identifier:
          type: integer
          format: int64
        order:
          type: integer
          format: int32
        id:
          type: integer
          format: int64
        uniqueIdentifierWithTag:
          type: string
        uniqueIdentifierTag:
          type: string
        defaultFieldValue:
          type: object
    CommonCustomFieldValue:
      type: object
      properties:
        id:
          type: integer
          format: int64
        customField:
          $ref: '#/components/schemas/CommonCustomField'
        objectId:
          type: integer
          format: int64
        objectType:
          type: string
          enum:
            - TRAINING_COMPANY
            - GROUP_BUDGET
            - BUDGET_COST
            - BUDGET_PERIOD
            - TRAINING
            - USER
            - PLANNED_COST
            - REALIZED_COST
            - DOCUMENT
            - COURSE
            - TEST
        customFieldValue:
          type: string
        valueAsDate:
          type: string
          format: date-time
        customFieldId:
          type: integer
          format: int64
    CompetenceLevel:
      required:
        - name
      type: object
      properties:
        skillLevelId:
          type: integer
          format: int64
        name:
          type: string
        level:
          type: integer
          format: int32
        type:
          type: string
          enum:
            - COMPETENCE
            - BEHAVIOUR
        description:
          type: string
        skillType:
          $ref: '#/components/schemas/SkillType'
        orginalCompetenceLevel:
          type: integer
          format: int64
        identifier:
          type: integer
          format: int64
        order:
          type: integer
          format: int32
        id:
          type: integer
          format: int64
        levelNumber:
          type: integer
          format: int32
    ContentApp:
      required:
        - status
        - termOptions
      type: object
      properties:
        id:
          type: integer
          format: int64
        user:
          $ref: '#/components/schemas/User'
        content:
          $ref: '#/components/schemas/SimpleContent'
        term:
          $ref: '#/components/schemas/Term'
        requestTime:
          type: integer
          format: int64
        getauthorId:
          $ref: '#/components/schemas/User'
        approveTime:
          type: integer
          format: int64
        rejectTime:
          type: integer
          format: int64
        retireTime:
          type: integer
          format: int64
        statusUpdateDate:
          type: string
          format: date-time
        status:
          type: integer
          format: int64
        admin:
          $ref: '#/components/schemas/User'
        termOptions:
          type: array
          items:
            $ref: '#/components/schemas/TermAppOption'
        rejectReason:
          type: string
        dcumentName:
          type: string
        automaticNeedCreated:
          type: boolean
        prePostTestResult:
          $ref: '#/components/schemas/PrePostTestResult'
        statusType:
          type: string
          enum:
            - NOTIFIED
            - ACCEPTED
            - REJECTED
            - RETIRED
            - REMOVED
            - CANCELED
        lastStatusUpdate:
          type: string
          format: date-time
        adminPresentation:
          type: string
        prePostTestResultObjectId:
          type: integer
          format: int64
        prePostTestResultUserId:
          type: integer
          format: int64
    ContentGroup:
      type: object
      properties:
        contentGroupId:
          $ref: '#/components/schemas/ContentGroupPK'
        content:
          $ref: '#/components/schemas/SimpleContent'
        group:
          $ref: '#/components/schemas/Group'
        admin:
          $ref: '#/components/schemas/User'
        adminLogin:
          type: string
        creationTime:
          type: string
          format: date-time
    ContentGroupPK:
      type: object
      properties:
        groupId:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
    ContentServer:
      type: object
      properties:
        id:
          type: integer
          format: int64
        rowStatus:
          type: integer
          format: int32
        name:
          type: string
        description:
          type: string
        url:
          type: string
        accessUrl:
          type: string
        defaultServer:
          type: boolean
    ContentType:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
    CostType:
      type: object
      properties:
        costTypeId:
          type: integer
          format: int64
        name:
          type: string
        type:
          type: string
          enum:
            - UNIT
            - FIXED
            - PARTICIPATION
        costs:
          type: array
          items:
            $ref: '#/components/schemas/AbstractCost'
        externalId:
          type: string
    Course:
      type: object
      properties:
        id:
          type: integer
          format: int64
        content:
          $ref: '#/components/schemas/SimpleContent'
        author:
          type: string
        lang:
          type: string
        system:
          type: string
        keywords:
          type: string
        timeDuration:
          type: integer
          format: int64
        cost:
          type: number
          format: double
        maxOpen:
          type: integer
          format: int32
        needApproval:
          type: boolean
        forum:
          type: boolean
        chat:
          type: boolean
        ntfApproval:
          type: boolean
        certificate:
          type: boolean
        testContent:
          $ref: '#/components/schemas/SimpleContent'
        testContentId:
          type: integer
          format: int64
        cntPath:
          type: string
        lessonsOnDelete:
          type: integer
          format: int32
        offlineId:
          type: integer
          format: int64
        sharedDataGlobalToSystem:
          type: boolean
        dailyLimit:
          type: integer
          format: int64
        totalTime:
          type: integer
          format: int64
        timeInterval:
          type: integer
          format: int64
        notifyAfter:
          type: integer
          format: int64
        courseDurationMode:
          type: boolean
        wiki:
          type: boolean
        studentCertificate:
          $ref: '#/components/schemas/Certificate'
        adminCertificate:
          $ref: '#/components/schemas/Certificate'
        courseTypeEnum:
          type: string
          enum:
            - SCORM
            - SCORM2004
            - AICC
            - SIMPLE
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
        customFields:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        customFieldsValue:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        periodConfig:
          $ref: '#/components/schemas/ObjectPeriodConfig'
        periodic:
          type: boolean
        minutesTimeDuration:
          type: integer
          format: int64
    CurrencyType:
      required:
        - name
      type: object
      properties:
        isoCode:
          type: string
        name:
          type: string
        exchangeRatio:
          type: number
          format: double
    CustomFieldListValue:
      required:
        - value
      type: object
      properties:
        valueId:
          type: integer
          format: int64
        customField:
          $ref: '#/components/schemas/AbstractCustomField'
        value:
          type: string
        order:
          type: integer
          format: int32
        uniqueValueIdentifier:
          type: string
        id:
          type: integer
          format: int64
        translation:
          $ref: '#/components/schemas/Translation'
    DocumentType:
      required:
        - acceptWhenEditPriv
        - copyApplicationEnabled
        - creationDate
        - decisionButtonsVisible
        - firstStepName
        - hideUntilAccepted
        - modifyDate
        - name
        - omitFirstStep
        - plainUserApplicationEnabled
        - published
        - rejectReasonRequired
        - termApplication
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          maxLength: 255
          minLength: 1
          type: string
        description:
          type: string
        creationDate:
          type: string
          format: date-time
        modifyDate:
          type: string
          format: date-time
        author:
          $ref: '#/components/schemas/LightUser'
        modifiedBy:
          $ref: '#/components/schemas/LightUser'
        plainUserApplicationEnabled:
          type: boolean
        copyApplicationEnabled:
          type: boolean
        decisionButtonsVisible:
          type: boolean
        rejectReasonRequired:
          type: boolean
        firstStepName:
          maxLength: 255
          minLength: 1
          type: string
        acceptWhenEditPriv:
          type: boolean
        omitFirstStep:
          type: boolean
        termApplication:
          type: boolean
        published:
          type: boolean
        hideUntilAccepted:
          type: boolean
        termFilterConfig:
          $ref: '#/components/schemas/DocumentTypeFilterConfig'
        workflowDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowDefinition'
        notificationConfigs:
          type: array
          items:
            $ref: '#/components/schemas/DocumentTypeNotificationConfig'
    DocumentTypeFilterConfig:
      required:
        - className
        - objectId
        - objectType
      type: object
      properties:
        id:
          type: integer
          format: int64
        objectType:
          maxLength: 20
          minLength: 1
          type: string
          enum:
            - DOCUMENT_TYPE
        objectId:
          type: integer
          format: int64
        filterParams:
          maxLength: 2147483647
          minLength: 0
          type: string
        className:
          maxLength: 255
          minLength: 1
          type: string
        formula:
          type: string
        documentType:
          $ref: '#/components/schemas/DocumentType'
    DocumentTypeNotificationConfig:
      type: object
      properties:
        id:
          type: integer
          format: int64
        objectId:
          type: integer
          format: int64
        objectType:
          type: string
        actionType:
          type: string
          enum:
            - EDU_PACK_COMPLETE
            - EDU_PACK_INFERIOR_COMPLETE
            - USER_EDU_PACK_ASSIGN
            - NEW_TRAINING_APP_DOC_TO_PROCESS
        sendNotification:
          type: boolean
        templateType:
          type: string
          enum:
            - DEFAULT
            - FROM_BASE
            - MANUAL
        defaultEventType:
          $ref: '#/components/schemas/NotificationEventType'
        notification:
          $ref: '#/components/schemas/Notification'
        documentType:
          $ref: '#/components/schemas/DocumentType'
    EduEvent:
      type: object
      properties:
        id:
          type: integer
          format: int64
        location:
          type: string
        trainer:
          $ref: '#/components/schemas/User'
        content:
          $ref: '#/components/schemas/SimpleContent'
        eventType:
          type: string
          enum:
            - PLAIN
            - TASK_CREATE
            - PULSE_CHECK
        taskTemplate:
          $ref: '#/components/schemas/EventTaskTemplate'
        eventPulseCheck:
          $ref: '#/components/schemas/EventPulseCheck'
        identifier:
          type: integer
          format: int64
    EduFile:
      type: object
      properties:
        id:
          type: integer
          format: int64
        fileType:
          type: string
        fileName:
          type: string
        content:
          $ref: '#/components/schemas/SimpleContent'
        eduFileType:
          type: string
          enum:
            - ATTACHMENT
            - HTML
            - CONVERTED_VIDEO
        html:
          type: string
        converted:
          type: string
          enum:
            - PASSED
            - IN_PROGRESS
            - ERROR
        convertedProgress:
          type: integer
          format: int32
        mimeType:
          type: string
        fileWindowSize:
          type: string
          enum:
            - SMALL_560x315
            - MEDIUM_640x480
            - LARGE_854x480
        showInNewPage:
          type: boolean
        identifier:
          type: integer
          format: int64
    EduPack:
      type: object
      properties:
        name:
          type: string
        type:
          type: integer
          format: int64
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        eduPackId:
          type: integer
          format: int64
        dscr:
          type: string
        creationDate:
          type: integer
          format: int64
        lastChangeDate:
          type: integer
          format: int64
        authorId:
          type: integer
          format: int64
        author:
          $ref: '#/components/schemas/User'
        modifiedBy:
          $ref: '#/components/schemas/User'
        category:
          type: string
        manualApp:
          type: boolean
        studentManualApp:
          type: boolean
        adminManualApp:
          type: boolean
        studentManualAppAccepted:
          type: boolean
        adminManualAppAccepted:
          type: boolean
        professional:
          type: boolean
        repetitive:
          type: boolean
        eduPackGroups:
          type: array
          items:
            $ref: '#/components/schemas/EduPackGroup'
        appRejectReasonRequired:
          type: boolean
        appRemoveBlock:
          type: boolean
        templateEnabled:
          type: boolean
        minExtraElementCount:
          type: integer
          format: int32
        eduPackContents:
          type: array
          items:
            $ref: '#/components/schemas/EduPackContent'
        lightEduPackContents:
          type: array
          items:
            $ref: '#/components/schemas/LightEduPackContent'
        eduPackContentsCount:
          type: integer
          format: int64
        template:
          $ref: '#/components/schemas/EduPack'
        groupAssigned:
          type: array
          items:
            $ref: '#/components/schemas/EduPackGroupAssignation'
        userDirectAssignations:
          type: array
          items:
            $ref: '#/components/schemas/EduPackUserDirectAssignation'
        studentAppTo:
          type: integer
          format: int64
        studentCertificate:
          $ref: '#/components/schemas/Certificate'
        displayInMenu:
          type: boolean
        nameInMenu:
          type: string
        categoryObject:
          $ref: '#/components/schemas/Category'
        extPriv:
          $ref: '#/components/schemas/ExternalPriv'
        timeRestrictions:
          type: boolean
        timeRestrictionFrom:
          type: string
          format: date-time
        timeRestrictionTo:
          type: string
          format: date-time
        studentGenerateCertificate:
          type: boolean
        config:
          $ref: '#/components/schemas/EduProgramConfig'
        tag:
          type: string
        notificationConfigs:
          type: array
          items:
            $ref: '#/components/schemas/EduPackNotificationConfig'
        periodConfig:
          $ref: '#/components/schemas/ObjectPeriodConfig'
        visibleGroups:
          type: string
        coinBonus:
          type: integer
          format: int32
        skipCalculatingProgress:
          type: boolean
        dscrTranslation:
          $ref: '#/components/schemas/Translation'
        periodic:
          type: boolean
        ranked:
          type: boolean
        groupIds:
          type: array
          items:
            type: integer
            format: int64
        eduPackType:
          type: string
          enum:
            - GROUP
            - USER
            - COURSE
            - STAT
            - EDU_PACK
            - PATH
            - CATALOG
            - PROGRAM
            - LESSON
            - FOLDER
            - TEST
            - SURVEY
            - SURVEY_ROOT
            - SURVEY_CHILD
            - FILE
            - EDU_EVENT
            - NOTIFICATION
            - DIRECT_ASSIGNATION
            - SUPLEMENTARY_CATALOG
            - MULTI_DIRECT_ASSIGNATION
            - WIKI_PAGE
            - TASK
            - PULSE_CHECK
            - PRE_TEST
            - POST_TEST
            - EXTERNAL
        creationDateDate:
          type: string
          format: date-time
        lastChangeDateDate:
          type: string
          format: date-time
        assignedGroupIds:
          type: array
          items:
            type: integer
            format: int64
        studentAppToAsDate:
          type: string
          format: date-time
        constainsGame:
          type: boolean
        palette:
          $ref: '#/components/schemas/Palette'
        eduPackGroupIds:
          type: array
          items:
            type: integer
            format: int64
        eduPackUserAssignNotificationStepEnabled:
          type: boolean
        id:
          type: integer
          format: int64
    EduPackContent:
      type: object
      properties:
        embeddedId:
          $ref: '#/components/schemas/EduPackContentPk'
        content:
          $ref: '#/components/schemas/SimpleContent'
        eduPack:
          $ref: '#/components/schemas/EduPack'
        trainerEmail:
          type: string
        ntfEndDays:
          type: integer
          format: int64
        ntfEndDays2:
          type: integer
          format: int64
        ntfCompleted:
          type: boolean
        ntfNotCompleted:
          type: boolean
        supNtfCompleted:
          type: boolean
        supNtfNotCompleted:
          type: boolean
        ntfNewCycle:
          type: boolean
        baseCourseInRepetitivePath:
          type: boolean
        eduPackNotification:
          type: array
          items:
            $ref: '#/components/schemas/EduPackNotification'
        sendNotification:
          type: boolean
        repeatNotification:
          type: boolean
        cyclicLearning:
          type: boolean
        order:
          type: integer
          format: int32
        prereq:
          type: string
        repetitiveStartValue:
          type: integer
          format: int32
        repetitiveStartUnit:
          type: string
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - WEEKS
            - HOURS
        repetitiveStartTime:
          type: integer
          format: int64
        repetitiveEndValue:
          type: integer
          format: int32
        repetitiveEndUnit:
          type: string
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - WEEKS
            - HOURS
        repetitiveEndTime:
          type: integer
          format: int64
        scheduledTimeSpan:
          type: number
          format: float
        scheduledDate:
          type: integer
          format: int64
        resetBaseCourseAfterFail:
          type: boolean
        ntfContentAccess:
          type: boolean
        elementIncludedInPath:
          type: boolean
        timeFrom:
          $ref: '#/components/schemas/EduPackContentTimeRestriction'
        timeTo:
          $ref: '#/components/schemas/EduPackContentTimeRestriction'
        id:
          $ref: '#/components/schemas/EduPackContentPk'
        scheduledDateAsDate:
          type: string
          format: date-time
        repetitiveStartTimeFromValue:
          type: integer
          format: int32
          writeOnly: true
        repetitiveEndTimeFromValue:
          type: integer
          format: int32
          writeOnly: true
    EduPackContentPk:
      type: object
      properties:
        eduPackId:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
    EduPackContentTimeRestriction:
      type: object
      properties:
        type:
          type: string
          enum:
            - NONE
            - DATE
            - FROM_ASSIGN
        date:
          type: string
          format: date-time
        assignValue:
          type: integer
          format: int64
        assignUnit:
          type: string
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - WEEKS
            - HOURS
        assignMs:
          type: integer
          format: int64
    EduPackGroup:
      type: object
      properties:
        eduPackGroupPk:
          $ref: '#/components/schemas/EduPackGroupPk'
        additionDate:
          type: integer
          format: int64
        group:
          $ref: '#/components/schemas/Group'
        eduPack:
          $ref: '#/components/schemas/EduPack'
        admin:
          $ref: '#/components/schemas/User'
        adminLoginName:
          type: string
    EduPackGroupAssignation:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/EduPackGroupAssignationPK'
        eduPack:
          $ref: '#/components/schemas/EduPack'
        group:
          $ref: '#/components/schemas/Group'
        assignationTime:
          type: integer
          format: int64
        author:
          $ref: '#/components/schemas/User'
    EduPackGroupAssignationPK:
      type: object
      properties:
        eduPackId:
          type: integer
          format: int64
        groupId:
          type: integer
          format: int64
    EduPackGroupPk:
      type: object
      properties:
        eduPackId:
          type: integer
          format: int64
        groupId:
          type: integer
          format: int64
    EduPackNotification:
      type: object
      properties:
        eduPackNotificationId:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
        eduPackId:
          type: integer
          format: int64
        notification:
          $ref: '#/components/schemas/Notification'
        notificationTimeValue:
          type: integer
          format: int64
        notificationTimeUnit:
          type: string
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - WEEKS
            - HOURS
        getuId:
          type: integer
          format: int64
        notificationTimeMillis:
          type: integer
          format: int64
        identifier:
          type: integer
          format: int64
    EduPackNotificationConfig:
      type: object
      properties:
        id:
          type: integer
          format: int64
        objectId:
          type: integer
          format: int64
        objectType:
          type: string
        actionType:
          type: string
          enum:
            - EDU_PACK_COMPLETE
            - EDU_PACK_INFERIOR_COMPLETE
            - USER_EDU_PACK_ASSIGN
            - NEW_TRAINING_APP_DOC_TO_PROCESS
        sendNotification:
          type: boolean
        templateType:
          type: string
          enum:
            - DEFAULT
            - FROM_BASE
            - MANUAL
        defaultEventType:
          $ref: '#/components/schemas/NotificationEventType'
        notification:
          $ref: '#/components/schemas/Notification'
        eduPack:
          $ref: '#/components/schemas/EduPack'
    EduPackUserDirectAssignation:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/EduPackUserDirectAssignationPK'
        eduPack:
          $ref: '#/components/schemas/EduPack'
        user:
          $ref: '#/components/schemas/User'
        assignationTime:
          type: integer
          format: int64
        author:
          $ref: '#/components/schemas/User'
    EduPackUserDirectAssignationPK:
      type: object
      properties:
        eduPackId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
    EduProgramConfig:
      type: object
      properties:
        programConfId:
          type: integer
          format: int64
        minHeight:
          type: integer
          format: int32
        typePictureAfterRun:
          type: string
          enum:
            - DEFAULT
            - OWN
            - NONE
        tileColorAfterRun:
          type: string
        titleAndDescColorAfterRun:
          type: string
        linkAndInstrColorAfterRun:
          type: string
        palette:
          $ref: '#/components/schemas/Palette'
        ranked:
          type: boolean
        showProgres:
          type: boolean
        constainsGame:
          type: boolean
        showTaskRelatedProgram:
          type: boolean
        typePictureTask:
          type: string
          enum:
            - DEFAULT
            - OWN
            - NONE
        taskColor:
          type: string
        files:
          type: array
          items:
            $ref: '#/components/schemas/EduProgramConfigFile'
        backgroundTransparency:
          type: integer
          format: int32
        nameTileTask:
          type: string
        colorTextTileTask:
          type: string
        colorFrameRankedProgress:
          type: string
        rankedProgressFrameTransparency:
          type: integer
          format: int32
        colorTextRankedProgress:
          type: string
    EduProgramConfigFile:
      type: object
      properties:
        fileId:
          type: integer
          format: int64
        fileName:
          type: string
        description:
          type: string
        creationDate:
          type: string
          format: date-time
        modifyDate:
          type: string
          format: date-time
        createdBy:
          $ref: '#/components/schemas/UserCard'
        modifiedBy:
          $ref: '#/components/schemas/UserCard'
        size:
          type: integer
          format: int64
        file:
          type: string
          format: binary
        extension:
          type: string
        type:
          type: string
          enum:
            - POST_IMAGE
            - POST_MOVIE
            - POST_ATTACHMENT
            - TILE_IMAGE
            - TILE_IMAGE_AFTER_RUN
            - TASK_IMAGE
            - TASK_ICON_IMAGE
            - TILE_PANEL_BACKGROUND_IMAGE
            - NEWSLETTER_BANNER
        objectType:
          type: string
          enum:
            - OTHER
            - TEST_SCREEN
            - TYPE_POST
            - DOCUMENT
            - USER_CERTIFICATE
            - TYPE_TASK
            - TYPE_COMMENT
            - EDU_PROGRAM_CONFIG
            - EDU_PROGRAM_ELEMENT
            - TILE
            - KNOWLEDGE_BASE_PAGE
            - KNOWLEDGE_BASE_NEWS
            - KNOWLEDGE_BASE_NEWS_THUMBNAIL
        objectId:
          type: integer
          format: int64
        converted:
          type: string
          enum:
            - PASSED
            - IN_PROGRESS
            - ERROR
        convertedProgress:
          type: integer
          format: int32
        dirPath:
          type: string
        eduProgramConfig:
          $ref: '#/components/schemas/EduProgramConfig'
        identifier:
          type: string
        path:
          type: string
    EventPulseCheck:
      type: object
      properties:
        id:
          type: integer
          format: int64
        question:
          type: string
        questionTranslation:
          $ref: '#/components/schemas/Translation'
        isViewAfterLogin:
          type: boolean
        event:
          $ref: '#/components/schemas/EduEvent'
    EventTaskTemplate:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        descriptionTranslation:
          $ref: '#/components/schemas/Translation'
        tag:
          type: string
        userSelectType:
          type: string
          enum:
            - ASSIGNED_USER
            - ASSIGNED_USER_RELATED
            - OTHER_USER
        userRelationType:
          $ref: '#/components/schemas/UserRelationType'
        evaluatorSelectType:
          type: string
          enum:
            - ASSIGNED_USER
            - ASSIGNED_USER_RELATED
            - OTHER_USER
        evaluatorRelationType:
          $ref: '#/components/schemas/UserRelationType'
        participant:
          $ref: '#/components/schemas/User'
        evaluator:
          $ref: '#/components/schemas/User'
        event:
          $ref: '#/components/schemas/EduEvent'
        automaticUserChanged:
          type: boolean
        automaticClosed:
          type: boolean
    ExternalPriv:
      required:
        - extId
        - name
      type: object
      properties:
        id:
          type: integer
          format: int64
        extId:
          type: string
        name:
          type: string
    Group:
      type: object
      properties:
        groupId:
          type: integer
          format: int64
        name:
          type: string
        groupType:
          type: string
          enum:
            - COMMON
            - USER
            - COURSE
            - STAT
            - PATH
            - RELATION_HIDDEN
            - BUDGET_GROUP
        rowStatus:
          type: integer
          format: int32
        parentGroup:
          $ref: '#/components/schemas/Group'
        extGroupId:
          type: string
        groupPath:
          type: string
        userGroups:
          type: array
          items:
            $ref: '#/components/schemas/UserGroup'
        tag:
          type: string
          enum:
            - SECTION
            - MANAGERS
            - SUPERVISORS
        synch:
          type: boolean
        description:
          type: string
        author:
          $ref: '#/components/schemas/User'
        creationDate:
          type: string
          format: date-time
        modifiedBy:
          $ref: '#/components/schemas/User'
        modifyDate:
          type: string
          format: date-time
        relatedGroupId:
          $ref: '#/components/schemas/Group'
        orgChartEnabled:
          type: boolean
        customFieldsValue:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        commonCustomFieldValue:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        synchronizeUsers:
          type: boolean
        section:
          type: boolean
        relatedGroupName:
          type: string
        path:
          type: string
    GroupValue:
      type: object
      properties:
        groupId:
          type: integer
          format: int64
        groupType:
          type: string
          enum:
            - COMMON
            - USER
            - COURSE
            - STAT
            - PATH
            - RELATION_HIDDEN
            - BUDGET_GROUP
        parentId:
          type: integer
          format: int64
        extGroupId:
          type: string
        name:
          type: string
        path:
          type: string
        description:
          type: string
        objectsCount:
          type: integer
          format: int64
        restricted:
          type: boolean
        shortName:
          type: string
        address:
          type: string
        phone:
          type: string
        fax:
          type: string
        webPage:
          type: string
        contactPerson:
          type: string
        email:
          type: string
        isSynchronized:
          type: boolean
        orgChartEnabled:
          type: boolean
        orgChartManuallySelected:
          type: boolean
        external:
          type: boolean
        leaf:
          type: boolean
        id:
          type: integer
          format: int64
        nip:
          type: string
    Invitation:
      type: object
      properties:
        id:
          type: integer
          format: int64
        sentTime:
          type: string
          format: date-time
        invitatingUser:
          $ref: '#/components/schemas/User'
        invitedUser:
          $ref: '#/components/schemas/User'
        invitedUserId:
          type: integer
          format: int64
          writeOnly: true
        invitationStatus:
          type: integer
          format: int32
    Lang:
      type: object
      properties:
        id:
          type: integer
          format: int64
        isoKey:
          type: string
        description:
          type: string
        enabled:
          type: boolean
    Lesson:
      type: object
      properties:
        id:
          type: integer
          format: int64
        author:
          type: string
        lang:
          type: string
        system:
          type: string
        keywords:
          type: string
        timeDuration:
          type: integer
          format: int64
        cost:
          type: number
          format: double
        lmsRun:
          type: boolean
        localRun:
          type: boolean
        useServer:
          type: boolean
        server:
          $ref: '#/components/schemas/ContentServer'
        cntPath:
          type: string
        webLaunch:
          type: string
        coreVendor:
          type: string
        auPassword:
          type: string
        popup:
          type: boolean
        fullscreen:
          type: boolean
        width:
          type: integer
          format: int32
        height:
          type: integer
          format: int32
        resize:
          type: boolean
        trackingTp:
          type: integer
          format: int64
        trackingApi:
          type: boolean
        accessLmt:
          type: integer
          format: int32
        timeLmt:
          type: integer
          format: int64
        timeLmtActTp:
          type: integer
          format: int64
        prereq:
          type: string
        useBestScore:
          type: boolean
        maxScore:
          type: number
          format: double
        minScore:
          type: number
          format: double
        masteryScore:
          type: number
          format: double
        blockIfCompleted:
          type: boolean
        completionTreshold:
          type: number
          format: double
        chat:
          type: boolean
        scoreAsPercent:
          type: boolean
        scoreUnit:
          type: string
    LightBudgetPeriod:
      required:
        - name
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        active:
          type: boolean
        notificationSend:
          type: boolean
        createdDate:
          type: string
          format: date-time
        modifyDate:
          type: string
          format: date-time
        externalId:
          type: string
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
    LightContent:
      required:
        - description
        - name
      type: object
      properties:
        rootId:
          type: integer
          format: int64
        root:
          $ref: '#/components/schemas/LightContent'
        rowStatus:
          type: integer
          format: int32
        description:
          type: string
        descriptionTranslation:
          $ref: '#/components/schemas/Translation'
        developerId:
          type: string
        published:
          type: boolean
        category:
          type: string
        fileId:
          type: integer
          format: int64
        eduEvent:
          $ref: '#/components/schemas/LightEduEvent'
        term:
          $ref: '#/components/schemas/LightTerm'
        contentGroups:
          type: array
          items:
            $ref: '#/components/schemas/ContentGroup'
        statId:
          type: integer
          format: int64
        survey:
          type: integer
          format: int64
        test:
          type: integer
          format: int64
        creationDate:
          type: string
          format: date-time
        modifyDate:
          type: string
          format: date-time
        createdBy:
          $ref: '#/components/schemas/LightUser'
        modifiedBy:
          $ref: '#/components/schemas/LightUser'
        course:
          type: integer
          format: int64
        parent:
          $ref: '#/components/schemas/LightContent'
        lesson:
          type: integer
          format: int64
        folderId:
          type: integer
          format: int64
        contentOrder:
          type: integer
          format: int64
        documents:
          type: array
          items:
            $ref: '#/components/schemas/LightDocument'
        accessTime:
          $ref: '#/components/schemas/SimpleAccessTime'
        categoryObject:
          $ref: '#/components/schemas/Category'
        wikiPage:
          $ref: '#/components/schemas/LightWikiPage'
        wikiPageId:
          type: integer
          format: int64
        contentForVirtualObj:
          $ref: '#/components/schemas/LightContent'
        contentForVirtualObjId:
          type: integer
          format: int64
        stat:
          $ref: '#/components/schemas/LightStat'
        contentGroupIds:
          type: array
          items:
            type: integer
            format: int64
        id:
          type: integer
          format: int64
        name:
          type: string
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        type:
          $ref: '#/components/schemas/ContentType'
        typeId:
          type: integer
          format: int64
        groupIds:
          type: array
          items:
            type: integer
            format: int64
        objectTypeEnum:
          type: string
          enum:
            - GROUP
            - USER
            - COURSE
            - STAT
            - EDU_PACK
            - PATH
            - CATALOG
            - PROGRAM
            - LESSON
            - FOLDER
            - TEST
            - SURVEY
            - SURVEY_ROOT
            - SURVEY_CHILD
            - FILE
            - EDU_EVENT
            - NOTIFICATION
            - DIRECT_ASSIGNATION
            - SUPLEMENTARY_CATALOG
            - MULTI_DIRECT_ASSIGNATION
            - WIKI_PAGE
            - TASK
            - PULSE_CHECK
            - PRE_TEST
            - POST_TEST
            - EXTERNAL
    LightDocTappCustomFieldValue:
      type: object
      properties:
        id:
          type: integer
          format: int64
        customField:
          $ref: '#/components/schemas/AbstractCustomField'
        documentId:
          type: integer
          format: int64
        document:
          $ref: '#/components/schemas/LightDocument'
        customFieldValue:
          type: string
        customFieldDateValue:
          type: string
          format: date-time
        orderValue:
          type: integer
          format: int32
        valueIdentifier:
          type: string
        valueAsLong:
          type: integer
          format: int64
        valueAsDouble:
          type: number
          format: double
        valueAsDate:
          type: string
          format: date-time
        valueAsObject:
          type: object
        value:
          type: string
    LightDocument:
      type: object
      properties:
        id:
          type: integer
          format: int64
        participants:
          type: array
          items:
            $ref: '#/components/schemas/LightUser'
        name:
          type: string
        budgetPeriod:
          $ref: '#/components/schemas/LightBudgetPeriod'
        current:
          type: boolean
        appUser:
          $ref: '#/components/schemas/LightUser'
        customFieldsValue:
          type: array
          items:
            $ref: '#/components/schemas/LightDocTappCustomFieldValue'
        author:
          $ref: '#/components/schemas/LightUser'
        creationDate:
          type: string
          format: date-time
        modifiedBy:
          $ref: '#/components/schemas/LightUser'
        modifyDate:
          type: string
          format: date-time
        workflow:
          $ref: '#/components/schemas/LightDocumentWorkflow'
        parentId:
          type: integer
          format: int64
        assignedContent:
          $ref: '#/components/schemas/LightContent'
        documentType:
          $ref: '#/components/schemas/DocumentType'
        lightContents:
          type: array
          items:
            $ref: '#/components/schemas/LightContent'
        participantsCount:
          type: integer
          format: int32
    LightDocumentWorkflow:
      type: object
      properties:
        id:
          type: integer
          format: int64
        status:
          type: string
          enum:
            - IN_PROGRESS
            - PRE_ACCEPTED
            - ACCEPTED
            - REJECTED
            - WITHDRAWN
        actualUser:
          $ref: '#/components/schemas/LightUser'
        steps:
          type: array
          items:
            $ref: '#/components/schemas/LightWorkflowStep'
        document:
          $ref: '#/components/schemas/LightDocument'
        actualWorkflow:
          $ref: '#/components/schemas/LightWorkflowStep'
        reasonUndo:
          type: string
        rejectReason:
          type: string
    LightEduEvent:
      type: object
      properties:
        id:
          type: integer
          format: int64
        eventType:
          type: string
          enum:
            - PLAIN
            - TASK_CREATE
            - PULSE_CHECK
    LightEduPackContent:
      type: object
      properties:
        embeddedId:
          $ref: '#/components/schemas/EduPackContentPk'
        content:
          $ref: '#/components/schemas/LightContent'
        eduPack:
          $ref: '#/components/schemas/SimpleEduPack'
        trainerEmail:
          type: string
        ntfEndDays:
          type: integer
          format: int64
        ntfEndDays2:
          type: integer
          format: int64
        ntfCompleted:
          type: boolean
        ntfNotCompleted:
          type: boolean
        supNtfCompleted:
          type: boolean
        supNtfNotCompleted:
          type: boolean
        ntfNewCycle:
          type: boolean
        baseCourseInRepetitivePath:
          type: boolean
        cyclicLearning:
          type: boolean
        order:
          type: integer
          format: int32
        prereq:
          type: string
        repetitiveStartValue:
          type: integer
          format: int32
        repetitiveStartUnit:
          type: string
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - WEEKS
            - HOURS
        repetitiveStartTime:
          type: integer
          format: int64
        repetitiveEndValue:
          type: integer
          format: int32
        repetitiveEndUnit:
          type: string
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - WEEKS
            - HOURS
        repetitiveEndTime:
          type: integer
          format: int64
        scheduledTimeSpan:
          type: number
          format: float
        scheduledDate:
          type: integer
          format: int64
        resetBaseCourseAfterFail:
          type: boolean
        optional:
          type: boolean
        elementIncludedInPath:
          type: boolean
        ntfContentAccess:
          type: boolean
        timeFrom:
          $ref: '#/components/schemas/EduPackContentTimeRestriction'
        timeTo:
          $ref: '#/components/schemas/EduPackContentTimeRestriction'
        id:
          $ref: '#/components/schemas/EduPackContentPk'
        scheduledDateAsDate:
          type: string
          format: date-time
    LightGroup:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        groupType:
          type: string
          enum:
            - COMMON
            - USER
            - COURSE
            - STAT
            - PATH
            - RELATION_HIDDEN
            - BUDGET_GROUP
        orgChartEnabled:
          type: boolean
        orgChartManuallySelected:
          type: boolean
    LightStat:
      type: object
      properties:
        id:
          type: integer
          format: int64
        needApproval:
          type: boolean
        adminEnroll:
          type: boolean
        studentEnroll:
          type: boolean
        studentUnenroll:
          type: boolean
        adminNeeds:
          type: boolean
        studentNeeds:
          type: boolean
        wikiEnabled:
          type: boolean
        cost:
          type: number
        content:
          $ref: '#/components/schemas/LightContent'
        budgetGroup:
          $ref: '#/components/schemas/LightGroup'
        customFields:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        coinCostEnabled:
          type: boolean
        coinCost:
          type: integer
          format: int32
        costPerUser:
          type: boolean
        userEnrollWithNeed:
          type: boolean
        adminEnrollUserWithNeed:
          type: boolean
        reasonRequiredForRejection:
          type: boolean
    LightTerm:
      type: object
      properties:
        id:
          type: integer
          format: int64
        location:
          type: string
        startDate:
          type: integer
          format: int64
        endDate:
          type: integer
          format: int64
        content:
          $ref: '#/components/schemas/LightContent'
        basketsInfo:
          type: string
        basketsSender:
          $ref: '#/components/schemas/LightUser'
        rowStatus:
          type: integer
          format: int32
        cancelled:
          type: boolean
        city:
          type: string
        surveyExtMaxScore:
          type: integer
          format: int64
        surveyExtScores:
          type: string
        learningHours:
          type: number
          format: double
        userLimit:
          type: integer
          format: int64
        ntfChange:
          type: boolean
        info:
          type: string
        extTrainer:
          type: string
        infoTranslation:
          $ref: '#/components/schemas/Translation'
        trainers:
          type: array
          items:
            $ref: '#/components/schemas/LightUser'
        termType:
          $ref: '#/components/schemas/TrainingTermType'
        prePostTestDetails:
          $ref: '#/components/schemas/PrePostTestDetails'
        organization:
          $ref: '#/components/schemas/LightGroup'
        postTrainingNotes:
          type: string
        enrolmentEnd:
          type: string
          format: date-time
        enrolmentStart:
          type: string
          format: date-time
        minUserNumber:
          type: integer
          format: int32
        termEndTitle:
          type: string
        termTitle:
          type: string
        termStartTitle:
          type: string
    LightUser:
      required:
        - activeValue
        - archived
      type: object
      properties:
        id:
          type: integer
          format: int64
        loginName:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        position:
          type: string
        rowStatus:
          type: string
          enum:
            - ARCHIVED
            - AVAILABLE
            - HIDDEN
            - DELETED
        avatarExt:
          type: string
        active:
          type: boolean
        extUserId:
          type: string
        email:
          type: string
        birthDate:
          type: integer
          format: int64
        birthPlace:
          type: string
        age:
          type: integer
          format: int32
        allowDataUse:
          type: integer
          format: int32
        allowDataDate:
          type: integer
          format: int64
        denyDataDate:
          type: integer
          format: int64
        street:
          type: string
        streetNumber:
          type: string
        city:
          type: string
        postalCode:
          type: string
        country:
          type: string
        phone1:
          type: string
        phone2:
          type: string
        room:
          type: string
        employmentDate:
          type: integer
          format: int64
        terminationDate:
          type: integer
          format: int64
        company:
          type: string
        longAbsence:
          type: boolean
        userAvatarUrl:
          type: string
        langId:
          type: integer
          format: int64
        replyEmail:
          type: string
        description:
          type: string
        forceChangePassword:
          type: boolean
        supervisorRelation:
          $ref: '#/components/schemas/LightUserSupervisorRelation'
        defaultSupervisorRelations:
          type: array
          items:
            $ref: '#/components/schemas/UserFullRelations'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/LightGroup'
        userCustomFields:
          type: array
          items:
            $ref: '#/components/schemas/UserCustomFieldValue'
        userRelations:
          type: array
          items:
            $ref: '#/components/schemas/LightUserRelation'
        coinBalance:
          type: integer
          format: int32
        user:
          $ref: '#/components/schemas/LightUser'
        groupIds:
          type: array
          items:
            type: integer
            format: int64
        visibleGroups:
          type: string
        external:
          type: boolean
        fullName:
          type: string
        archived:
          type: boolean
        avatarExtension:
          type: string
        activeValue:
          type: boolean
        avatarExtEnum:
          type: string
          enum:
            - JPG
            - JPEG
            - PNG
            - GIF
            - NONE
        fullNameWithLogin:
          type: string
        fullNameOrLogin:
          type: string
        notNullFullNameOrLogin:
          type: string
    LightUserRelation:
      type: object
      properties:
        id:
          type: integer
          format: int64
        type:
          type: string
          enum:
            - SUPERVISOR
            - DYNAMIC_ROLE
        user:
          $ref: '#/components/schemas/LightUser'
        userId:
          type: integer
          format: int64
        relatedUser:
          $ref: '#/components/schemas/LightUser'
        relatedUserId:
          type: integer
          format: int64
        relationType:
          $ref: '#/components/schemas/UserRelationType'
    LightUserSupervisorRelation:
      type: object
      properties:
        id:
          type: integer
          format: int64
        type:
          type: string
          enum:
            - SUPERVISOR
            - DYNAMIC_ROLE
        user:
          $ref: '#/components/schemas/LightUser'
        userId:
          type: integer
          format: int64
        relatedUser:
          $ref: '#/components/schemas/LightUser'
        relatedUserId:
          type: integer
          format: int64
        relationType:
          $ref: '#/components/schemas/UserRelationType'
    LightWikiPage:
      type: object
      properties:
        id:
          type: integer
          format: int64
        pageUrl:
          type: string
        pagePath:
          type: string
        type:
          type: string
          enum:
            - XWIKI
            - KNOWLEDGE_BASE
    LightWorkflowStep:
      type: object
      properties:
        id:
          type: integer
          format: int64
        user:
          $ref: '#/components/schemas/LightUser'
        status:
          type: string
          enum:
            - WAITING
            - IN_PROGRESS
            - ACCEPTED
            - REJECTED
            - CREATED
        statusTime:
          type: string
          format: date-time
        stepOrder:
          type: integer
          format: int32
        workflow:
          $ref: '#/components/schemas/LightDocumentWorkflow'
        stepName:
          type: string
        stepDefinition:
          $ref: '#/components/schemas/LightWorkflowStepDefinition'
        modifiedBy:
          $ref: '#/components/schemas/LightUser'
        order:
          type: integer
          format: int32
        mergedStepName:
          type: string
    LightWorkflowStepDefinition:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        workflowStepOrder:
          type: integer
          format: int32
        stepType:
          type: string
          enum:
            - USER_IN_RELATION
            - CUSTOM_FIELD
            - USER_ID
            - FILTERED_USER
            - DATE_AWAIT
            - PATH_ELEMENTS
            - SURVEY_ASSIGNATION
            - WAITING_FOR_FIELD_VALUES
            - EXTERNAL_COMMUNICATION
            - TERM_APPLICATION
            - GENERATE_COST
        externalMessageName:
          type: string
        order:
          type: integer
          format: int32
        automaticStep:
          type: boolean
    Notification:
      type: object
      properties:
        notificationId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        author:
          type: string
        creationDate:
          type: string
          format: date-time
        rowStatus:
          type: string
          enum:
            - ARCHIVED
            - AVAILABLE
            - HIDDEN
            - DELETED
        visible:
          type: boolean
        identifier:
          type: integer
          format: int64
        templates:
          type: array
          items:
            $ref: '#/components/schemas/NotificationTemplate'
    NotificationChannel:
      type: object
      properties:
        notificationChannelId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        identifier:
          type: integer
          format: int64
    NotificationEventType:
      type: object
      properties:
        id:
          type: integer
          format: int64
    NotificationFormat:
      type: object
      properties:
        notificationFormatId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        identifier:
          type: integer
          format: int64
    NotificationTemplate:
      type: object
      properties:
        notificationTemplateId:
          type: integer
          format: int64
        content:
          type: string
        title:
          type: string
        channel:
          $ref: '#/components/schemas/NotificationChannel'
        format:
          $ref: '#/components/schemas/NotificationFormat'
        notification:
          $ref: '#/components/schemas/Notification'
        identifier:
          type: integer
          format: int64
    ObjectPeriodConfig:
      type: object
      properties:
        id:
          type: integer
          format: int64
        expirePeriod:
          type: integer
          format: int64
        expirePeriodUnit:
          type: string
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - WEEKS
            - HOURS
        preExpireAccess:
          type: integer
          format: int64
        preExpireAccessUnit:
          type: string
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - WEEKS
            - HOURS
        notifyBeforeExpire:
          type: integer
          format: int64
    PairLongLong:
      type: object
      properties:
        first:
          type: integer
          format: int64
        second:
          type: integer
          format: int64
    Palette:
      type: object
      properties:
        paletteColors:
          type: array
          items:
            $ref: '#/components/schemas/PaletteColor'
        id:
          type: integer
          format: int64
        name:
          type: string
        order:
          type: integer
          format: int32
    PaletteColor:
      type: object
      properties:
        id:
          type: integer
          format: int64
        color:
          type: string
        order:
          type: integer
          format: int32
        palette:
          $ref: '#/components/schemas/Palette'
    PositionProfileSkillDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - COMPETENCE_SOFT
            - COMPETENCE_HARD
            - BEHAVIOR
        skillsProfileSkill:
          $ref: '#/components/schemas/SkillsProfileSkill'
        behavior:
          $ref: '#/components/schemas/SkillProfileSkillBehaviorValue'
        skillType:
          $ref: '#/components/schemas/SkillType'
        levelName:
          type: string
        level:
          $ref: '#/components/schemas/SkillLevel'
        evaluatorLevel:
          $ref: '#/components/schemas/SkillLevel'
        selfLevel:
          $ref: '#/components/schemas/SkillLevel'
        weighting:
          type: number
          format: double
        identifier:
          type: string
        skillProfileSkill:
          $ref: '#/components/schemas/SkillsProfileSkill'
        getlevelNumber:
          type: integer
          format: int32
        sprofileSkill:
          $ref: '#/components/schemas/SkillsProfileSkill'
        name:
          type: string
    PrePostTestDetails:
      type: object
      properties:
        relObjId:
          type: integer
          format: int64
        availablePre:
          type: integer
          format: int64
        completedPre:
          type: integer
          format: int64
        availablePost:
          type: integer
          format: int64
        completedPost:
          type: integer
          format: int64
    PrePostTestResult:
      type: object
      properties:
        preTestResult:
          $ref: '#/components/schemas/PrePostTestUserResultDTO'
        postTestResult:
          $ref: '#/components/schemas/PrePostTestUserResultDTO'
        knowledgeIncrease:
          type: number
          format: double
    PrePostTestUserResultDTO:
      type: object
      properties:
        relObjId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        content:
          $ref: '#/components/schemas/SimpleContent'
        status:
          type: string
          enum:
            - NOT_ATTEMPTED
            - INCOMPLETE
            - COMPLETED
            - BROWSED
            - FAILED
            - PASSED
        statusDate:
          type: string
          format: date-time
        score:
          type: number
          format: double
        relObjIdUserIdPair:
          $ref: '#/components/schemas/PairLongLong'
    Priv:
      type: object
      properties:
        privId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        availableForRelation:
          type: boolean
        source:
          type: integer
          format: int32
        privTp:
          type: integer
          format: int64
        identifier:
          type: integer
          format: int64
    ResultExpire:
      type: object
      properties:
        id:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        studentResult:
          $ref: '#/components/schemas/SimpleStudentResult'
        contentId:
          type: integer
          format: int64
        eduPackId:
          type: integer
          format: int64
        termId:
          type: integer
          format: int64
        expireDate:
          type: string
          format: date-time
        expireNotifyDate:
          type: string
          format: date-time
        expireNotificationSent:
          type: boolean
        preExpireAccess:
          type: string
          format: date-time
        preAccessNotificationSent:
          type: boolean
        historical:
          type: boolean
        identifier:
          type: integer
          format: int64
    Review:
      required:
        - description
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        survey:
          $ref: '#/components/schemas/Survey'
        reviewUsers:
          type: array
          items:
            $ref: '#/components/schemas/ReviewUser'
        rowStatus:
          type: integer
          format: int32
        description:
          type: string
        published:
          type: boolean
        creationDate:
          type: string
          format: date-time
        modifyDate:
          type: string
          format: date-time
        createdBy:
          $ref: '#/components/schemas/User'
        modifiedBy:
          $ref: '#/components/schemas/User'
        notifyBeforeExpire:
          type: integer
          format: int64
        selfReviewOptional:
          type: boolean
        selfAccept:
          type: boolean
        reviewRole:
          type: array
          items:
            $ref: '#/components/schemas/ReviewRole'
        isRewriteSkills:
          type: boolean
        type:
          type: string
          enum:
            - REVIEW_90
            - REVIEW_180
        countUserReview:
          type: integer
          format: int32
        selfStartDate:
          type: string
          format: date-time
        selfEndDate:
          type: string
          format: date-time
        evaluatorStartDate:
          type: string
          format: date-time
        evaluatorEndDate:
          type: string
          format: date-time
        countCompleted:
          type: integer
          format: int32
        countInCompleted:
          type: integer
          format: int32
        countNotAtempted:
          type: integer
          format: int32
        numberComplete:
          type: integer
          format: int32
        evaluatorAnswersAccess:
          type: string
          enum:
            - EVALUATOR_COMPLETED
            - EVALUATOR_ACCEPTED
        review:
          $ref: '#/components/schemas/Review'
    ReviewMember:
      type: object
      properties:
        id:
          type: integer
          format: int64
        role:
          $ref: '#/components/schemas/ReviewRole'
        member:
          $ref: '#/components/schemas/User'
        reviewUser:
          $ref: '#/components/schemas/ReviewUser'
        status:
          type: string
          enum:
            - NOT_ATEMPTED
            - INCOMPLETE
            - COMPLETED
        reviewCompleteTime:
          type: string
          format: date-time
        reviewAcceptanceTime:
          type: string
          format: date-time
        reviewAcceptance:
          type: boolean
        rejectReason:
          type: string
        elementRatings:
          type: array
          items:
            $ref: '#/components/schemas/SurveyElementRating'
    ReviewRole:
      type: object
      properties:
        id:
          type: integer
          format: int64
        review:
          $ref: '#/components/schemas/Review'
        name:
          type: string
        starDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
    ReviewUser:
      type: object
      properties:
        id:
          type: integer
          format: int64
        review:
          $ref: '#/components/schemas/Review'
        reviewId:
          type: integer
          format: int64
        user:
          $ref: '#/components/schemas/User'
        status:
          type: string
          enum:
            - NOT_ATEMPTED
            - INCOMPLETE
            - COMPLETED
        memberSelf:
          $ref: '#/components/schemas/ReviewMember'
        memberEvaluator:
          $ref: '#/components/schemas/ReviewMember'
        members:
          type: array
          items:
            $ref: '#/components/schemas/ReviewMember'
        userStartTime:
          type: string
          format: date-time
        progress:
          type: integer
          format: int32
        stepProgressStatus:
          type: string
        reviewAcceptanceTime:
          type: string
          format: date-time
        reviewAcceptance:
          type: boolean
        rejectReason:
          type: string
        skillsRewritingTime:
          type: string
          format: date-time
        notRewritedSkills:
          type: string
    SimpleAccessTime:
      type: object
      properties:
        id:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
        dateFrom:
          type: integer
          format: int64
        dateTo:
          type: integer
          format: int64
        dayList:
          type: string
    SimpleContent:
      required:
        - description
        - name
      type: object
      properties:
        rootId:
          type: integer
          format: int64
        root:
          $ref: '#/components/schemas/SimpleContent'
        rowStatus:
          type: integer
          format: int32
        description:
          type: string
        descriptionTranslation:
          $ref: '#/components/schemas/Translation'
        developerId:
          type: string
        published:
          type: boolean
        category:
          type: string
        file:
          $ref: '#/components/schemas/EduFile'
        eduEvent:
          $ref: '#/components/schemas/EduEvent'
        contentGroups:
          type: array
          items:
            $ref: '#/components/schemas/ContentGroup'
        stat:
          $ref: '#/components/schemas/Stat'
        survey:
          $ref: '#/components/schemas/Survey'
        test:
          $ref: '#/components/schemas/Test'
        creationDate:
          type: string
          format: date-time
        modifyDate:
          type: string
          format: date-time
        createdBy:
          $ref: '#/components/schemas/User'
        modifiedBy:
          $ref: '#/components/schemas/User'
        course:
          $ref: '#/components/schemas/Course'
        parent:
          $ref: '#/components/schemas/SimpleContent'
        lesson:
          $ref: '#/components/schemas/Lesson'
        folderId:
          type: integer
          format: int64
        contentOrder:
          type: integer
          format: int64
        accessTime:
          $ref: '#/components/schemas/AccessTime'
        categoryObject:
          $ref: '#/components/schemas/Category'
        wikiPage:
          $ref: '#/components/schemas/WikiPage'
        wikiPageId:
          type: integer
          format: int64
          writeOnly: true
        term:
          $ref: '#/components/schemas/Term'
        contentForVirtualObj:
          $ref: '#/components/schemas/SimpleContent'
        id:
          type: integer
          format: int64
        name:
          type: string
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        type:
          $ref: '#/components/schemas/ContentType'
        typeId:
          type: integer
          format: int64
        groupIds:
          type: array
          items:
            type: integer
            format: int64
        contentGroupIds:
          type: array
          items:
            type: integer
            format: int64
        objectTypeEnum:
          type: string
          enum:
            - GROUP
            - USER
            - COURSE
            - STAT
            - EDU_PACK
            - PATH
            - CATALOG
            - PROGRAM
            - LESSON
            - FOLDER
            - TEST
            - SURVEY
            - SURVEY_ROOT
            - SURVEY_CHILD
            - FILE
            - EDU_EVENT
            - NOTIFICATION
            - DIRECT_ASSIGNATION
            - SUPLEMENTARY_CATALOG
            - MULTI_DIRECT_ASSIGNATION
            - WIKI_PAGE
            - TASK
            - PULSE_CHECK
            - PRE_TEST
            - POST_TEST
            - EXTERNAL
    SimpleEduPack:
      type: object
      properties:
        name:
          type: string
        type:
          type: integer
          format: int64
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        id:
          type: integer
          format: int64
        category:
          type: string
        manualApp:
          type: boolean
        appRejectReasonRequired:
          type: boolean
        appRemoveBlock:
          type: boolean
        groups:
          type: array
          items:
            $ref: '#/components/schemas/LightGroup'
        groupIds:
          type: array
          items:
            type: integer
            format: int64
        eduPackType:
          type: string
          enum:
            - GROUP
            - USER
            - COURSE
            - STAT
            - EDU_PACK
            - PATH
            - CATALOG
            - PROGRAM
            - LESSON
            - FOLDER
            - TEST
            - SURVEY
            - SURVEY_ROOT
            - SURVEY_CHILD
            - FILE
            - EDU_EVENT
            - NOTIFICATION
            - DIRECT_ASSIGNATION
            - SUPLEMENTARY_CATALOG
            - MULTI_DIRECT_ASSIGNATION
            - WIKI_PAGE
            - TASK
            - PULSE_CHECK
            - PRE_TEST
            - POST_TEST
            - EXTERNAL
    SimpleStudentResult:
      required:
        - current
      type: object
      properties:
        id:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
        eduPackId:
          type: integer
          format: int64
        termId:
          type: integer
          format: int64
        trackingEduPackId:
          type: integer
          format: int64
        status:
          type: string
          enum:
            - NOT_ATTEMPTED
            - INCOMPLETE
            - COMPLETED
            - BROWSED
            - FAILED
            - PASSED
        statusDate:
          type: string
          format: date-time
        score:
          type: number
          format: double
        historical:
          type: boolean
        spentTime:
          type: integer
          format: int32
        clientSpentTime:
          type: integer
          format: int32
        modifyDate:
          type: string
          format: date-time
        modifiedById:
          type: integer
          format: int64
        visitCount:
          type: integer
          format: int32
        periodNumber:
          type: integer
          format: int32
        current:
          type: boolean
        runContentTime:
          type: string
          format: date-time
        passDate:
          type: string
          format: date-time
        objectRequired:
          type: boolean
        approachNumber:
          type: integer
          format: int32
        resultExpire:
          $ref: '#/components/schemas/ResultExpire'
        firstRunContentTime:
          type: string
          format: date-time
    SimpleSurveyActionSelection:
      type: object
      properties:
        id:
          type: integer
          format: int64
        term:
          $ref: '#/components/schemas/SimpleTerm'
        stat:
          $ref: '#/components/schemas/LightContent'
        action:
          $ref: '#/components/schemas/SurveyAction'
        selectionObjectName:
          type: string
    SimpleTerm:
      type: object
      properties:
        id:
          type: integer
          format: int64
        content:
          $ref: '#/components/schemas/LightContent'
        startDate:
          type: integer
          format: int64
        endDate:
          type: integer
          format: int64
        termTitle:
          type: string
    SimpleUserContentAssignForApi:
      type: object
      properties:
        contentAssignPK:
          $ref: '#/components/schemas/UserContentAssignPK'
        userId:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
        eduPackId:
          type: integer
          format: int64
        assignationTime:
          type: integer
          format: int64
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        eduPack:
          $ref: '#/components/schemas/EduPack'
    SkillBehavior:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        skillType:
          $ref: '#/components/schemas/SkillType'
        behaviorLevels:
          type: array
          items:
            $ref: '#/components/schemas/BehaviorLevel'
        defaultLevelVisible:
          type: boolean
        behaviorOrder:
          type: integer
          format: int32
        orginalBehavior:
          type: integer
          format: int64
        order:
          type: integer
          format: int32
    SkillLevel:
      required:
        - name
      type: object
      properties:
        skillLevelId:
          type: integer
          format: int64
        name:
          type: string
        level:
          type: integer
          format: int32
        type:
          type: string
          enum:
            - COMPETENCE
            - BEHAVIOUR
        description:
          type: string
        identifier:
          type: integer
          format: int64
        order:
          type: integer
          format: int32
        id:
          type: integer
          format: int64
        levelNumber:
          type: integer
          format: int32
    SkillProfileSkillBehaviorValue:
      type: object
      properties:
        id:
          type: integer
          format: int64
        type:
          type: string
          enum:
            - SKILL_PROFILE_SKILL
            - USER_SKILL
        behaviorLevel:
          $ref: '#/components/schemas/BehaviorLevel'
        skillBehavior:
          $ref: '#/components/schemas/SkillBehavior'
        skillsProfileSkill:
          $ref: '#/components/schemas/SkillsProfileSkill'
    SkillType:
      type: object
      properties:
        skillId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        type:
          type: string
          enum:
            - SOFT
            - HARD
        behaviors:
          type: array
          items:
            $ref: '#/components/schemas/SkillBehavior'
        competenceLevels:
          type: array
          items:
            $ref: '#/components/schemas/CompetenceLevel'
        orginalSkillTypeId:
          type: integer
          format: int64
        evaluationType:
          type: string
          enum:
            - MANUAL
            - AVERAGE
        defaultLevelVisible:
          type: boolean
        identifier:
          type: integer
          format: int64
        behaviorNumber:
          type: integer
          format: int32
    SkillsProfile:
      type: object
      properties:
        profileId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        profileSkills:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/SkillsProfileSkill'
        userSkillsProfiles:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/UserSkillsProfile'
        orginalProfile:
          type: integer
          format: int64
        enableWeighting:
          type: boolean
        identifier:
          type: integer
          format: int64
        userSkillsProfilesNumber:
          type: integer
          format: int32
        profileSkillsNumber:
          type: integer
          format: int32
    SkillsProfileSkill:
      type: object
      properties:
        skillLevel:
          $ref: '#/components/schemas/CompetenceLevel'
        skillType:
          $ref: '#/components/schemas/SkillType'
        skillsProfileSkillId:
          type: integer
          format: int64
        skillsProfile:
          $ref: '#/components/schemas/SkillsProfile'
        skillId:
          type: integer
          format: int64
        behaviorsLevels:
          type: array
          items:
            $ref: '#/components/schemas/SkillProfileSkillBehaviorValue'
        weighting:
          type: number
          format: double
        identifier:
          type: integer
          format: int64
      writeOnly: true
    Stat:
      type: object
      properties:
        id:
          type: integer
          format: int64
        content:
          $ref: '#/components/schemas/SimpleContent'
        cost:
          type: number
        needApproval:
          type: boolean
        notifyApproval:
          type: boolean
        forum:
          type: boolean
        adminEnroll:
          type: boolean
        studentEnroll:
          type: boolean
        studentNeeds:
          type: boolean
        adminNeeds:
          type: boolean
        notifyNewTerm:
          type: boolean
        contentServer:
          $ref: '#/components/schemas/ContentServer'
        repeatable:
          type: boolean
        certificateEnabed:
          type: boolean
        chatEnabled:
          type: boolean
        studentUnenroll:
          type: boolean
        wikiEnabled:
          type: boolean
        studentCert:
          $ref: '#/components/schemas/Certificate'
        adminCertId:
          type: integer
          format: int64
        materials:
          type: array
          items:
            $ref: '#/components/schemas/TrainingMaterial'
        rejectAppReasonRequired:
          type: boolean
        studentSeeParticipants:
          type: boolean
        budgetGroup:
          $ref: '#/components/schemas/Group'
        ntfSupervisorAboutUserTraining:
          type: boolean
        notifyYourSuperiors:
          type: boolean
        prePostTestConfig:
          $ref: '#/components/schemas/StatPrePostTestConfig'
        notifyPreTestUnfOrFail:
          type: boolean
        notifyPreTestUnfOrFailDays:
          type: integer
          format: int64
        notifyUnrealizedPostTest:
          type: boolean
        notifyUnrealizedPostTestDays:
          type: integer
          format: int64
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
        suggestReplacement:
          type: boolean
        createNeedForSubs:
          type: boolean
        automaticResult:
          type: boolean
        customFields:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        periodConfig:
          $ref: '#/components/schemas/ObjectPeriodConfig'
        coinCostEnabled:
          type: boolean
        coinCost:
          type: integer
          format: int32
        costPerUser:
          type: boolean
        userEnrollWithNeed:
          type: boolean
        adminEnrollUserWithNeed:
          type: boolean
        customFieldsValue:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        periodic:
          type: boolean
    StatPrePostTestConfig:
      type: object
      properties:
        id:
          type: integer
          format: int64
        objectId:
          type: integer
          format: int64
        objectType:
          type: string
          enum:
            - STAT
        isPre:
          type: boolean
        preTest:
          $ref: '#/components/schemas/Test'
        preDaysBefore:
          type: integer
          format: int64
        isPost:
          type: boolean
        isSamePrePost:
          type: boolean
        postTest:
          $ref: '#/components/schemas/Test'
        rewritePostResult:
          type: boolean
        stat:
          $ref: '#/components/schemas/Stat'
    StatTermEnrollmentDateCheckImpl:
      type: object
      properties:
        enrollmentStartDateInPast:
          type: boolean
        enrollmentEndDateInFuture:
          type: boolean
    Survey:
      type: object
      properties:
        surveyId:
          type: integer
          format: int64
        author:
          type: string
        summaryText:
          type: string
        summaryTextTranslation:
          $ref: '#/components/schemas/Translation'
        summaryTextTranslationId:
          type: integer
          format: int64
        estimatedTime:
          type: integer
          format: int32
        content:
          $ref: '#/components/schemas/SimpleContent'
        review:
          $ref: '#/components/schemas/Review'
    SurveyAction:
      type: object
      properties:
        actionId:
          type: integer
          format: int64
        type:
          type: string
          enum:
            - USER
            - STAT_TERM
            - COURSE
            - PATH
        name:
          type: string
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        creationDate:
          type: integer
          format: int64
        content:
          $ref: '#/components/schemas/SimpleContent'
        rowStatus:
          type: integer
          format: int32
        author:
          type: string
        accessType:
          type: string
          enum:
            - PRE
            - POST
            - PRE_POST
            - IMMEDIATE
        startTime:
          type: integer
          format: int64
        endTime:
          type: integer
          format: int64
        anonymous:
          type: boolean
        anonymousKey:
          type: string
        contexts:
          type: array
          items:
            $ref: '#/components/schemas/SurveyActionContext'
        actionSelection:
          type: array
          items:
            $ref: '#/components/schemas/SimpleSurveyActionSelection'
        anonymousCookieSave:
          type: boolean
        createdBy:
          $ref: '#/components/schemas/User'
        modifiedBy:
          $ref: '#/components/schemas/User'
        modifyDate:
          type: integer
          format: int64
        progressVisible:
          type: boolean
        numerationVisible:
          type: boolean
        questionsCountVisible:
          type: boolean
        notifyAfterAssigne:
          type: integer
          format: int64
        notRemovable:
          type: boolean
        objectNames:
          type: string
    SurveyActionContext:
      type: object
      properties:
        contextId:
          type: integer
          format: int64
        action:
          $ref: '#/components/schemas/SurveyAction'
        type:
          type: string
          enum:
            - USER
            - GROUP
            - STAT_TERM
            - STAT
            - COURSE
            - PATH
            - ANONYMOUS
            - PROGRAM
        accessType:
          type: string
          enum:
            - PRE
            - POST
            - PRE_POST
            - IMMEDIATE
        term:
          $ref: '#/components/schemas/Term'
        courseContent:
          $ref: '#/components/schemas/SimpleContent'
        eduPack:
          $ref: '#/components/schemas/EduPack'
        contextObjectName:
          type: string
    SurveyAnonymousResultUnique:
      type: object
      properties:
        contextId:
          type: integer
          format: int64
        anonymousUserId:
          type: string
    SurveyElement:
      type: object
      properties:
        elementId:
          type: integer
          format: int64
        survey:
          $ref: '#/components/schemas/Survey'
        type:
          type: string
          enum:
            - PAGE
            - TEXT
            - QUESTION
        order:
          type: integer
          format: int32
        page:
          $ref: '#/components/schemas/SurveyElement'
        queryType:
          type: string
          enum:
            - SCALE_QUERY
            - SINGLE_CHOICE_QUERY
            - OPEN_ANSWER_QUERY
            - GRID_QUERY
            - MULTI_CHOICE_QUERY
            - DROPDOWN_LIST_QUERY
            - TEXT
            - SKILL_LIST_QUERY
            - AUTOMATIC_SKILL
        answerExplanation:
          type: boolean
        parentElement:
          $ref: '#/components/schemas/SurveyElement'
        nameText:
          type: string
        nameTextTranslation:
          $ref: '#/components/schemas/Translation'
        nameTextTranslationId:
          type: integer
          format: int64
        options:
          type: array
          items:
            $ref: '#/components/schemas/SurveyQuestionOption'
        pageElements:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/SurveyElement'
        childElements:
          type: array
          items:
            $ref: '#/components/schemas/SurveyElement'
        required:
          type: boolean
        redirectPage:
          $ref: '#/components/schemas/SurveyRedirect'
        displayMethod:
          type: string
          enum:
            - OPEN_QUESTION_SINGLE_LINE
            - OPEN_QUESTION_TEXT_AREA
        legend:
          type: string
        legendTranslation:
          $ref: '#/components/schemas/Translation'
        legendTranslationId:
          type: integer
          format: int64
        uniqueGridAnswer:
          type: boolean
        visibleForSelf:
          type: boolean
        visibleForEvaluator:
          type: boolean
        alternativeNameText:
          type: string
        skill:
          $ref: '#/components/schemas/SkillType'
        questionIsRating:
          type: boolean
        level:
          type: integer
          format: int32
        pageLastElemetId:
          type: integer
          format: int64
          writeOnly: true
        id:
          type: integer
          format: int64
        pageLastElemet:
          type: boolean
    SurveyElementRating:
      type: object
      properties:
        ratingId:
          type: integer
          format: int64
        surveyElement:
          $ref: '#/components/schemas/SurveyElement'
        creationDate:
          type: string
          format: date-time
        user:
          $ref: '#/components/schemas/User'
        answerExplanation:
          type: string
        answer:
          type: string
        context:
          $ref: '#/components/schemas/SurveyActionContext'
        anonymousUserId:
          type: string
        resultUserUnique:
          $ref: '#/components/schemas/SurveyResultUnique'
        member:
          $ref: '#/components/schemas/ReviewMember'
        elementId:
          type: integer
          format: int64
        elementName:
          type: string
        surveyStudentResultUnique:
          $ref: '#/components/schemas/SurveyAnonymousResultUnique'
    SurveyQuestionOption:
      type: object
      properties:
        surveyQuestionOptionPk:
          $ref: '#/components/schemas/SurveyQuestionOptionPk'
        description:
          type: string
        descriptionTranslation:
          $ref: '#/components/schemas/Translation'
        descriptionTranslationId:
          type: integer
          format: int64
        element:
          $ref: '#/components/schemas/SurveyElement'
        surveyRedirect:
          $ref: '#/components/schemas/SurveyRedirect'
        order:
          type: integer
          format: int32
        id:
          type: integer
          format: int64
    SurveyQuestionOptionPk:
      type: object
      properties:
        elementId:
          type: integer
          format: int64
        scaleLevel:
          type: integer
          format: int32
    SurveyRedirect:
      type: object
      properties:
        redirectId:
          type: integer
          format: int64
        redirectElement:
          $ref: '#/components/schemas/SurveyElement'
    SurveyResultUnique:
      type: object
      properties:
        contextId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
    Term:
      type: object
      properties:
        id:
          type: integer
          format: int64
        content:
          $ref: '#/components/schemas/SimpleContent'
        location:
          type: string
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        city:
          type: string
        street:
          type: string
        info:
          type: string
        infoTranslation:
          $ref: '#/components/schemas/Translation'
        userLimit:
          type: integer
          format: int64
        learningHours:
          type: number
          format: double
        organization:
          $ref: '#/components/schemas/Group'
        extTrainer:
          type: string
        termType:
          $ref: '#/components/schemas/TrainingTermType'
        rowStatus:
          type: integer
          format: int32
        ntfChange:
          type: boolean
        ntfDays:
          type: integer
          format: int64
        ntfDays2:
          type: integer
          format: int64
        cancelled:
          type: boolean
        reserveList:
          type: boolean
        ntfAttendingChange:
          type: boolean
        ntfAtttendingConfirmMail:
          type: string
        surveyExtMaxScore:
          type: integer
          format: int64
        surveyExtScores:
          type: string
        trainers:
          type: array
          items:
            $ref: '#/components/schemas/User'
        trainerEditResultBlock:
          type: boolean
        applications:
          type: array
          items:
            $ref: '#/components/schemas/ContentApp'
        results:
          type: array
          items:
            $ref: '#/components/schemas/TermResult'
        postTrainingNotes:
          type: string
        postTrainingNotesTranslation:
          $ref: '#/components/schemas/Translation'
        trainingCompany:
          $ref: '#/components/schemas/TrainingCompany'
        minUserNumber:
          type: integer
          format: int32
        termCost:
          type: array
          items:
            $ref: '#/components/schemas/TermCost'
        enrolmentEnd:
          type: string
          format: date-time
        enrolmentStart:
          type: string
          format: date-time
        prePostTestDetails:
          $ref: '#/components/schemas/PrePostTestDetails'
        countUsersResolver:
          $ref: '#/components/schemas/TermUsersCountResolver'
        basketsSender:
          $ref: '#/components/schemas/LightUser'
        basketsSendDate:
          type: string
          format: date-time
        basketsInfo:
          type: string
        termDateLocationDtos:
          type: array
          items:
            $ref: '#/components/schemas/TermDateLocationDto'
        listSurveyExtScores:
          type: array
          items:
            type: string
        surveyExtAvgScore:
          type: number
          format: double
        surveyExtTotalScore:
          type: number
          format: double
        surveyExtScoresCount:
          type: integer
          format: int32
        termTitleWithStartTime:
          type: string
        termExactTitle:
          type: string
        calendarTermTitle:
          type: string
        calenadTermSubtitle:
          type: string
        trainersIds:
          type: array
          items:
            type: integer
            format: int64
        newAppCount:
          type: integer
          format: int64
        acceptedAppCount:
          type: integer
          format: int64
        dateStartDate:
          type: string
          format: date-time
        enrollmentStartDate:
          type: string
          format: date-time
        enrollmentEndDate:
          type: string
          format: date-time
        basketsSenderId:
          $ref: '#/components/schemas/LightUser'
        termTitle:
          type: string
        participantsCount:
          type: integer
          format: int32
        statTermEnrollmentDateCheck:
          $ref: '#/components/schemas/StatTermEnrollmentDateCheckImpl'
    TermAppOption:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/TermAppOptionPK'
        user:
          $ref: '#/components/schemas/User'
        content:
          $ref: '#/components/schemas/SimpleContent'
        term:
          $ref: '#/components/schemas/Term'
        termOption:
          $ref: '#/components/schemas/TermOption'
        value:
          type: boolean
    TermAppOptionPK:
      type: object
      properties:
        userId:
          type: integer
          format: int64
        termId:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
        optionId:
          type: integer
          format: int64
    TermCost:
      type: object
      properties:
        costId:
          type: integer
          format: int64
        planedCost:
          type: number
          format: double
        planedCostsCount:
          type: integer
          format: int64
        realCosts:
          type: number
          format: double
        realCostsCount:
          type: integer
          format: int64
        currencyType:
          $ref: '#/components/schemas/CurrencyType'
        costType:
          $ref: '#/components/schemas/CostType'
        term:
          $ref: '#/components/schemas/Term'
        planedCostTotal:
          type: number
          format: double
        realCostTotal:
          type: number
          format: double
    TermDateLocationDto:
      required:
        - endDate
        - startDate
      type: object
      properties:
        id:
          type: integer
          format: int64
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        location:
          type: string
    TermOption:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        active:
          type: boolean
    TermResult:
      required:
        - presence
      type: object
      properties:
        id:
          $ref: '#/components/schemas/TermResultPK'
        user:
          $ref: '#/components/schemas/User'
        userId:
          type: integer
          format: int64
        term:
          $ref: '#/components/schemas/Term'
        termId:
          type: integer
          format: int64
        content:
          $ref: '#/components/schemas/SimpleContent'
        contentId:
          type: integer
          format: int64
        passed:
          type: boolean
        score:
          type: number
          format: float
        presence:
          type: boolean
        resultExpire:
          $ref: '#/components/schemas/ResultExpire'
        note:
          type: string
        objectRequired:
          type: boolean
        statusDate:
          type: integer
          format: int64
        status:
          type: integer
          format: int64
    TermResultPK:
      type: object
      properties:
        userId:
          type: integer
          format: int64
        termId:
          type: integer
          format: int64
    TermUsersCountResolver:
      type: object
      properties:
        newAppCount:
          type: integer
          format: int64
        acceptedAppCount:
          type: integer
          format: int64
        presentedUsersCount:
          type: integer
          format: int64
    Test:
      type: object
      properties:
        id:
          type: integer
          format: int64
        greetingEnabled:
          type: boolean
        greetingText:
          type: string
        greetingTextTranslation:
          $ref: '#/components/schemas/Translation'
        greetingStartText:
          type: string
        greetingStartTextTranslation:
          $ref: '#/components/schemas/Translation'
        completionText:
          type: string
        completionTextTranslation:
          $ref: '#/components/schemas/Translation'
        customSummaryText:
          type: boolean
        completionSuccessText:
          type: string
        completionSuccessTextTranslation:
          $ref: '#/components/schemas/Translation'
        completionFailureText:
          type: string
        completionFailureTextTranslation:
          $ref: '#/components/schemas/Translation'
        summaryEnabled:
          type: boolean
        summaryOnSuccessOnly:
          type: boolean
        summaryContentType:
          type: string
          enum:
            - CATEGORIES
            - CATEGORIES_QUESTIONS
            - CATEGORIES_QUESTIONS_ANSWERS
            - QUESTIONS
            - QUESTIONS_ANSWERS
        summaryQuestionType:
          type: string
          enum:
            - PASSED
            - NOT_PASSED
            - ALL
        summaryAnswerColoring:
          type: boolean
        summaryPrintEnabled:
          type: boolean
        passMinimumThreshold:
          type: integer
          format: int32
        passRequired:
          type: boolean
        attemptsLimit:
          type: integer
          format: int32
        attemptsExceededText:
          type: string
        attemptsExceededTextTranslation:
          $ref: '#/components/schemas/Translation'
        attemptsTimeLimit:
          type: integer
          format: int32
        showCategory:
          type: boolean
        randomQuestionOrder:
          type: string
          enum:
            - RANDOM_IN_CATEGORY
            - RANDOM_IN_TEST
            - ORDERED
        randomAnswer:
          type: boolean
        bestResults:
          type: boolean
        goBackEnabled:
          type: boolean
        content:
          $ref: '#/components/schemas/SimpleContent'
        categories:
          type: array
          items:
            $ref: '#/components/schemas/TestCategory'
        elementsCounter:
          type: integer
          format: int64
        periodConfig:
          $ref: '#/components/schemas/ObjectPeriodConfig'
        studentCertEnabled:
          type: boolean
        studentCertificate:
          $ref: '#/components/schemas/Certificate'
        questionSummaryEnabled:
          type: boolean
        recalculateResultOnEdit:
          type: boolean
        additionalTestVerification:
          type: boolean
        verificationCustomFieldId:
          type: integer
          format: int64
        verificationMessage:
          type: string
        customFields:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        customFieldsValue:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CommonCustomFieldValue'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
        periodic:
          type: boolean
    TestCategory:
      type: object
      properties:
        id:
          type: integer
          format: int64
        test:
          $ref: '#/components/schemas/Test'
        name:
          type: string
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        questionCount:
          type: integer
          format: int32
        order:
          type: integer
          format: int32
        questionPoints:
          type: integer
          format: int32
        answerTime:
          type: integer
          format: int32
        answerTimePointBonus:
          type: integer
          format: int32
        answerTimeBonus:
          type: integer
          format: int32
        visible:
          type: boolean
        categoryElements:
          type: array
          items:
            $ref: '#/components/schemas/AbstractTestElement'
        categoryVisibleQuestionsCount:
          type: integer
          format: int32
        categoryQuestions:
          type: integer
          format: int32
        categoryVisibleQuestions:
          type: array
          items:
            $ref: '#/components/schemas/AbstractTestElement'
    TrainingMaterial:
      type: object
      properties:
        id:
          type: integer
          format: int64
        training:
          $ref: '#/components/schemas/Stat'
        rowStatus:
          type: integer
          format: int32
        fileName:
          type: string
        fileSize:
          type: integer
          format: int64
        description:
          type: string
        url:
          type: string
        contentType:
          type: string
        file:
          type: string
          format: binary
        identifier:
          type: integer
          format: int64
        fileSizeInfo:
          type: string
    TrainingTermType:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        identifier:
          type: integer
          format: int64
    Translation:
      type: object
      properties:
        id:
          type: integer
          format: int64
        translationValue:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/TranslationValue'
        translationIfExist:
          $ref: '#/components/schemas/Translation'
        translation:
          type: boolean
    TranslationValue:
      type: object
      properties:
        id:
          type: integer
          format: int64
        translation:
          $ref: '#/components/schemas/Translation'
        lang:
          $ref: '#/components/schemas/Lang'
        translationValue:
          type: string
        translationObjectType:
          type: string
          enum:
            - FILE
            - COURSE
            - TEST
            - TASK
            - TRAINING
            - PATH
            - PROGRAM
            - CATALOG
            - PULSE_CHECK
            - TERM
            - NONE
    UserCard:
      required:
        - activeValue
        - archived
      type: object
      properties:
        id:
          type: integer
          format: int64
        loginName:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        position:
          type: string
        rowStatus:
          type: string
          enum:
            - ARCHIVED
            - AVAILABLE
            - HIDDEN
            - DELETED
        avatarExt:
          type: string
        active:
          type: boolean
        extUserId:
          type: string
        userAvatarUrl:
          type: string
        external:
          type: boolean
        fullName:
          type: string
        archived:
          type: boolean
        avatarExtension:
          type: string
        activeValue:
          type: boolean
        user:
          $ref: '#/components/schemas/UserIdentity'
        avatarExtEnum:
          type: string
          enum:
            - JPG
            - JPEG
            - PNG
            - GIF
            - NONE
        fullNameWithLogin:
          type: string
        fullNameOrLogin:
          type: string
        notNullFullNameOrLogin:
          type: string
    UserContentAssignPK:
      type: object
      properties:
        userId:
          type: integer
          format: int64
        eduPackId:
          type: integer
          format: int64
        contentId:
          type: integer
          format: int64
    UserCustomField:
      type: object
      properties:
        customFieldId:
          type: integer
          format: int64
        name:
          type: string
        type:
          type: string
          enum:
            - TEXT
            - DATE
            - LIST
            - LABEL
            - RICH_TEXT
            - FLOW_STATUS
            - EDU_PATH_SELECT
            - GENERIC_LIST
            - TRAINING_NAME
            - MODIFIED_BY
            - CREATED_BY
            - BUDGET_PERIOD
            - PARTICIPANT
            - BOOLEAN
            - NUMERIC_FIELD
            - TERM
            - BUDGET_GROUP
            - TRAINING_COMPANY
        validatorType:
          type: string
          enum:
            - PESEL
            - CUSTOM_REGEXP
            - NONE
        regexp:
          type: string
        listValues:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldListValue'
        orderValue:
          type: integer
          format: int32
        requiredField:
          type: boolean
        fieldPrivs:
          type: array
          items:
            $ref: '#/components/schemas/AbstractFieldPriv'
        uniqueIdentifier:
          type: string
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        entityType:
          type: string
          enum:
            - COMMON
            - USER
        objectType:
          type: string
          enum:
            - TRAINING_COMPANY
            - GROUP_BUDGET
            - BUDGET_COST
            - BUDGET_PERIOD
            - TRAINING
            - USER
            - PLANNED_COST
            - REALIZED_COST
            - DOCUMENT
            - COURSE
            - TEST
        content:
          type: string
        unique:
          type: boolean
        modifierUserId:
          type: integer
          format: int64
        modifierDate:
          type: string
          format: date-time
        objectId:
          type: integer
          format: int64
        visible:
          type: boolean
        readOnlyOnDocumentEdit:
          type: boolean
        restrictBudgetGroups:
          $ref: '#/components/schemas/AbstractCustomField'
        autofill:
          type: boolean
        readOnly:
          type: boolean
        defaultValue:
          type: string
        userValues:
          type: array
          items:
            $ref: '#/components/schemas/UserCustomFieldValue'
        hidden:
          type: boolean
        identifier:
          type: integer
          format: int64
        order:
          type: integer
          format: int32
        id:
          type: integer
          format: int64
        uniqueIdentifierWithTag:
          type: string
        uniqueIdentifierTag:
          type: string
        defaultFieldValue:
          type: object
    UserCustomFieldValue:
      type: object
      properties:
        fieldId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
        user:
          $ref: '#/components/schemas/User'
        customField:
          $ref: '#/components/schemas/UserCustomField'
        customFieldId:
          type: integer
          format: int64
        value:
          type: string
        stringOrDateValue:
          type: object
        valueAsDate:
          type: string
          format: date-time
    UserFullRelations:
      type: object
      properties:
        userFullRelationsPK:
          $ref: '#/components/schemas/UserFullRelationsPK'
        relatedUserLoginName:
          type: string
        userId:
          type: integer
          format: int64
        relatedUserId:
          type: integer
          format: int64
    UserFullRelationsPK:
      type: object
      properties:
        userId:
          type: integer
          format: int64
        relatedUserId:
          type: integer
          format: int64
    UserGroup:
      type: object
      properties:
        userGroupId:
          $ref: '#/components/schemas/UserGroupPK'
        user:
          $ref: '#/components/schemas/User'
        userId:
          type: integer
          format: int64
        group:
          $ref: '#/components/schemas/Group'
        admin:
          $ref: '#/components/schemas/User'
        adminLogin:
          type: string
        creationTime:
          type: string
          format: date-time
        orgChartHighlighted:
          type: boolean
    UserGroupPK:
      type: object
      properties:
        groupId:
          type: integer
          format: int64
        userId:
          type: integer
          format: int64
    UserIdentity:
      required:
        - activeValue
        - archived
      type: object
      properties:
        id:
          type: integer
          format: int64
        loginName:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        position:
          type: string
        rowStatus:
          type: string
          enum:
            - ARCHIVED
            - AVAILABLE
            - HIDDEN
            - DELETED
        avatarExt:
          type: string
        active:
          type: boolean
        extUserId:
          type: string
        external:
          type: boolean
        fullName:
          type: string
        archived:
          type: boolean
        avatarExtension:
          type: string
        activeValue:
          type: boolean
        user:
          $ref: '#/components/schemas/UserIdentity'
        avatarExtEnum:
          type: string
          enum:
            - JPG
            - JPEG
            - PNG
            - GIF
            - NONE
        fullNameWithLogin:
          type: string
        fullNameOrLogin:
          type: string
        notNullFullNameOrLogin:
          type: string
    UserRelationType:
      type: object
      properties:
        id:
          type: integer
          format: int64
        type:
          type: string
        description:
          type: string
        isRights:
          type: boolean
        nameTranslation:
          $ref: '#/components/schemas/Translation'
        relationFieldAccessName:
          type: string
    UserSimpleValue:
      type: object
      properties:
        userId:
          type: integer
          format: int64
        extUserId:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        replyTo:
          type: string
        groups:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/GroupValue'
        langId:
          type: integer
          format: int64
        login:
          type: string
        password:
          type: string
        active:
          type: boolean
        reserved:
          type: boolean
        archive:
          type: boolean
        restricted:
          type: boolean
        highlightedUserInGroup:
          type: boolean
        external:
          type: boolean
        newGroupsId:
          type: array
          items:
            type: integer
            format: int64
        groupsIds:
          type: array
          items:
            type: integer
            format: int64
        id:
          type: integer
          format: int64
    UserSkillsProfile:
      type: object
      properties:
        userSkillProfileId:
          type: integer
          format: int64
        user:
          $ref: '#/components/schemas/User'
        skillsProfile:
          $ref: '#/components/schemas/SkillsProfile'
        sb:
          type: array
          items:
            $ref: '#/components/schemas/PositionProfileSkillDto'
        identifier:
          type: object
    WikiPage:
      type: object
      properties:
        id:
          type: integer
          format: int64
        pageUrl:
          type: string
        pagePath:
          type: string
        content:
          $ref: '#/components/schemas/SimpleContent'
        type:
          type: string
          enum:
            - XWIKI
            - KNOWLEDGE_BASE
        deleted:
          type: boolean
        newPage:
          type: boolean
    WorkflowDefinition:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        author:
          $ref: '#/components/schemas/User'
        creationDate:
          type: string
          format: date-time
        modifiedBy:
          $ref: '#/components/schemas/User'
        modifyDate:
          type: string
          format: date-time
        defaultDefinition:
          type: boolean
        type:
          type: string
          enum:
            - DOCUMENT
        stepDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStepDefinition'
        workflowUserDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowUserDefinition'
        documentType:
          $ref: '#/components/schemas/DocumentType'
    WorkflowStepCostConfig:
      required:
        - budgetGroup
        - budgetGroupSelectType
      type: object
      properties:
        id:
          type: integer
          format: int64
        budgetGroupSelectType:
          maxLength: 50
          minLength: 1
          type: string
          enum:
            - CUSTOM_FIELD
            - GROUP_LIST
        workflowStep:
          $ref: '#/components/schemas/WorkflowStepDefinition'
        costCustomField:
          $ref: '#/components/schemas/AbstractCustomField'
        budgetGroup:
          $ref: '#/components/schemas/Group'
        budgetGroupCustomField:
          $ref: '#/components/schemas/AbstractCustomField'
        budgetPeriodCustomField:
          $ref: '#/components/schemas/AbstractCustomField'
        uniqueToken:
          type: integer
          format: int64
          writeOnly: true
    WorkflowStepDefinition:
      type: object
      properties:
        id:
          type: integer
          format: int64
        workflowDefinition:
          $ref: '#/components/schemas/WorkflowDefinition'
        workflowDefinitionId:
          type: integer
          format: int64
        name:
          type: string
        workflowStepOrder:
          type: integer
          format: int32
        stepType:
          type: string
          enum:
            - USER_IN_RELATION
            - CUSTOM_FIELD
            - USER_ID
            - FILTERED_USER
            - DATE_AWAIT
            - PATH_ELEMENTS
            - SURVEY_ASSIGNATION
            - WAITING_FOR_FIELD_VALUES
            - EXTERNAL_COMMUNICATION
            - TERM_APPLICATION
            - GENERATE_COST
        user:
          $ref: '#/components/schemas/User'
        relationType:
          $ref: '#/components/schemas/UserRelationType'
        role:
          $ref: '#/components/schemas/Priv'
        customField:
          $ref: '#/components/schemas/UserCustomField'
        customFieldValue:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStepUserCustomFieldValue'
        defaultUser:
          $ref: '#/components/schemas/User'
        userNotifyEnabled:
          type: boolean
        resultStatus:
          type: string
          enum:
            - IN_PROGRESS
            - PRE_ACCEPTED
            - ACCEPTED
            - REJECTED
            - WITHDRAWN
        filterParams:
          type: string
        className:
          type: string
        filterFormula:
          type: string
        statusCustomField:
          $ref: '#/components/schemas/AbstractCustomField'
        dateCustomField:
          $ref: '#/components/schemas/AbstractCustomField'
        eduPathCustomField:
          $ref: '#/components/schemas/AbstractCustomField'
        genericListCustomField:
          $ref: '#/components/schemas/AbstractCustomField'
        surveyAction:
          type: integer
          format: int64
        userCanEditDocOwnStep:
          type: boolean
        stepRequiredValues:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStepRequiredValue'
        rejectReasonRequierd:
          type: boolean
        skipWhenUserHaveSubordinates:
          type: boolean
        externalMessageName:
          type: string
        externalMessageFields:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStepDefinitionExternalMessageField'
        termApplicationAccept:
          type: boolean
        skipWhenEmptyTraining:
          type: boolean
        workflowStepCostConfig:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStepCostConfig'
        editableFields:
          type: string
        order:
          type: integer
          format: int32
        automaticStep:
          type: boolean
    WorkflowStepDefinitionExternalMessageField:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        fieldValue:
          type: string
        stepDefinition:
          $ref: '#/components/schemas/WorkflowStepDefinition'
    WorkflowStepRequiredValue:
      type: object
      properties:
        id:
          type: integer
          format: int64
        customField:
          $ref: '#/components/schemas/AbstractCustomField'
        requiredValue:
          type: string
        workflowStepDefinition:
          $ref: '#/components/schemas/WorkflowStepDefinition'
        customFieldListValues:
          type: array
          items:
            type: string
        uid:
          type: integer
          format: int64
    WorkflowStepUserCustomFieldValue:
      type: object
      properties:
        id:
          type: integer
          format: int64
        workflowStepDefinition:
          $ref: '#/components/schemas/WorkflowStepDefinition'
        customFieldValue:
          type: string
        user:
          $ref: '#/components/schemas/User'
    WorkflowUserDefinition:
      type: object
      properties:
        id:
          type: integer
          format: int64
        user:
          $ref: '#/components/schemas/User'
        definition:
          $ref: '#/components/schemas/WorkflowDefinition'
    UserRelationApiDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        type:
          type: string
          enum:
            - SUPERVISOR
            - DYNAMIC_ROLE
        userId:
          type: integer
          format: int64
        relatedUserId:
          type: integer
          format: int64
        relationTypeId:
          type: integer
          format: int64
    UserModel:
      required:
        - email
        - login
      type: object
      properties:
        login:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        customFields:
          type: object
          additionalProperties:
            type: string
        extraData:
          type: object
          additionalProperties:
            type: object
