openapi: 3.0.1
info:
  title: Meeds Portal Rest APIs
  description: Meeds Portal used Rest endpoints
  license:
    name: LGPL
    url: https://www.gnu.org/licenses/lgpl-3.0.en.html
  version: "1.0"
tags:
- name: /v1/platform/branding
  description: Managing branding information
- name: v1/navigations
  description: Retrieve sites navigations
- name: v1/groups
  description: Manages groups operations
- name: v1/membershipTypes
  description: Manage membership types operations
- name: v1/users
  description: Manage User operations
- name: /v1/settings
  description: Managing settings
paths:
  /v1/groups:
    get:
      tags:
      - v1/groups
      summary: Gets groups
      description: Gets groups
      operationId: getGroups
      parameters:
      - name: q
        in: query
        description: Search text to filter groups
        schema:
          type: string
      - name: offset
        in: query
        description: Offset
        schema:
          type: integer
          format: int32
      - name: limit
        in: query
        description: Limit
        schema:
          type: integer
          format: int32
      - name: tree
        in: query
        description: Whether build tree until results or not
        schema:
          type: boolean
          default: false
      - name: returnSize
        in: query
        schema:
          type: boolean
      - name: expand
        in: query
        schema:
          type: string
      responses:
        "200":
          description: Request fulfilled
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
    put:
      tags:
      - v1/groups
      summary: Updates an existing Group
      description: Updates an existing Group
      operationId: updateGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupImpl'
      responses:
        "204":
          description: Request fulfilled
        "400":
          description: Bad request
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
    post:
      tags:
      - v1/groups
      summary: Creates a new group
      description: Creates a new group
      operationId: createGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupImpl'
      responses:
        "204":
          description: Request fulfilled
        "400":
          description: Bad request
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
    delete:
      tags:
      - v1/groups
      summary: Deletes an existing Group
      description: Deletes an existing Group
      operationId: deleteGroup
      parameters:
      - name: groupId
        in: query
        description: Group id
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Request fulfilled
        "400":
          description: Bad request
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
  /v1/groups/memberships:
    get:
      tags:
      - v1/groups
      summary: Gets Group memberships list
      description: Gets Group memberships list
      operationId: getGroupMemberships
      parameters:
      - name: groupId
        in: query
        description: Group identifier
        required: true
        schema:
          type: string
      - name: offset
        in: query
        description: Offset
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Limit
        schema:
          type: integer
          format: int32
          default: 20
      - name: returnSize
        in: query
        description: Returning the number of users found or not
        schema:
          type: boolean
          default: false
      responses:
        "200":
          description: Request fulfilled
        "404":
          description: Group not found
        "500":
          description: Internal server error due to data encoding
    put:
      tags:
      - v1/groups
      summary: Updates an existing membership
      description: Updates an existing membership
      operationId: updateMembership
      parameters:
      - name: membershipId
        in: query
        description: "Membership identifier with format: MEMBERSHIP_TYPE:GROUP_ID:USER_NAME"
        required: true
        schema:
          type: string
      requestBody:
        description: Membership object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MembershipImpl'
      responses:
        "204":
          description: Request fulfilled
        "400":
          description: Bad request
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
    post:
      tags:
      - v1/groups
      summary: Creates a new membership
      description: Creates a new membership
      operationId: createMembership
      requestBody:
        description: Membership Object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MembershipImpl'
      responses:
        "204":
          description: Request fulfilled
        "400":
          description: Bad request
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
    delete:
      tags:
      - v1/groups
      summary: Deletes an existing membership
      description: Deletes an existing membership
      operationId: deleteMembership
      parameters:
      - name: membershipId
        in: query
        description: "Membership identifier with format: MEMBERSHIP_TYPE:USER_NAME:GROUP_ID"
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Request fulfilled
        "400":
          description: Bad request
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
  /v1/groups/memberships/bulk:
    post:
      tags:
      - v1/groups
      summary: Creates new memberships
      description: Creates new memberships
      operationId: createMultipleMembership
      requestBody:
        description: List of membership objects
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/MembershipImpl'
      responses:
        "204":
          description: Request fulfilled
        "400":
          description: Bad request
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
  /v1/groups/tree:
    get:
      tags:
      - v1/groups
      summary: Gets groups tree
      description: Gets groups tree
      operationId: getGroupsTree
      parameters:
      - name: parentId
        in: query
        description: Parent groupId to search
        schema:
          type: string
      - name: q
        in: query
        description: Search text to filter groups
        schema:
          type: string
      - name: offset
        in: query
        description: Offset
        schema:
          type: integer
          format: int32
      - name: limit
        in: query
        description: Limit
        schema:
          type: integer
          format: int32
      - name: returnSize
        in: query
        schema:
          type: boolean
      responses:
        "200":
          description: Request fulfilled
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
  /v1/groups/treeMembers:
    get:
      tags:
      - v1/groups
      summary: Gets groups tree
      description: Gets groups tree
      operationId: getGroupsTreeMembers
      parameters:
      - name: q
        in: query
        description: Search text to filter groups
        schema:
          type: string
      - name: groupMember
        in: query
        description: Group member
        schema:
          type: string
      - name: groupType
        in: query
        description: Group type
        schema:
          type: string
      - name: offset
        in: query
        description: Offset
        schema:
          type: integer
          format: int32
      - name: limit
        in: query
        description: Limit
        schema:
          type: integer
          format: int32
      - name: returnSize
        in: query
        schema:
          type: boolean
      - name: allGroupsForAdmin
        in: query
        description: allGroupsForAdmin
        schema:
          type: boolean
      - name: excludeParentGroup
        in: query
        description: List of excluded parent/type groups
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: Request fulfilled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionEntity'
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
  /v1/membershipTypes:
    get:
      tags:
      - v1/membershipTypes
      summary: Gets membership types
      description: Gets membership types
      operationId: getMembershipType
      responses:
        "200":
          description: Request fulfilled
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
    put:
      tags:
      - v1/membershipTypes
      summary: Updates an existing membership type
      description: Updates an existing membership type
      operationId: updateMembershipType
      requestBody:
        description: Membership type object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MembershipTypeImpl'
      responses:
        "204":
          description: Request fulfilled
        "400":
          description: Bad request
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
    post:
      tags:
      - v1/membershipTypes
      summary: Creates a new membership type
      description: Creates a new membership type
      operationId: createMembershipType
      requestBody:
        description: Membership type object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MembershipTypeImpl'
      responses:
        "204":
          description: Request fulfilled
        "400":
          description: Bad request
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
  /v1/membershipTypes/{membershipType}:
    delete:
      tags:
      - v1/membershipTypes
      summary: Deletes an existing membership type
      description: Deletes an existing membership type
      operationId: deleteMembershipType
      parameters:
      - name: membershipType
        in: path
        description: Membership type name
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Request fulfilled
        "400":
          description: Bad request
        "401":
          description: User not authorized to call this endpoint
        "500":
          description: Internal server error
  /v1/navigations:
    get:
      tags:
      - v1/navigations
      summary: Gets navigations
      description: Gets navigations
      operationId: getSiteNavigation
      parameters:
      - name: offset
        in: query
        description: Offset
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: "Limit, if equals to 0, it will use default limit."
        schema:
          type: integer
          format: int32
          default: 20
      responses:
        "200":
          description: Request fulfilled
        "400":
          description: Invalid query input
        "404":
          description: Navigation does not exist
        "500":
          description: Internal server error
  /v1/navigations/{siteType}:
    get:
      tags:
      - v1/navigations
      summary: Gets navigations of one or multiple site navigations
      description: Gets navigations of one or multiple site navigations
      operationId: getSiteTypeNavigations
      parameters:
      - name: siteType
        in: path
        description: "Portal site type, possible values: PORTAL, GROUP or USER"
        required: true
        schema:
          type: string
      - name: siteName
        in: query
        description: Portal site name
        required: true
        schema:
          type: string
      - name: scope
        in: query
        description: "Scope of navigations tree to retrieve, possible values: ALL,\
          \ CHILDREN, GRANDCHILDREN, SINGLE"
        schema:
          type: string
          default: ALL
      - name: nodeId
        in: query
        description: parent navigation node id
        schema:
          type: string
      - name: visibility
        in: query
        description: "Multivalued visibilities of navigation nodes to retrieve, possible\
          \ values: DISPLAYED, HIDDEN, SYSTEM or TEMPORAL. If empty, all visibilities\
          \ will be used."
        schema:
          type: array
          items:
            type: string
            default: All possible values combined
          default: All possible values combined
      - name: includeGlobal
        in: query
        description: if to include Global site in results in portal type case
        schema:
          type: boolean
          default: true
      - name: expand
        in: query
        description: to include extra node page details in results
        schema:
          type: boolean
      - name: temporalCheck
        in: query
        description: to check the navigation nodes scheduling start and end dates
        schema:
          type: boolean
          default: true
      - name: expandBreadcrumb
        in: query
        description: to expand the navigation breadcrumb
        schema:
          type: boolean
          default: false
      responses:
        "200":
          description: Request fulfilled
        "400":
          description: Invalid query input
        "404":
          description: Navigation does not exist
        "500":
          description: Internal server error
  /v1/platform/branding:
    get:
      tags:
      - /v1/platform/branding
      summary: Get Branding information
      description: Get Branding information
      operationId: getBrandingInformation
      responses:
        "200":
          description: Request fulfilled
    put:
      tags:
      - /v1/platform/branding
      summary: Update Branding information
      description: Update Branding information
      operationId: updateBrandingInformation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Branding'
      responses:
        "204":
          description: Branding information updated
  /v1/platform/branding/css:
    get:
      tags:
      - /v1/platform/branding
      summary: Get Branding CSS content
      description: Get Branding CSS content
      operationId: getBrandingCSS
      parameters:
      - name: v
        in: query
        description: "The value of lastModified parameter will determine whether the\
          \ query should be cached by browser or not. If not set, no 'expires HTTP\
          \ Header will be sent'"
        schema:
          type: string
      responses:
        "200":
          description: Branding css retrieved
        "304":
          description: Branding css not modified
        "500":
          description: Server error when retrieving branding css
  /v1/platform/branding/default:
    get:
      tags:
      - /v1/platform/branding
      summary: Get default theme style
      description: Get default theme style
      operationId: getDefaultBrandingThemeStyle
      responses:
        "200":
          description: Request fulfilled
  /v1/platform/branding/drawerBackground:
    get:
      tags:
      - /v1/platform/branding
      summary: Get Default drawer Background image
      description: Get Default drawer Background image
      operationId: getDrawerBackground
      parameters:
      - name: v
        in: query
        description: "The value of version parameter will determine whether the query\
          \ should be cached by browser or not. If not set, no 'expires HTTP Header\
          \ will be sent'"
        schema:
          type: string
      responses:
        "200":
          description: Request fullfilled
        "404":
          description: Object not found
  /v1/platform/branding/favicon:
    get:
      tags:
      - /v1/platform/branding
      summary: Get Branding favicon
      description: Get Branding favicon
      operationId: getBrandingFavicon
      parameters:
      - name: v
        in: query
        description: "The value of version parameter will determine whether the query\
          \ should be cached by browser or not. If not set, no 'expires HTTP Header\
          \ will be sent'"
        schema:
          type: string
      responses:
        "200":
          description: Branding favicon retrieved
        "404":
          description: Branding favicon not found
        "500":
          description: Server error when retrieving branding favicon
  /v1/platform/branding/loginBackground:
    get:
      tags:
      - /v1/platform/branding
      summary: Get authentication pages left panel background
      description: Get authentication pages left panel background
      operationId: getLoginBackground
      parameters:
      - name: v
        in: query
        description: "The value of version parameter will determine whether the query\
          \ should be cached by browser or not. If not set, no 'expires HTTP Header\
          \ will be sent'"
        schema:
          type: string
      responses:
        "200":
          description: Request fullfilled
        "404":
          description: Resource not found
        "500":
          description: Server error when retrieving resource
  /v1/platform/branding/logo:
    get:
      tags:
      - /v1/platform/branding
      summary: Get Branding logo
      description: Get Branding logo
      operationId: getBrandingLogo
      parameters:
      - name: v
        in: query
        description: "The value of version parameter will determine whether the query\
          \ should be cached by browser or not. If not set, no 'expires HTTP Header\
          \ will be sent'"
        schema:
          type: string
      responses:
        "200":
          description: Branding logo retrieved
        "404":
          description: Branding logo not found
        "500":
          description: Server error when retrieving branding logo
  /v1/platform/branding/pageBackground:
    get:
      tags:
      - /v1/platform/branding
      summary: Get Default Page Background image
      description: Get Default Page Background image
      operationId: getPageBackground
      parameters:
      - name: v
        in: query
        description: "The value of version parameter will determine whether the query\
          \ should be cached by browser or not. If not set, no 'expires HTTP Header\
          \ will be sent'"
        schema:
          type: string
      responses:
        "200":
          description: Request fullfilled
        "404":
          description: Object not found
  /v1/platform/branding/sideBarBackground:
    get:
      tags:
      - /v1/platform/branding
      summary: Get Default sidebar Background image
      description: Get Default sidebar Background image
      operationId: getSideBarBackground
      parameters:
      - name: v
        in: query
        description: "The value of version parameter will determine whether the query\
          \ should be cached by browser or not. If not set, no 'expires HTTP Header\
          \ will be sent'"
        schema:
          type: string
      responses:
        "200":
          description: Request fullfilled
        "404":
          description: Object not found
  /v1/platform/branding/topBarBackground:
    get:
      tags:
      - /v1/platform/branding
      summary: Get Default top bar Background image
      description: Get Default top bar Background image
      operationId: getTopBarBackground
      parameters:
      - name: v
        in: query
        description: "The value of version parameter will determine whether the query\
          \ should be cached by browser or not. If not set, no 'expires HTTP Header\
          \ will be sent'"
        schema:
          type: string
      responses:
        "200":
          description: Request fullfilled
        "404":
          description: Object not found
  /v1/settings/{context}/{scope}/{settingKey}:
    get:
      tags:
      - /v1/settings
      summary: Gets a specific setting value
      description: Gets a specific setting value
      operationId: getSetting
      parameters:
      - name: context
        in: path
        description: "Context - Format 'contextName,contextId' where 'contextId' is\
          \ optional. Example: GLOBAL or USER,john"
        required: true
        schema:
          type: string
      - name: scope
        in: path
        description: "Scope - Format 'scopeName,scopeId' where 'scopeId' is optional.\
          \ Example: GLOBAL or APPLICATION,wiki or SPACE,marketing"
        required: true
        schema:
          type: string
      - name: settingKey
        in: path
        description: Setting key
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Request fulfilled
        "400":
          description: Invalid query input
        "401":
          description: User does not have permissions to get it
        "404":
          description: Setting does not exist
        "500":
          description: Internal server error
    put:
      tags:
      - /v1/settings
      summary: Sets a specific setting value
      description: Sets a specific setting value
      operationId: setSetting
      parameters:
      - name: context
        in: path
        description: "Context - Format 'contextName,contextId' where 'contextId' is\
          \ optional. Example: GLOBAL or USER,john"
        required: true
        schema:
          type: string
      - name: scope
        in: path
        description: "Scope - Format 'scopeName,scopeId' where 'scopeId' is optional.\
          \ Example: GLOBAL or APPLICATION,wiki or SPACE,marketing"
        required: true
        schema:
          type: string
      - name: settingKey
        in: path
        description: Setting key
        required: true
        schema:
          type: string
      requestBody:
        description: Setting value
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingValueEntity'
        required: true
      responses:
        "200":
          description: Request fulfilled
        "400":
          description: Invalid query input
        "401":
          description: User does not have permissions to update it
        "500":
          description: Internal server error
  /v1/users:
    get:
      tags:
      - v1/users
      summary: Gets all users
      description: Gets all users
      operationId: getUsers
      parameters:
      - name: q
        in: query
        description: "User name information to filter, ex: user name, last name, first\
          \ name or full name"
        schema:
          type: string
      - name: status
        in: query
        description: "User status : ANY, ENABLED or DISABLED"
        schema:
          type: string
          default: ANY
      - name: offset
        in: query
        description: Offset
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Limit
        schema:
          type: integer
          format: int32
          default: 10
      - name: returnSize
        in: query
        description: Returning the number of users found or not
        schema:
          type: boolean
          default: false
      responses:
        "200":
          description: Request fulfilled
        "500":
          description: Internal server error due to data encoding
    put:
      tags:
      - v1/users
      summary: Update an existing user
      description: Update an existing user
      operationId: updateUser
      requestBody:
        description: User Object
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/UserRestEntity'
      responses:
        "200":
          description: Request fulfilled
        "400":
          description: Invalid query input
        "500":
          description: Internal server error due to data encoding
    post:
      tags:
      - v1/users
      summary: Create new user
      description: Create new user
      operationId: createUser
      requestBody:
        description: User Object
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/UserRestEntity'
      responses:
        "200":
          description: Request fulfilled
        "400":
          description: Invalid query input
        "500":
          description: Internal server error due to data encoding
  /v1/users/isDelegatedAdministrator:
    get:
      tags:
      - v1/users
      summary: Check if current user is a delegated administrator
      description: Check if current user is a delegated administrator
      operationId: isDelegatedAdministrator
      responses:
        "200":
          description: Request fulfilled
        "500":
          description: Internal server error due to data encoding
  /v1/users/isSuperUser:
    get:
      tags:
      - v1/users
      summary: Check if current user is a superUser
      description: Check if current user is a superUser
      operationId: isSuperUser
      responses:
        "200":
          description: Request fulfilled
        "500":
          description: Internal server error due to data encoding
  /v1/users/isSynchronizedUserAllowedToChangePassword:
    get:
      tags:
      - v1/users
      summary: Check if synchronized user is allowed to change his password
      description: Check if synchronized user is allowed to change his password
      operationId: isSynchronizedUserAllowedToChangePassword
      responses:
        "200":
          description: Request fulfilled
        "500":
          description: Internal server error due to data encoding
  /v1/users/{id}:
    get:
      tags:
      - v1/users
      summary: Gets a user identified by its id
      description: Gets a user identified by its id
      operationId: getUser
      parameters:
      - name: id
        in: path
        description: User name identifier
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Request fulfilled
        "401":
          description: User not authorized to call this endpoint
        "404":
          description: User not found
        "500":
          description: Internal server error
    delete:
      tags:
      - v1/users
      summary: Deletes a user identified by its id
      description: Deletes a user identified by its id
      operationId: deleteUser
      parameters:
      - name: id
        in: path
        description: User name identifier
        required: true
        schema:
          type: string
      responses:
        "204":
          description: Request fulfilled
        "401":
          description: User not authorized to call this endpoint
        "404":
          description: User not found
        "500":
          description: Internal server error
  /v1/users/{id}/changePassword:
    patch:
      tags:
      - v1/users
      summary: Changes user password
      description: Changes user password
      operationId: changePassword
      parameters:
      - name: id
        in: path
        description: username to change his password
        required: true
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              required:
              - currentPassword
              - newPassword
              type: object
              properties:
                currentPassword:
                  type: string
                  description: Current user password
                newPassword:
                  type: string
                  description: New user password
      responses:
        "200":
          description: Request fulfilled
        "401":
          description: User not authorized to call this endpoint
        "404":
          description: User not found
        "500":
          description: Internal server error
  /v1/users/{id}/memberships:
    get:
      tags:
      - v1/users
      summary: Gets User memberships list
      description: Gets User memberships list
      operationId: getUserMemberships
      parameters:
      - name: id
        in: path
        description: User name identifier
        required: true
        schema:
          type: string
      - name: offset
        in: query
        description: Offset
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Limit
        schema:
          type: integer
          format: int32
          default: 20
      - name: returnSize
        in: query
        description: Returning the number of users found or not
        schema:
          type: boolean
          default: false
      responses:
        "200":
          description: Request fulfilled
        "404":
          description: User not found
        "500":
          description: Internal server error due to data encoding
