iSpring Learn group API

Group operations

OpenAPI Specification

ispring-group-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Learn Rest Api assignments group API
  version: '3.0'
  description: Assignment operations
servers:
- url: https://api-learn.ispring.com
  description: Main server
security:
- bearerAuth: []
tags:
- name: group
  description: Group operations
paths:
  /group:
    get:
      tags:
      - group
      summary: Get group list
      operationId: GetGroups
      responses:
        '200':
          description: Success Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Group'
            application/xml:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Group'
                xml:
                  name: response
                  wrapped: true
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PermissionDenied'
    post:
      tags:
      - group
      summary: Add a new group
      operationId: AddGroup
      parameters:
      - $ref: '#/components/parameters/returnObject'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewGroup'
          application/xml:
            schema:
              $ref: '#/components/schemas/NewGroup'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                description: The group ID
                type: string
                format: uuid
            application/xml:
              schema:
                description: The group ID
                type: string
                format: uuid
                xml:
                  name: response
                  wrapped: true
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PermissionDenied'
  /group/smart:
    post:
      tags:
      - group
      summary: Add a new smart group
      operationId: AddSmartGroup
      parameters:
      - $ref: '#/components/parameters/returnObject'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewSmartGroup'
          application/xml:
            schema:
              $ref: '#/components/schemas/NewSmartGroup'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                description: The group ID
                type: string
                format: uuid
            application/xml:
              schema:
                description: The group ID
                type: string
                format: uuid
                xml:
                  name: response
                  wrapped: true
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PermissionDenied'
  /group/smart/{groupId}:
    post:
      tags:
      - group
      summary: Update smart group rules
      operationId: EditSmartGroup
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSmartGroup'
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateSmartGroup'
      responses:
        '200':
          description: Success Response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PermissionDenied'
  /group/smart/{groupId}/rules:
    get:
      tags:
      - group
      summary: Get smart group rules
      operationId: GetSmartGroupRules
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success Response
          content:
            application/json:
              schema:
                required:
                - smartGroupRules
                properties:
                  smartGroupRules:
                    $ref: '#/components/schemas/SmartGroupRules'
                type: object
            application/xml:
              schema:
                required:
                - smartGroupRules
                properties:
                  smartGroupRules:
                    $ref: '#/components/schemas/SmartGroupRules'
                type: object
                xml:
                  name: response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PermissionDenied'
  /group/{groupId}:
    get:
      tags:
      - group
      summary: Get group details
      operationId: GetGroup
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailedGroup'
            application/xml:
              schema:
                properties:
                  response:
                    $ref: '#/components/schemas/DetailedGroup'
                type: object
                xml:
                  name: response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PermissionDenied'
    post:
      tags:
      - group
      summary: Update group
      operationId: UpdateGroup
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGroup'
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateGroup'
      responses:
        '200':
          description: Success Response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PermissionDenied'
    delete:
      tags:
      - group
      summary: Delete group
      operationId: RemoveGroup
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PermissionDenied'
  /group/{groupId}/members:
    post:
      tags:
      - group
      summary: Update group members
      operationId: UpdateGroupMembers
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGroupMembers'
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateGroupMembers'
      responses:
        '200':
          description: Success Response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PermissionDenied'
  /groups:
    get:
      tags:
      - group
      summary: List groups
      operationId: ListGroups
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageToken'
      responses:
        '200':
          description: Success Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupsPage'
            application/xml:
              schema:
                $ref: '#/components/schemas/GroupsPage'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/PermissionDenied'
components:
  schemas:
    GroupsPage:
      required:
      - groups
      properties:
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
          xml:
            wrapped: true
        nextPageToken:
          type: string
      type: object
      xml:
        name: response
    UpdateSmartGroup:
      required:
      - rules
      properties:
        name:
          type: string
        rules:
          $ref: '#/components/schemas/SmartGroupRuleNodes'
      type: object
      xml:
        name: request
    SmartGroupRuleNodes:
      required:
      - and
      properties:
        and:
          type: array
          items:
            $ref: '#/components/schemas/AndSmartGroupRuleNode'
      type: object
    ErrorResponse:
      required:
      - code
      - message
      properties:
        code:
          type: integer
        message:
          type: string
      type: object
      xml:
        name: response
    DetailedGroup:
      required:
      - usersCount
      - groupId
      - userIds
      - name
      - isSmart
      properties:
        usersCount:
          type: integer
        groupId:
          type: string
          format: uuid
        userIds:
          $ref: '#/components/schemas/ArrayOfIds'
        name:
          type: string
        isSmart:
          type: boolean
      type: object
      xml:
        name: group
    UpdateGroup:
      required:
      - name
      properties:
        name:
          type: string
      type: object
      xml:
        name: request
    SmartGroupRules:
      required:
      - groupId
      - rules
      properties:
        groupId:
          type: string
          format: uuid
        rules:
          $ref: '#/components/schemas/SmartGroupRuleNodes'
      type: object
    Group:
      required:
      - groupId
      - name
      - isSmart
      properties:
        groupId:
          type: string
          format: uuid
        name:
          type: string
        isSmart:
          type: boolean
      type: object
      xml:
        name: group
    OrSmartGroupRuleNode:
      required:
      - rule
      properties:
        rule:
          $ref: '#/components/schemas/SmartGroupRule'
      type: object
    UpdateGroupMembers:
      required:
      - userIds
      properties:
        userIds:
          $ref: '#/components/schemas/ArrayOfIds'
      type: object
      xml:
        name: request
    NewSmartGroup:
      required:
      - name
      - rules
      properties:
        name:
          type: string
        rules:
          $ref: '#/components/schemas/SmartGroupRuleNodes'
      type: object
      xml:
        name: request
    ArrayOfIds:
      type: array
      items:
        type: string
        format: uuid
        xml:
          name: id
      xml:
        wrapped: true
    AndSmartGroupRuleNode:
      required:
      - or
      properties:
        or:
          type: array
          items:
            $ref: '#/components/schemas/OrSmartGroupRuleNode'
      type: object
    SmartGroupRule:
      required:
      - attributeType
      - operator
      - value
      properties:
        attributeType:
          description: 1 - Department, 2 - Group, 3 - Profile used
          type: integer
          enum:
          - 1
          - 2
          - 3
        attributeId:
          type: string
        operator:
          description: 1 - Only, 2 - This and nested
          type: integer
          enum:
          - 1
          - 2
        value:
          type: string
      type: object
    NewGroup:
      required:
      - name
      properties:
        name:
          type: string
        userIds:
          $ref: '#/components/schemas/ArrayOfIds'
      type: object
      xml:
        name: request
  responses:
    PermissionDenied:
      description: Permission Denied
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
        application/xml:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
        application/xml:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
        application/xml:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    returnObject:
      name: X-Return-Object
      in: header
      required: false
      schema:
        type: boolean
    pageSize:
      name: pageSize
      in: query
      required: false
      schema:
        type: integer
    pageToken:
      name: pageToken
      in: query
      required: false
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer