OpenAPI Specification
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