components:
  schemas:
    Background:
      type: object
      properties:
        data:
          type: array
          items:
            type: string
            format: byte
        fileId:
          type: integer
          format: int64
        size:
          type: integer
          format: int64
        updatedDate:
          type: integer
          format: int64
        uploadId:
          type: string
    Branding:
      type: object
      properties:
        companyLink:
          type: string
        companyName:
          type: string
        customCss:
          type: string
        defaultLanguage:
          type: string
        direction:
          type: string
        drawerBackground:
          $ref: '#/components/schemas/Background'
        favicon:
          $ref: '#/components/schemas/Favicon'
        lastUpdatedTime:
          type: integer
          format: int64
        loginBackground:
          $ref: '#/components/schemas/Background'
        loginBackgroundAltText:
          type: string
        loginBackgroundTextColor:
          type: string
        loginSubtitle:
          type: object
          additionalProperties:
            type: string
        loginTitle:
          type: object
          additionalProperties:
            type: string
        logo:
          $ref: '#/components/schemas/Logo'
        pageBackground:
          $ref: '#/components/schemas/Background'
        pageBackgroundColor:
          type: string
        pageBackgroundEffect:
          type: string
        pageBackgroundPosition:
          type: string
        pageBackgroundRepeat:
          type: string
        pageBackgroundSize:
          type: string
        pageWidth:
          type: string
        sideBarBackground:
          $ref: '#/components/schemas/Background'
        siteName:
          type: string
        supportedLanguages:
          type: object
          additionalProperties:
            type: string
        themeStyle:
          type: object
          additionalProperties:
            type: string
        topBarBackground:
          $ref: '#/components/schemas/Background'
    CollectionEntity:
      type: object
      properties:
        empty:
          type: boolean
        entities:
          type: array
          items:
            type: object
        limit:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        size:
          type: integer
          format: int32
      additionalProperties:
        type: object
    Favicon:
      type: object
      properties:
        data:
          type: array
          items:
            type: string
            format: byte
        fileId:
          type: integer
          format: int64
        size:
          type: integer
          format: int64
        updatedDate:
          type: integer
          format: int64
        uploadId:
          type: string
    GroupImpl:
      type: object
      properties:
        description:
          type: string
        enclosingMemberships:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/NestedMembership'
        groupName:
          type: string
        id:
          type: string
        internalStore:
          type: boolean
        label:
          type: string
        originatingStore:
          type: string
        parentId:
          type: string
    Logo:
      type: object
      properties:
        data:
          type: array
          items:
            type: string
            format: byte
        fileId:
          type: integer
          format: int64
        size:
          type: integer
          format: int64
        updatedDate:
          type: integer
          format: int64
        uploadId:
          type: string
    MembershipImpl:
      type: object
      properties:
        groupId:
          type: string
        id:
          type: string
        inherited:
          type: boolean
        membershipType:
          type: string
        userName:
          type: string
    MembershipTypeImpl:
      type: object
      properties:
        createdDate:
          type: string
          format: date-time
        description:
          type: string
        modifiedDate:
          type: string
          format: date-time
        name:
          type: string
        owner:
          type: string
    NestedMembership:
      type: object
      properties:
        groupId:
          type: string
        includeAllMembershipTypes:
          type: boolean
        inheritMembershipType:
          type: boolean
        membershipType:
          type: string
        nestedGroupId:
          type: string
        nestedMembershipType:
          type: string
    SettingValueEntity:
      type: object
      properties:
        value:
          type: string
    UserRestEntity:
      type: object
      properties:
        email:
          type: string
        enabled:
          type: boolean
        firstName:
          type: string
        fullName:
          type: string
        lastName:
          type: string
        password:
          type: string
        platformAdministrator:
          type: boolean
        userName:
          type: string
