openapi: 3.1.0 info: title: Artemis Application Server API contact: {name: Stephan Krusche, email: krusche@tum.de} version: 8.2.0 servers: - {url: 'http://localhost:8080', description: Generated server url} paths: /api/tutorialgroup/courses/{courseId}/tutorial-groups/{tutorialGroupId}: delete: tags: [tutorial-group] operationId: delete parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} - name: tutorialGroupId in: path required: true schema: {type: integer, format: int64} responses: '200': {description: OK} /api/tutorialgroup/courses/{courseId}/tutorial-groups/{tutorialGroupId}/sessions/{sessionId}: delete: tags: [tutorial-group-session] operationId: deleteSession parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} - name: tutorialGroupId in: path required: true schema: {type: integer, format: int64} - name: sessionId in: path required: true schema: {type: integer, format: int64} responses: '200': {description: OK} ? /api/tutorialgroup/courses/{courseId}/tutorial-groups-configuration/{tutorialGroupsConfigurationId}/tutorial-free-periods/{tutorialGroupFreePeriodId} : delete: tags: [tutorial-group-free-period] operationId: delete_1 parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} - name: tutorialGroupsConfigurationId in: path required: true schema: {type: integer, format: int64} - name: tutorialGroupFreePeriodId in: path required: true schema: {type: integer, format: int64} responses: '200': {description: OK} /api/tutorialgroup/courses/{courseId}/tutorial-groups: get: tags: [tutorial-group] operationId: getAllForCourse parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} responses: '200': description: OK content: application/json: schema: {type: array} /api/tutorialgroup/courses/{courseId}/tutorial-groups/{tutorialGroupId}/register/{studentLogin}: post: tags: [tutorial-group] operationId: registerStudent parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} - name: tutorialGroupId in: path required: true schema: {type: integer, format: int64} - name: studentLogin in: path required: true schema: {type: string} responses: '200': {description: OK} /api/tutorialgroup/courses/{courseId}/tutorial-groups/{tutorialGroupId}/register-multiple: post: tags: [tutorial-group] operationId: registerMultipleStudentsToTutorialGroup parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} - name: tutorialGroupId in: path required: true schema: {type: integer, format: int64} requestBody: content: application/json: schema: type: array items: {$ref: '#/components/schemas/Student'} uniqueItems: true required: true responses: '200': description: OK content: application/json: schema: type: array items: {$ref: '#/components/schemas/Student'} uniqueItems: true /api/tutorialgroup/courses/{courseId}/tutorial-groups/import: post: tags: [tutorial-group] operationId: importRegistrations parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} requestBody: content: application/json: schema: type: array items: {$ref: '#/components/schemas/TutorialGroupRegistrationImport'} uniqueItems: true required: true responses: '200': description: OK content: application/json: schema: type: array items: {$ref: '#/components/schemas/TutorialGroupRegistrationImport'} /api/tutorialgroup/tutorial-groups/{tutorialGroupId}/title: get: tags: [tutorial-group] operationId: getTitle parameters: - name: tutorialGroupId in: path required: true schema: {type: integer, format: int64} responses: '200': description: OK content: application/json: schema: {type: string} /api/tutorialgroup/courses/{courseId}/tutorial-groups/language-values: get: tags: [tutorial-group] operationId: getUniqueLanguageValues parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} responses: '200': description: OK content: application/json: schema: type: array items: {type: string} uniqueItems: true /api/tutorialgroup/courses/{courseId}/tutorial-groups/export/json: get: tags: [tutorial-group] operationId: exportTutorialGroupsToJSON parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} - name: fields in: query required: true schema: type: array items: {type: string} responses: '200': description: OK content: application/json: schema: type: array items: {$ref: '#/components/schemas/TutorialGroupExport'} /api/tutorialgroup/courses/{courseId}/tutorial-groups/export/csv: get: tags: [tutorial-group] operationId: exportTutorialGroupsToCSV parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} - name: fields in: query required: true schema: type: array items: {type: string} responses: '200': description: OK content: text/csv: schema: {type: string, format: binary} /api/tutorialgroup/courses/{courseId}/tutorial-groups/campus-values: get: tags: [tutorial-group] operationId: getUniqueCampusValues parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} responses: '200': description: OK content: application/json: schema: type: array items: {type: string} uniqueItems: true /api/tutorialgroup/courses/{courseId}/tutorial-groups/{tutorialGroupId}/deregister/{studentLogin}: delete: tags: [tutorial-group] operationId: deregisterStudent parameters: - name: courseId in: path required: true schema: {type: integer, format: int64} - name: tutorialGroupId in: path required: true schema: {type: integer, format: int64} - name: studentLogin in: path required: true schema: {type: string} responses: '200': {description: OK} components: schemas: Channel: type: object properties: type: {type: string} id: {type: integer, format: int64} creationDate: {type: string, format: date-time} lastMessageDate: {type: string, format: date-time} creator: {$ref: '#/components/schemas/ConversationUser'} lastReadDate: {type: string, format: date-time} unreadMessagesCount: {type: integer, format: int64} isFavorite: {type: boolean} isHidden: {type: boolean} isMuted: {type: boolean} isCreator: {type: boolean} isMember: {type: boolean} numberOfMembers: {type: integer, format: int32} name: {type: string} description: {type: string} topic: {type: string} isPublic: {type: boolean} isAnnouncementChannel: {type: boolean} isArchived: {type: boolean} isCourseWide: {type: boolean} hasChannelModerationRights: {type: boolean} isChannelModerator: {type: boolean} tutorialGroupId: {type: integer, format: int64} tutorialGroupTitle: {type: string} subType: type: string enum: [general, exercise, lecture, exam, feedbackDiscussion] subTypeReferenceId: {type: integer, format: int64} subTypeWithReferenceFromChannel: {$ref: '#/components/schemas/Channel', writeOnly: true} TutorialGroupFreePeriodRequest: type: object properties: startDate: {type: string, format: date-time} endDate: {type: string, format: date-time} reason: {type: string} required: [endDate, startDate] TutorialGroupStatus: type: object properties: status_explanation: {type: string} TutorialGroupRegistrationImport: type: object properties: title: {type: string} student: {$ref: '#/components/schemas/Student'} importSuccessful: {type: boolean} error: type: string enum: [NO_TITLE, NO_USER_FOUND, MULTIPLE_REGISTRATIONS] campus: {type: string} capacity: {type: integer, format: int32} language: {type: string} additionalInformation: {type: string} isOnline: {type: boolean} TutorialGroupExport: type: object properties: id: {type: integer, format: int64} title: {type: string} dayOfWeek: {type: string} startTime: {type: string} endTime: {type: string} location: {type: string} campus: {type: string} language: {type: string} additionalInformation: {type: string} capacity: {type: integer, format: int32} isOnline: {type: boolean} students: type: array items: {$ref: '#/components/schemas/StudentExport'} ConversationUser: type: object properties: id: {type: integer, format: int64} login: {type: string} name: {type: string} firstName: {type: string} lastName: {type: string} imageUrl: {type: string} isInstructor: {type: boolean} isEditor: {type: boolean} isTeachingAssistant: {type: boolean} isStudent: {type: boolean} isChannelModerator: {type: boolean} isRequestingUser: {type: boolean} Student: type: object properties: login: {type: string, maxLength: 50, minLength: 0} firstName: {type: string, maxLength: 50, minLength: 0} lastName: {type: string, maxLength: 50, minLength: 0} registrationNumber: {type: string, maxLength: 10, minLength: 0} email: {type: string, maxLength: 100, minLength: 0} TutorialGroupUpdate: type: object properties: notificationText: {type: string, maxLength: 1000, minLength: 1} updateTutorialGroupChannelName: {type: boolean} required: [tutorialGroup] TutorialGroupSessionRequest: type: object properties: date: {type: string, format: date} startTime: {type: string} endTime: {type: string} location: {type: string, maxLength: 2000, minLength: 1} required: [date, endTime, startTime] StudentExport: type: object properties: registrationNumber: {type: string} firstName: {type: string} lastName: {type: string}