openapi: 3.0.1 info: title: Learn Group Service description: This service provides the means to manage Learn groups version: v1 servers: - url: 'https://gateway.kallidusapi.com/learn-group' paths: '/groups/{groupId}': get: summary: Get Group description: Gets a group by id operationId: get-group parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string responses: '200': description: the requested group is returned content: application/json: schema: $ref: '#/components/schemas/GetGroup' '400': description: an invalid guid is supplied '401': description: the caller cannot be authenticated '404': description: the group cannot be found delete: summary: Delete Group description: Delete a group by id operationId: delete-group parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string responses: '204': description: the group is successfully deleted '400': description: an invalid guid is supplied '401': description: the caller cannot be authenticated '404': description: the group cannot be found put: summary: Update Group description: Update a group operationId: update-group parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string requestBody: description: Group content: application/json: schema: $ref: '#/components/schemas/PutGroup' responses: '200': description: the group is successfully updated and returned content: application/json: schema: $ref: '#/components/schemas/GetGroup' '400': description: the group passed in is missing or invalid '401': description: the caller cannot be authenticated '404': description: the group cannot be found /groups: post: summary: Create Group description: Create new group operationId: create-group requestBody: description: Group content: application/json: schema: $ref: '#/components/schemas/PostGroup' responses: '201': description: the group is successfully created and returned content: application/json: schema: $ref: '#/components/schemas/GetGroup' '400': description: 'the group passed in is missing or invalid, or the group code already exists' '401': description: the caller cannot be authenticated get: summary: Get Groups description: Get all groups operationId: get-groups responses: '200': description: a collection of groups are returned content: application/json: schema: $ref: '#/components/schemas/GetGroups' '401': description: the caller cannot be authenticated '/groups/{groupId}/members': get: summary: Get Group Members description: Get the members in a group operationId: get-group-members parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string responses: '200': description: a collection of members are returned content: application/json: schema: $ref: '#/components/schemas/GetMembers' '400': description: an invalid guid is supplied '401': description: the caller cannot be authenticated '404': description: the group cannot be found post: summary: Add Group Member description: Add a member to a group operationId: add-group-member parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string requestBody: description: Member content: application/json: schema: $ref: '#/components/schemas/PostMember' responses: '201': description: the member is successfully added to the group and returned content: application/json: schema: $ref: '#/components/schemas/GetMember' '400': description: 'the userId passed in is missing or invalid, or the user cannot be found or is already a member of the group' '401': description: the caller cannot be authenticated '404': description: the group cannot be found '/groups/{groupId}/members/{userId}': delete: summary: Remove Group Member description: Remove a member from a group operationId: remove-group-member parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string - name: userId in: path description: unique identifier of the user required: true schema: type: string responses: '204': description: the member is successfully removed from the group '400': description: 'an invalid guid is supplied, or the user is not a member of the group' '401': description: the caller cannot be authenticated '404': description: the group cannot be found '/groups/{groupId}/courses': get: summary: Get Group Courses description: Get courses assigned to the group operationId: get-group-courses parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string responses: '200': description: a collection of courses are returned content: application/json: schema: $ref: '#/components/schemas/GetCourses' '400': description: an invalid guid is supplied '401': description: the caller cannot be authenticated '404': description: the group cannot be found post: summary: Add Course to Group description: Add a course to the group operationId: add-course-to-group parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string requestBody: description: Group Course content: application/json: schema: $ref: '#/components/schemas/PostGroupCourse' responses: '201': description: the course assignment is successfully created and returned content: application/json: schema: $ref: '#/components/schemas/GetGroupCourse' '400': description: 'the course assignment passed in is missing or invalid, or the course cannot be found or is already assigned to the group' '401': description: the caller cannot be authenticated '404': description: the group cannot be found '/groups/{groupId}/courses/{courseId}': get: summary: Get Group Course description: Get assigment details for course assigned to group operationId: get-group-course parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string - name: courseId in: path description: unique identifier of the course required: true schema: type: string responses: '200': description: the requested course assignment is returned content: application/json: schema: $ref: '#/components/schemas/GetGroupCourse' '400': description: an invalid guid is supplied '401': description: the caller cannot be authenticated '404': description: the group or course assignment cannot be found put: summary: Update Group Course description: Update course assignment details operationId: update-group-course parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string - name: courseId in: path description: unique identifier of the course required: true schema: type: string requestBody: description: Group Course content: application/json: schema: $ref: '#/components/schemas/PutGroupCourse' responses: '200': description: the course assignment is successfully updated and returned content: application/json: schema: $ref: '#/components/schemas/GetGroupCourse' '400': description: the course assignment passed in is missing or invalid '401': description: the caller cannot be authenticated '404': description: the group or course assignment cannot be found delete: summary: Remove Course from Group description: Remove a course assignment from group operationId: remove-course-from-group parameters: - name: groupId in: path description: unique identifier of the group required: true schema: type: string - name: courseId in: path description: unique identifier of the course required: true schema: type: string responses: '204': description: the course assignment is successfully deleted from the group '400': description: 'an invalid guid is supplied, or the course is not assigned to the group' '401': description: the caller cannot be authenticated '404': description: the group cannot be found components: schemas: GetGroup: type: object properties: Id: type: string format: guid Code: type: string Title: type: string Description: type: string Manager: type: object properties: Id: type: string format: guid Summary: type: string CustomInformation: type: array items: type: object properties: Key: type: string description: An array of Key/Value pairs describing any custom information that has been saved for the User. example: Id: string Code: string Title: string Description: string Manager: Id: string Summary: string CustomInformation: - Key: string GetGroups: type: array items: $ref: '#/components/schemas/GetGroup' example: - Id: string Code: string Title: string Description: string Manager: Id: string Summary: string CustomInformation: - Key: string PutGroup: type: object properties: Code: type: string Title: type: string Description: type: string Manager: type: object properties: Id: type: string format: guid Summary: type: string CustomInformation: type: array items: type: object properties: Key: type: string description: An array of Key/Value pairs describing any custom information that has been saved for the User. example: Code: Test Group Title: Test Group Description: An updated group Manager: Summary: John Petchey Id: 8e286851-6ee2-499f-83a5-61cb087b93dd CustomInformation: - GroupCustomField1: ValueOne - GroupCustomField2: ValueTwo PostGroup: type: object properties: Code: type: string Title: type: string Description: type: string Manager: type: object properties: Id: type: string format: guid Summary: type: string CustomInformation: type: array items: type: object properties: Key: type: string description: An array of Key/Value pairs describing any custom information that has been saved for the User. example: Code: Test Group Title: Test Group Description: A new group Manager: Summary: John Petchey Id: 8e286851-6ee2-499f-83a5-61cb087b93dd CustomInformation: - GroupCustomField1: Value1 - GroupCustomField2: Value2 GetMember: type: object properties: Id: type: string format: guid FirstName: type: string LastName: type: string UserName: type: string FullName: type: string EmailAddress: type: string IsEnabled: type: boolean example: Id: string FirstName: string LastName: string UserName: string FullName: string EmailAddress: string IsEnabled: false GetMembers: type: array items: $ref: '#/components/schemas/GetMember' example: - Id: string FirstName: string LastName: string UserName: string FullName: string EmailAddress: string IsEnabled: false PostMember: type: object properties: Id: type: string format: guid example: Id: 8e286851-6ee2-499f-83a5-61cb087b93dd GetCourse: type: object properties: Id: type: string format: guid Code: type: string Title: type: string Description: type: string IsEnabled: type: boolean example: Id: string Code: string Title: string Description: string IsEnabled: false GetCourses: type: array items: $ref: '#/components/schemas/GetCourse' example: - Id: string Code: string Title: string Description: string IsEnabled: false GetGroupCourse: type: object properties: Id: type: string format: guid DateAvailable: type: string format: date-time ExpiryDate: type: string format: date-time AbsoluteExpiryDate: type: string format: date-time RelativeExpiryDate: type: string Deadline: type: string format: date-time AbsoluteDeadline: type: string format: date-time RelativeDeadline: type: string example: Id: string DateAvailable: '1900-01-01T00:00:00.0000000+00:00' ExpiryDate: '1900-01-01T00:00:00.0000000+00:00' AbsoluteExpiryDate: '1900-01-01T00:00:00.0000000+00:00' RelativeExpiryDate: string Deadline: '1900-01-01T00:00:00.0000000+00:00' AbsoluteDeadline: '1900-01-01T00:00:00.0000000+00:00' RelativeDeadline: string PutGroupCourse: type: object properties: DateAvailable: type: string format: date-time ExpiryDate: type: string format: date-time AbsoluteExpiryDate: type: string format: date-time RelativeExpiryDate: type: string Deadline: type: string format: date-time AbsoluteDeadline: type: string format: date-time RelativeDeadline: type: string example: DateAvailable: '2019-01-02T14:00:00' ExpiryDate: '2019-05-02T15:00:00' AbsoluteExpiryDate: '2019-05-02T15:00:00' RelativeDeadline: Y1 PostGroupCourse: type: object properties: Id: type: string format: guid DateAvailable: type: string format: date-time ExpiryDate: type: string format: date-time AbsoluteExpiryDate: type: string format: date-time RelativeExpiryDate: type: string Deadline: type: string format: date-time AbsoluteDeadline: type: string format: date-time RelativeDeadline: type: string example: Id: 1123d1e6-a754-4476-99d1-9697996136b4 DateAvailable: '2019-01-02T14:00:00' ExpiryDate: '2019-05-02T15:00:00' AbsoluteExpiryDate: '2019-05-02T15:00:00' RelativeDeadline: Y1 securitySchemes: apiKeyHeader: type: apiKey name: Ocp-Apim-Subscription-Key in: header apiKeyQuery: type: apiKey name: subscription-key in: query security: - apiKeyHeader: [] - apiKeyQuery: []