{ "openapi": "3.1.0", "info": { "title": "OpenAPI definition", "version": "v0" }, "servers": [ { "url": "http://localhost:8080", "description": "Generated server url" } ], "tags": [ { "name": "Institution", "description": "Institution administration endpoints." }, { "name": "Quiz", "description": "LMS quiz discovery endpoints." }, { "name": "ExamTemplate", "description": "Exam template administration endpoints." }, { "name": "ScheduledDelete", "description": "Scheduled exam deletion administration endpoints." }, { "name": "Info", "description": "Public server information endpoints." }, { "name": "UserAccount", "description": "User account administration and current-user endpoints." } ], "paths": { "/exam-api/v1/handshake": { "put": { "tags": ["exam-api-_-v-1_-controller"], "operationId": "handshakeEstablish", "parameters": [ { "name": "SEBConnectionToken", "in": "header", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "examId": { "type": "integer" }, "seb_user_session_id": { "type": "string" }, "seb_version": { "type": "string" }, "seb_os_name": { "type": "string" }, "seb_machine_name": { "type": "string" }, "seb_signature_key": { "type": "string" }, "client_id": { "type": "string" } } } } } }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "SEBOAuth": [] }] }, "post": { "tags": ["exam-api-_-v-1_-controller"], "operationId": "handshakeCreate", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "examId": { "type": "integer" }, "client_id": { "type": "string" }, "formParams": { "$ref": "#/components/schemas/MultiValueMapStringString" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RunningExamInfo" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "SEBOAuth": [] }] }, "delete": { "tags": ["exam-api-_-v-1_-controller"], "operationId": "handshakeDelete", "parameters": [ { "name": "SEBConnectionToken", "in": "header", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "SEBOAuth": [] }] }, "patch": { "tags": ["exam-api-_-v-1_-controller"], "operationId": "handshakeUpdate", "parameters": [ { "name": "SEBConnectionToken", "in": "header", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "examId": { "type": "integer" }, "seb_user_session_id": { "type": "string" }, "seb_version": { "type": "string" }, "seb_os_name": { "type": "string" }, "seb_machine_name": { "type": "string" }, "seb_signature_key": { "type": "string" }, "client_id": { "type": "string" } } } } } }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "SEBOAuth": [] }] } }, "/admin-api/v1/useractivity": { "get": { "tags": ["user-activity-log-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getUserActivityLogs", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageUserActivityLog" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["user-activity-log-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editUserActivityLog", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserActivityLog" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserActivityLog" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["user-activity-log-controller"], "summary": "Create user activity log", "description": "Creates user activity log from application/x-www-form-urlencoded fields matching UserActivityLog.", "operationId": "createUserActivityLog", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/UserActivityLog" } } }, "required": true }, "responses": { "200": { "description": "Created user activity log.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserActivityLog" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["user-activity-log-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllUserActivityLogs", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount": { "get": { "tags": ["UserAccount"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getUserAccounts", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } }, { "name": "name", "in": "query", "description": "Filters user accounts by first or full name.", "required": false, "schema": { "type": "string" } }, { "name": "surname", "in": "query", "description": "Filters user accounts by surname.", "required": false, "schema": { "type": "string" } }, { "name": "username", "in": "query", "description": "Filters user accounts by login username.", "required": false, "schema": { "type": "string" } }, { "name": "email", "in": "query", "description": "Filters user accounts by email address.", "required": false, "schema": { "type": "string" } }, { "name": "language", "in": "query", "description": "Filters user accounts by language.", "required": false, "schema": { "type": "string" } }, { "name": "role", "in": "query", "description": "Filters user accounts by role.", "required": false, "schema": { "type": "string" } }, { "name": "active", "in": "query", "description": "Filters user accounts by active state.", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageUserInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["UserAccount"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editUserAccount", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfo" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["UserAccount"], "summary": "Create user account", "description": "Creates user account from application/x-www-form-urlencoded fields matching UserMod.", "operationId": "createUserAccount", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/UserMod" } } }, "required": true }, "responses": { "200": { "description": "Created user account.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["UserAccount"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllUserAccounts", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/password": { "put": { "tags": ["UserAccount"], "summary": "Change a user account password", "operationId": "changeUserAccountPassword", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordChange" } } }, "required": true }, "responses": { "200": { "description": "User account after password change.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-event": { "get": { "tags": ["client-event-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getClientEvents", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageClientEvent" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["client-event-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editClientEvent", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientEvent" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientEvent" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["client-event-controller"], "summary": "Create client event", "description": "Creates client event from application/x-www-form-urlencoded fields matching ClientEvent.", "operationId": "createClientEvent", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/ClientEvent" } } }, "required": true }, "responses": { "200": { "description": "Created client event.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientEvent" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["client-event-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllClientEvents", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-connection": { "get": { "tags": ["client-connection-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getClientConnections", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageClientConnection" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["client-connection-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editClientConnection", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientConnection" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientConnection" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["client-connection-controller"], "summary": "Create client connection", "description": "Creates client connection from application/x-www-form-urlencoded fields matching ClientConnection.", "operationId": "createClientConnection", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/ClientConnection" } } }, "required": true }, "responses": { "200": { "description": "Created client connection.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientConnection" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["client-connection-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllClientConnections", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation": { "get": { "tags": ["orientation-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getOrientations", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageOrientation" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["orientation-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editOrientation", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Orientation" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Orientation" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["orientation-controller"], "summary": "Create orientation", "description": "Creates orientation from application/x-www-form-urlencoded fields matching Orientation.", "operationId": "createOrientation", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Orientation" } } }, "required": true }, "responses": { "200": { "description": "Created orientation.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Orientation" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["orientation-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllOrientations", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/view": { "get": { "tags": ["view-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getViews", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageView" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["view-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editView", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/View" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/View" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["view-controller"], "summary": "Create view", "description": "Creates view from application/x-www-form-urlencoded fields matching View.", "operationId": "createView", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/View" } } }, "required": true }, "responses": { "200": { "description": "Created view.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/View" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["view-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllViews", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup": { "get": { "tags": ["lms-setup-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getLmsSetups", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } }, { "name": "name", "in": "query", "description": "Filters assessment tools by name.", "required": false, "schema": { "type": "string" } }, { "name": "lms_type", "in": "query", "description": "Filters assessment tools by LMS type.", "required": false, "schema": { "type": "string" } }, { "name": "active", "in": "query", "description": "Filters assessment tools by active state.", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageLmsSetup" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["lms-setup-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editLmsSetup", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LmsSetup" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LmsSetup" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["lms-setup-controller"], "summary": "Create lms setup", "description": "Creates lms setup from application/x-www-form-urlencoded fields matching LmsSetup.", "operationId": "createLmsSetup", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/LmsSetup" } } }, "required": true }, "responses": { "200": { "description": "Created lms setup.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LmsSetup" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["lms-setup-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllLmsSetups", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/test/adhoc": { "put": { "tags": ["lms-setup-controller"], "operationId": "testLmsAdHoc", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LmsSetup" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LmsSetupTestResult" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution": { "get": { "tags": ["Institution"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getInstitutions", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } }, { "name": "name", "in": "query", "description": "Filters institutions by name.", "required": false, "schema": { "type": "string" } }, { "name": "active", "in": "query", "description": "Filters institutions by active state.", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageInstitution" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["Institution"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editInstitution", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Institution" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Institution" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["Institution"], "summary": "Create institution", "description": "Creates institution from application/x-www-form-urlencoded fields matching Institution.", "operationId": "createInstitution", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Institution" } } }, "required": true }, "responses": { "200": { "description": "Created institution.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Institution" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["Institution"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllInstitutions", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/indicator": { "get": { "tags": ["indicator-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getIndicators", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageIndicator" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["indicator-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editIndicator", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Indicator" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Indicator" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["indicator-controller"], "summary": "Create indicator", "description": "Creates indicator from application/x-www-form-urlencoded fields matching Indicator.", "operationId": "createIndicator", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Indicator" } } }, "required": true }, "responses": { "200": { "description": "Created indicator.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Indicator" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["indicator-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllIndicators", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam": { "get": { "tags": ["exam-administration-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getExamAdministrations", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageExam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["exam-administration-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editExamAdministration", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["exam-administration-controller"], "summary": "Create exam administration", "description": "Creates exam administration from application/x-www-form-urlencoded fields matching Exam.", "operationId": "createExamAdministration", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Exam" } } }, "required": true }, "responses": { "200": { "description": "Created exam administration.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["exam-administration-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllExamAdministrations", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/seb-restriction": { "get": { "tags": ["exam-administration-controller"], "operationId": "getSEBRestriction", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SEBRestriction" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["exam-administration-controller"], "operationId": "applySEBRestriction", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["exam-administration-controller"], "operationId": "saveSEBRestrictionData", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SEBRestriction" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["exam-administration-controller"], "operationId": "deleteSEBRestriction", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template": { "get": { "tags": ["ExamTemplate"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getExamTemplates", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } }, { "name": "name", "in": "query", "description": "Filters exam templates by name.", "required": false, "schema": { "type": "string" } }, { "name": "examType", "in": "query", "description": "Filters exam templates by exam type.", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageExamTemplate" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["ExamTemplate"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editExamTemplate", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamTemplate" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamTemplate" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["ExamTemplate"], "summary": "Create exam template", "description": "Creates exam template from application/x-www-form-urlencoded fields matching ExamTemplate.", "operationId": "createExamTemplate", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/ExamTemplate" } } }, "required": true }, "responses": { "200": { "description": "Created exam template.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamTemplate" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["ExamTemplate"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllExamTemplates", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/indicator": { "put": { "tags": ["ExamTemplate"], "summary": "Saves changes to an existing indicator template.", "operationId": "saveIndicatorTemplate", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IndicatorTemplate" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IndicatorTemplate" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["ExamTemplate"], "summary": "Creates a new indicator template for the given exam template.", "operationId": "createIndicatorTemplate", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/IndicatorTemplate" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IndicatorTemplate" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-configuration-map": { "get": { "tags": ["exam-configuration-mapping-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getExamConfigurationMappings", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageExamConfigurationMap" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["exam-configuration-mapping-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editExamConfigurationMapping", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamConfigurationMap" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamConfigurationMap" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["exam-configuration-mapping-controller"], "summary": "Create a new entity object of specifies type by using the given form parameter", "description": "This expects application/x-www-form-urlencoded format for the form parameter and tries to create a new entity object from this form parameter, resulting in an error if there are missing or incorrect form paramter. The needed form paramter can be verified within the specific entity object.", "operationId": "createExamConfigurationMapping", "parameters": [ { "name": "formParams", "in": "query", "description": "The from paramter value map that is been used to create a new entity object." }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "allRequestParams": { "$ref": "#/components/schemas/MultiValueMapStringString" }, "institutionId": { "type": "integer" } }, "required": ["allRequestParams"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamConfigurationMap" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["exam-configuration-mapping-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllExamConfigurationMappings", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_value": { "get": { "tags": ["configuration-value-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getConfigurationValues", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageConfigurationValue" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["configuration-value-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editConfigurationValue", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationValue" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationValue" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["configuration-value-controller"], "summary": "Create configuration value", "description": "Creates configuration value from application/x-www-form-urlencoded fields matching ConfigurationValue.", "operationId": "createConfigurationValue", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/ConfigurationValue" } } }, "required": true }, "responses": { "200": { "description": "Created configuration value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationValue" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["configuration-value-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllConfigurationValues", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_value/table": { "get": { "tags": ["configuration-value-controller"], "operationId": "getTableValue", "parameters": [ { "name": "configurationAttributeId", "in": "query", "required": true, "schema": { "type": "integer" } }, { "name": "configurationId", "in": "query", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationTableValues" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["configuration-value-controller"], "operationId": "editConfigurationValue_1", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationTableValues" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationTableValues" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_attribute": { "get": { "tags": ["configuration-attribute-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getConfigurationAttributes", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageConfigurationAttribute" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["configuration-attribute-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editConfigurationAttribute", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationAttribute" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationAttribute" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["configuration-attribute-controller"], "summary": "Create configuration attribute", "description": "Creates configuration attribute from application/x-www-form-urlencoded fields matching ConfigurationAttribute.", "operationId": "createConfigurationAttribute", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/ConfigurationAttribute" } } }, "required": true }, "responses": { "200": { "description": "Created configuration attribute.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationAttribute" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["configuration-attribute-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllConfigurationAttributes", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration": { "get": { "tags": ["configuration-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getConfigurations", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageConfiguration" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["configuration-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editConfiguration", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Configuration" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Configuration" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["configuration-controller"], "summary": "Create configuration", "description": "Creates configuration from application/x-www-form-urlencoded fields matching Configuration.", "operationId": "createConfiguration", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Configuration" } } }, "required": true }, "responses": { "200": { "description": "Created configuration.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Configuration" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["configuration-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllConfigurations", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node": { "get": { "tags": ["configuration-node-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getConfigurationNodes", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageConfigurationNode" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["configuration-node-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editConfigurationNode", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationNode" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationNode" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["configuration-node-controller"], "summary": "Create configuration node", "description": "Creates configuration node from application/x-www-form-urlencoded fields matching ConfigurationNode.", "operationId": "createConfigurationNode", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/ConfigurationNode" } } }, "required": true }, "responses": { "200": { "description": "Created configuration node.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationNode" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["configuration-node-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllConfigurationNodes", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/copy": { "put": { "tags": ["configuration-node-controller"], "operationId": "copyConfiguration", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigCreationInfo" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationNode" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration": { "get": { "tags": ["seb-client-config-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getSEBClientConfigs", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } }, { "name": "name", "in": "query", "description": "Filters connection configurations by name.", "required": false, "schema": { "type": "string" } }, { "name": "active", "in": "query", "description": "Filters connection configurations by active state.", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageSEBClientConfig" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["seb-client-config-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editSEBClientConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SEBClientConfig" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SEBClientConfig" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["seb-client-config-controller"], "summary": "Create s e b client config", "description": "Creates s e b client config from application/x-www-form-urlencoded fields matching SEBClientConfig.", "operationId": "createSEBClientConfig", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/SEBClientConfig" } } }, "required": true }, "responses": { "200": { "description": "Created s e b client config.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SEBClientConfig" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["seb-client-config-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllSEBClientConfigs", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client-group": { "get": { "tags": ["client-group-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getClientGroups", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageClientGroup" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["client-group-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editClientGroup", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientGroup" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientGroup" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["client-group-controller"], "summary": "Create client group", "description": "Creates client group from application/x-www-form-urlencoded fields matching ClientGroup.", "operationId": "createClientGroup", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/ClientGroup" } } }, "required": true }, "responses": { "200": { "description": "Created client group.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientGroup" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["client-group-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllClientGroups", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/batch-action": { "get": { "tags": ["batch-action-controller"], "summary": "Get a page of the specific domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getBatchActions", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageBatchAction" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "put": { "tags": ["batch-action-controller"], "summary": "Modifies an already existing entity object of the specific type.", "description": "This expects application/json format for the response data and verifies consistencies within the definition of the specific entity object type. Missing (NULL) parameter that are not mandatory will be ignored and the original value will not be affected", "operationId": "editBatchAction", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BatchAction" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BatchAction" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["batch-action-controller"], "summary": "Create batch action", "description": "Creates batch action from application/x-www-form-urlencoded fields matching BatchAction.", "operationId": "createBatchAction", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/BatchAction" } } }, "required": true }, "responses": { "200": { "description": "Created batch action.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BatchAction" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["batch-action-controller"], "summary": "Deletes all given entity (and all its dependencies) by a given list of model identifiers.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteAllBatchActions", "parameters": [ { "name": "modelIds", "in": "query", "description": "The list of model identifiers of specific entity type to delete." }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' paramerer shall be processed or not.\n The default is false " }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result." } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "modelIds": { "type": "array", "items": { "type": "string" } }, "bulkActionAddIncludes": { "type": "boolean", "default": false }, "bulkActionIncludes": { "type": "array", "items": { "type": "string" } }, "institutionId": { "type": "integer" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/oauth/jwttoken/verify": { "post": { "tags": ["admin-jwt-access"], "operationId": "verifyJWTToken", "parameters": [ { "name": "one-time-token-to-verify", "in": "header", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenLoginInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } } } }, "/lms-api/v1/seb_config": { "post": { "tags": ["lms-integration-controller"], "operationId": "getConnectionConfiguration", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "course_id": { "type": "string" }, "quiz_id": { "type": "string" } }, "required": ["course_id", "id", "quiz_id"] } } } }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } } } }, "/lms-api/v1/login_token": { "post": { "tags": ["lms-integration-controller"], "operationId": "getOneTimeLoginToken", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "course_id": { "type": "string" }, "quiz_id": { "type": "string" }, "user_id": { "type": "string" }, "user_username": { "type": "string" }, "user_email": { "type": "string" }, "user_firstname": { "type": "string" }, "user_lastname": { "type": "string" }, "account_time_zone": { "type": "string" } }, "required": [ "course_id", "id", "quiz_id", "user_id" ] } } } }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TokenLoginResponse" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } } } }, "/lms-api/v1/exam": { "post": { "tags": ["lms-integration-controller"], "operationId": "createExam", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "course_id": { "type": "string" }, "quiz_id": { "type": "string" }, "exam_template_id": { "type": "string" }, "exam_data": { "type": "string" }, "quit_password": { "type": "string" }, "quit_link": { "type": "integer", "format": "int32" } }, "required": [ "course_id", "exam_template_id", "id", "quiz_id" ] } } } }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } } }, "delete": { "tags": ["lms-integration-controller"], "operationId": "deleteExam", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "course_id": { "type": "string" }, "quiz_id": { "type": "string" } }, "required": ["course_id", "id", "quiz_id"] } } } }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } } } }, "/exam-api/v1/sebping": { "post": { "tags": ["exam-api-_-v-1_-controller"], "operationId": "ping", "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "SEBOAuth": [] }] } }, "/exam-api/v1/seblog": { "post": { "tags": ["exam-api-_-v-1_-controller"], "operationId": "event", "parameters": [ { "name": "SEBConnectionToken", "in": "header", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "string" } } }, "required": true }, "responses": { "204": { "description": "No Content" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "SEBOAuth": [] }] } }, "/admin-api/v1/useraccount/{modelId}/inactive": { "post": { "tags": ["UserAccount"], "summary": "Dectivate a single entity by its modelId.", "operationId": "deactivateUserAccount", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to deactivate.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/{modelId}/active": { "post": { "tags": ["UserAccount"], "summary": "Activate a single entity by its modelId.", "operationId": "activateUserAccount", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to activate.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/logout": { "post": { "tags": ["UserAccount"], "summary": "Record current user logout", "description": "Attempts to revoke the current bearer token and records a logout activity.", "operationId": "logUserAccountLogout", "responses": { "200": { "description": "Logout activity recorded." }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/session-delete": { "get": { "tags": ["session-deletion-controller"], "operationId": "getDeletionReport", "parameters": [ { "name": "searchName", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "deleteDueTime", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionDeletionReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["session-deletion-controller"], "operationId": "deleteSessions", "parameters": [ { "name": "searchName", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "deleteDueTime", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "excludes", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionDeletionReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/scheduled-delete": { "get": { "tags": ["ScheduledDelete"], "summary": "Gets a page of scheduled deletions.", "description": "Sorted by schedule time (descending) unless a sort parameter is given.", "operationId": "getScheduledDeletes", "parameters": [ { "name": "dueTimestamp", "in": "query", "description": "Filters scheduled deletions by delete-due time; unix timestamp in milliseconds.", "schema": { "type": "integer" } }, { "name": "state", "in": "query", "description": "Filters scheduled deletions by state.", "schema": { "type": "string", "enum": [ "PENDING", "SPS_RUNNING", "RUNNING", "FINISHED" ] } }, { "name": "page_number", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageScheduledDelete" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["ScheduledDelete"], "summary": "Schedules a new deletion of all exams that ended before the given due time.", "operationId": "createScheduledDelete", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "deleteDueTime": { "type": "integer", "description": "Exams that ended before this time get deleted; unix timestamp in milliseconds." } }, "required": ["deleteDueTime"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduledDeleteReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/scheduled-delete/{modelId}/unmark-exclude": { "post": { "tags": ["ScheduledDelete"], "summary": "Includes the given exam in scheduled deletions again and recalculates a pending deletion.", "operationId": "unmarkExcludeFromDeletion", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduledDeleteReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/scheduled-delete/{modelId}/mark-exclude": { "post": { "tags": ["ScheduledDelete"], "summary": "Excludes the given exam from scheduled deletions and recalculates a pending deletion.", "operationId": "markExcludeFromDeletion", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduledDeleteReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/register": { "post": { "tags": ["UserAccount"], "summary": "Register a user account", "description": "Self-registers an EXAM_SUPPORTER account from application/x-www-form-urlencoded fields matching UserMod.", "operationId": "registerUserAccount", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/UserMod" } } }, "required": true }, "responses": { "200": { "description": "Registered user account.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } } } }, "/admin-api/v1/monitoring/{parentModelId}/static-client-data": { "post": { "tags": ["exam-monitoring-controller"], "operationId": "getMonitoringStaticClientData", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "modelIds": { "type": "string" } }, "required": ["modelIds"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MonitoringStaticClientData" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/{parentModelId}/quitAll": { "post": { "tags": ["exam-monitoring-controller"], "operationId": "quitAllActiveSEBClients", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/{parentModelId}/notification/{modelId}/{SEBConnectionToken}": { "post": { "tags": ["exam-monitoring-controller"], "operationId": "confirmNotification", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "SEBConnectionToken", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/{parentModelId}/notification/unlock-screens": { "post": { "tags": ["exam-monitoring-controller"], "operationId": "unlockScreens", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "connectionToken": { "type": "string" } }, "required": ["connectionToken"] } } } }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/{parentModelId}/instruction": { "post": { "tags": ["exam-monitoring-controller"], "operationId": "registerInstruction", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientInstruction" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/{parentModelId}/disable-connection": { "post": { "tags": ["exam-monitoring-controller"], "operationId": "disableConnection", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "connectionToken": { "type": "string" } }, "required": ["connectionToken"] } } } }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/testrun/{modelId}": { "post": { "tags": ["exam-monitoring-controller"], "operationId": "toggleTestRunForExam", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}activate-towhall-room": { "post": { "tags": ["exam-proctoring-controller"], "operationId": "activateTownhall", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "subject", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProctoringRoomConnection" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}/reconfiguration-attributes": { "post": { "tags": ["exam-proctoring-controller"], "operationId": "sendReconfigurationAttributes", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "id", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "receive_audio", "in": "query", "required": false, "schema": { "type": "string", "default": "false" } }, { "name": "receive_video", "in": "query", "required": false, "schema": { "type": "string", "default": "false" } }, { "name": "allow_chat", "in": "query", "required": false, "schema": { "type": "string", "default": "false" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}/open": { "post": { "tags": ["exam-proctoring-controller"], "operationId": "openBreakOutRoom", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "subject", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "SEBConnectionToken", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProctoringRoomConnection" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}/notify-open-room": { "post": { "tags": ["exam-proctoring-controller"], "operationId": "notifyProctoringRoomOpened", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "roomName": { "type": "string" } }, "required": ["roomName"] } } } }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}/close": { "post": { "tags": ["exam-proctoring-controller"], "operationId": "closeProctoringRoom", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "roomName", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/{modelId}/inactive": { "post": { "tags": ["lms-setup-controller"], "summary": "Dectivate a single entity by its modelId.", "operationId": "deactivateLmsSetup", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to deactivate.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/{modelId}/active": { "post": { "tags": ["lms-setup-controller"], "summary": "Activate a single entity by its modelId.", "operationId": "activateLmsSetup", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to activate.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution/{modelId}/inactive": { "post": { "tags": ["Institution"], "summary": "Dectivate a single entity by its modelId.", "operationId": "deactivateInstitution", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to deactivate.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution/{modelId}/active": { "post": { "tags": ["Institution"], "summary": "Activate a single entity by its modelId.", "operationId": "activateInstitution", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to activate.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{parentModelId}/sebkeyinfo": { "get": { "tags": ["exam-administration-controller"], "operationId": "getAppSignatureKeyInfo", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AppSignatureKeyInfo" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["exam-administration-controller"], "operationId": "saveAppSignatureKeySettings", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "SIGNATURE_KEY_CHECK_ENABLED": { "type": "boolean" }, "NUMERICAL_TRUST_THRESHOLD": { "type": "integer", "format": "int32" } }, "required": [ "NUMERICAL_TRUST_THRESHOLD", "SIGNATURE_KEY_CHECK_ENABLED" ] } } } }, "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{parentModelId}/grant/{modelId}": { "post": { "tags": ["exam-administration-controller"], "operationId": "grantAppSignatureKey", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "tag": { "type": "string" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecurityKey" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["exam-administration-controller"], "operationId": "deleteSecurityGrant", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityKey" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/screen-proctoring": { "get": { "tags": ["exam-administration-controller"], "operationId": "getScreenProctoringSettings", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScreenProctoringSettings" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["exam-administration-controller"], "operationId": "saveScreenProctoringSettings", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScreenProctoringSettings" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/screen-proctoring/apply-groups": { "post": { "tags": ["exam-administration-controller"], "operationId": "screenProctoringGroupApply", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "spsSEBGroupsSelection", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/screen-proctoring/activation": { "post": { "tags": ["exam-administration-controller"], "operationId": "screenProctoringActivation", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "enableScreenProctoring", "in": "query", "required": true, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/proctoring": { "get": { "tags": ["exam-administration-controller"], "operationId": "getProctoringServiceSettings", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProctoringServiceSettings" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["exam-administration-controller"], "operationId": "saveProctoringServiceSettings", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProctoringServiceSettings" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/seb-settings/{modelId}": { "get": { "tags": ["exam-seb-settings-controller"], "operationId": "getSEBSettings", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "viewType", "in": "query", "required": true, "schema": { "type": "string", "enum": [ "GENERAL", "USER_INTERFACE", "BROWSER", "DOWN_UPLOAD", "EXAM", "APPLICATION", "RESOURCES", "NETWORK", "SECURITY", "REGISTRY", "HOOKED_KEYS", "PROCTORING" ] } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SEBSettingsView" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["exam-seb-settings-controller"], "operationId": "saveSingleValue", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "id": { "type": "integer" }, "value": { "type": "string" } }, "required": ["id", "value"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Value" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/seb-settings/{modelId}/undo-changes": { "post": { "tags": ["exam-seb-settings-controller"], "operationId": "undoChanges", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/seb-settings/{modelId}/table/row": { "post": { "tags": ["exam-seb-settings-controller"], "operationId": "addNewTableRow", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TableRowValues" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["exam-seb-settings-controller"], "operationId": "deleteTableRow", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "name", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "listIndex", "in": "query", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TableRowValues" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/seb-settings/{modelId}/publish": { "post": { "tags": ["exam-seb-settings-controller"], "operationId": "publish", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/{modelId}/copy": { "post": { "tags": ["ExamTemplate"], "summary": "Creates a full copy of the given exam template.", "description": "Copies the exam template together with its configuration template under a generated copy name.", "operationId": "copyExamTemplate", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamTemplate" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/create": { "post": { "tags": ["ExamTemplate"], "summary": "Creates a new exam template with all sub-templates in one call.", "description": "Used by the exam template wizard to create the exam template together with its indicator templates, client group templates and exam attributes at once. If no configuration template is assigned, a default one is created.", "operationId": "fullCreateExamTemplate", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamTemplate" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamTemplate" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/create-config-template": { "post": { "tags": ["ExamTemplate"], "summary": "Creates a temporary configuration template for a new exam template.", "description": "Holds the SEB settings during the exam template wizard; it is renamed to the exam template name as soon as the exam template gets stored.", "operationId": "createTemporaryConfigTemplate", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationNode" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration/undo/{modelId}": { "post": { "tags": ["configuration-controller"], "operationId": "undo", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Configuration" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration/save-to-history/{modelId}": { "post": { "tags": ["configuration-controller"], "operationId": "saveToHistory", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Configuration" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration/restore/{modelId}": { "post": { "tags": ["configuration-controller"], "operationId": "restoreFormHistory", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "parentModelId", "in": "query", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Configuration" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{modelId}/quitpwd": { "post": { "tags": ["configuration-node-controller"], "operationId": "setQuitPassword", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "quitPassword": { "type": "string" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationNode" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{modelId}/import": { "post": { "tags": ["configuration-node-controller"], "operationId": "importExamConfigOnExistingConfig", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "importFilePassword", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "quitPassword", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Configuration" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/import": { "post": { "tags": ["configuration-node-controller"], "operationId": "importExamConfig", "parameters": [ { "name": "name", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "description", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "templateId", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "importFilePassword", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Configuration" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "deprecated": true, "security": [{ "oauth": [] }] } }, "/admin-api/v1/config-template/seb-settings/{modelId}": { "get": { "tags": ["template-seb-settings-controller"], "operationId": "getSEBSettings_1", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "viewType", "in": "query", "required": true, "schema": { "type": "string", "enum": [ "GENERAL", "USER_INTERFACE", "BROWSER", "DOWN_UPLOAD", "EXAM", "APPLICATION", "RESOURCES", "NETWORK", "SECURITY", "REGISTRY", "HOOKED_KEYS", "PROCTORING" ] } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SEBSettingsView" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["template-seb-settings-controller"], "operationId": "saveSingleValue_1", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "id": { "type": "integer" }, "value": { "type": "string" } }, "required": ["id", "value"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Value" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/config-template/seb-settings/{modelId}/undo-changes": { "post": { "tags": ["template-seb-settings-controller"], "operationId": "undoChanges_1", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/config-template/seb-settings/{modelId}/table/row": { "post": { "tags": ["template-seb-settings-controller"], "operationId": "addNewTableRow_1", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TableRowValues" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["template-seb-settings-controller"], "operationId": "deleteTableRow_1", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "name", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "listIndex", "in": "query", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TableRowValues" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/config-template/seb-settings/{modelId}/publish": { "post": { "tags": ["template-seb-settings-controller"], "operationId": "publish_1", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/{modelId}/inactive": { "post": { "tags": ["seb-client-config-controller"], "summary": "Dectivate a single entity by its modelId.", "operationId": "deactivateSEBClientConfig", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to deactivate.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/{modelId}/active": { "post": { "tags": ["seb-client-config-controller"], "summary": "Activate a single entity by its modelId.", "operationId": "activateSEBClientConfig", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to activate.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/certificate": { "get": { "tags": ["certificate-controller"], "operationId": "getCertificates", "parameters": [ { "name": "alias", "in": "query", "description": "Filters certificates by alias.", "schema": { "type": "string" } }, { "name": "type", "in": "query", "description": "Filters certificates by certificate type.", "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "page_number", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageCertificateInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "post": { "tags": ["certificate-controller"], "operationId": "importCertificate", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "importFile", "in": "header", "description": "File name of the imported certificate; the extension selects PEM (.pem/.crt/.cer) or PKCS12 (.p12/.pfx).", "required": true, "schema": { "type": "string" } }, { "name": "alias", "in": "header", "description": "Alias for the imported certificate; extracted from the certificate if omitted.", "required": false, "schema": { "type": "string" } }, { "name": "importFilePassword", "in": "header", "description": "Password used to unlock a PKCS12 keystore.", "required": false, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CertificateInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["certificate-controller"], "operationId": "deleteCertificate", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "alias": { "type": "string" } }, "required": ["alias"] } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityKey" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/archive": { "patch": { "tags": ["exam-administration-controller"], "operationId": "archive", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{parentModelId}/template-attribute/{modelId}/reset": { "patch": { "tags": ["configuration-node-controller"], "operationId": "resetTemplateAttributeValues", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "integer" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateAttribute" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{parentModelId}/template-attribute/{modelId}/remove-orientation": { "patch": { "tags": ["configuration-node-controller"], "operationId": "removeTemplateAttributeOrientation", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "integer" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateAttribute" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{parentModelId}/template-attribute/{modelId}/attach-default-orientation": { "patch": { "tags": ["configuration-node-controller"], "operationId": "attachDefaultTemplateAttributeOrientation", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "viewId": { "type": "integer" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateAttribute" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "deprecated": true, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{modelId}/reset-to-template": { "patch": { "tags": ["configuration-node-controller"], "operationId": "resetToTemplateValues", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationNode" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/exam-api/v1/examconfig": { "get": { "tags": ["exam-api-_-v-1_-controller"], "operationId": "getConfig", "parameters": [ { "name": "SEBConnectionToken", "in": "header", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "SEBOAuth": [] }] } }, "/exam-api/discovery": { "get": { "tags": ["exam-api-discovery-controller"], "operationId": "getDiscovery", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamAPIDiscovery" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } } } }, "/admin-api/v1/useractivity/{modelId}": { "get": { "tags": ["user-activity-log-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getUserActivityLogById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserActivityLog" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["user-activity-log-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteUserActivityLog", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useractivity/{modelId}/dependency": { "get": { "tags": ["user-activity-log-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getUserActivityLogDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useractivity/names": { "get": { "tags": ["user-activity-log-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getUserActivityLogNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useractivity/list": { "get": { "tags": ["user-activity-log-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getUserActivityLogsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserActivityLog" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/{modelId}": { "get": { "tags": ["UserAccount"], "summary": "Get a single entity by its modelId.", "operationId": "getUserAccountById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["UserAccount"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteUserAccount", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/{modelId}/dependency": { "get": { "tags": ["UserAccount"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getUserAccountDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/supervisors": { "get": { "tags": ["UserAccount"], "summary": "Get active supporter user names", "description": "Returns active EXAM_SUPPORTER user account names for the given institution.", "operationId": "getUserAccountSupervisors", "parameters": [ { "name": "institutionId", "in": "query", "description": "Institution identifier. Defaults to the current user's institution.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Active supporter user names.", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/names": { "get": { "tags": ["UserAccount"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getUserAccountNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/me": { "get": { "tags": ["UserAccount"], "summary": "Get the current user account", "operationId": "getCurrentUserAccount", "responses": { "200": { "description": "Current user account.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/me/gui-abilities": { "get": { "tags": ["UserAccount"], "summary": "Get the effective GUI abilities of the current user", "description": "GUI components and actions merged over the current user's roles. Presentation configuration for the GUI only; the webservice authorizes every request independently.", "operationId": "getCurrentUserGuiAbilities", "responses": { "200": { "description": "The effective GUI abilities of the current user.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GuiAbilities" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/list": { "get": { "tags": ["UserAccount"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getUserAccountsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserInfo" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/inactive": { "get": { "tags": ["UserAccount"], "summary": "Get a page of all specific domain entity that are currently inactive.", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n", "operationId": "getInactiveUserAccounts", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageUserInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/active": { "get": { "tags": ["UserAccount"], "summary": "Get a page of all specific domain entity that are currently active.", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n", "operationId": "getActiveUserAccounts", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageUserInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-version-info": { "get": { "tags": ["seb-version-controller"], "operationId": "sebVersionInfoPage", "responses": { "200": { "description": "OK", "content": { "text/html": { "schema": { "type": "string" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } } } }, "/admin-api/v1/seb-client-event/{modelId}": { "get": { "tags": ["client-event-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getClientEventById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientEvent" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["client-event-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteClientEvent", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-event/{modelId}/dependency": { "get": { "tags": ["client-event-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getClientEventDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-event/search": { "get": { "tags": ["client-event-controller"], "summary": "Get a page of ExtendedClientEvent. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getExtendedPage", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } }, { "name": "filterCriteria", "in": "query", "description": "Additional filter criterias \nFor OpenAPI 3 input please use the form: {\"columnName\":\"filterValue\"}", "required": true, "schema": { "$ref": "#/components/schemas/MultiValueMapStringString" }, "example": {} } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageExtendedClientEvent" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-event/names": { "get": { "tags": ["client-event-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getClientEventNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-event/list": { "get": { "tags": ["client-event-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getClientEventsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ClientEvent" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-event/export": { "get": { "tags": ["client-event-controller"], "operationId": "exportEvents", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "exportType", "in": "query", "required": true, "schema": { "type": "string", "enum": ["CSV"] } }, { "name": "includeConnectionDetails", "in": "query", "required": false, "schema": { "type": "boolean", "default": true } }, { "name": "includeExamDetails", "in": "query", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "allRequestParams", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/MultiValueMapStringString" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-connection/{modelId}": { "get": { "tags": ["client-connection-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getClientConnectionById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientConnection" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["client-connection-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteClientConnection", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-connection/{modelId}/dependency": { "get": { "tags": ["client-connection-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getClientConnectionDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-connection/names": { "get": { "tags": ["client-connection-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getClientConnectionNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-connection/list": { "get": { "tags": ["client-connection-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getClientConnectionsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ClientConnection" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-connection/data": { "get": { "tags": ["client-connection-controller"], "summary": "Get a page of ClientConnectionData domain entity. Sorting and filtering is applied before paging", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getClientConnectionDataPage", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } }, { "name": "filterCriteria", "in": "query", "description": "Additional filter criterias \nFor OpenAPI 3 input please use the form: {\"columnName\":\"filterValue\"}", "required": true, "schema": { "$ref": "#/components/schemas/MultiValueMapStringString" }, "example": {} } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageClientConnectionData" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-connection/data/{modelId}": { "get": { "tags": ["client-connection-controller"], "operationId": "getClientConnectionDataBy", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientConnectionData" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/scheduled-delete/{modelId}": { "get": { "tags": ["ScheduledDelete"], "summary": "Gets the full report of the given scheduled deletion, including the affected exams.", "operationId": "getScheduledDeleteReport", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduledDeleteReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["ScheduledDelete"], "summary": "Deletes (cancels) the given pending scheduled deletion.", "operationId": "deleteScheduledDelete", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityKey" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/quiz": { "get": { "tags": ["Quiz"], "summary": "Gets a page of quizzes discovered on an assessment tool (LMS).", "description": "The quiz lookup runs asynchronously on the LMS: while the returned page's 'complete' flag is false, only a partial result set is available and the same page should be polled again.", "operationId": "getQuizzes", "parameters": [ { "name": "name", "in": "query", "description": "Filters quizzes by name.", "schema": { "type": "string" } }, { "name": "start_timestamp_millis", "in": "query", "description": "Filters quizzes by start time; unix timestamp in milliseconds.", "schema": { "type": "integer" } }, { "name": "lms_setup", "in": "query", "description": "Identifier of the assessment tool (LMS setup) to discover quizzes on.", "schema": { "type": "integer" } }, { "name": "force_new_search", "in": "query", "description": "Forces a new LMS lookup instead of serving the cached result of the previous search.", "schema": { "type": "boolean" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "page_number", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageQuizData" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/{modelId}": { "get": { "tags": ["orientation-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getOrientationById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Orientation" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["orientation-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteOrientation", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/{modelId}/dependency": { "get": { "tags": ["orientation-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getOrientationDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/view/{modelId}": { "get": { "tags": ["view-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getViewById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/View" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["view-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteView", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/view/{modelId}/dependency": { "get": { "tags": ["view-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getViewDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/view/names": { "get": { "tags": ["view-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getViewNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/view/list": { "get": { "tags": ["view-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getViewsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/View" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/names": { "get": { "tags": ["orientation-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getOrientationNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/list": { "get": { "tags": ["orientation-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getOrientationsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Orientation" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring": { "get": { "tags": ["exam-monitoring-controller"], "operationId": "getExamMonitorings", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "page_number", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "allRequestParams", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/MultiValueMapStringString" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageExam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/{parentModelId}": { "get": { "tags": ["exam-monitoring-controller"], "operationId": "getConnectionData", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "hidden-states", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "hidden-client-group", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "hidden-issues", "in": "header", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ClientConnectionData" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/{parentModelId}/{SEBConnectionToken}": { "get": { "tags": ["exam-monitoring-controller"], "operationId": "getConnectionDataForSingleConnection", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "SEBConnectionToken", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientConnectionData" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/{parentModelId}/signature/{modelId}": { "get": { "tags": ["exam-monitoring-controller"], "operationId": "getAppSignatureKey", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecurityKey" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/{parentModelId}/notification/{SEBConnectionToken}": { "get": { "tags": ["exam-monitoring-controller"], "operationId": "pendingNotifications", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "SEBConnectionToken", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ClientNotification" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/{parentModelId}/fullpage": { "get": { "tags": ["exam-monitoring-controller"], "operationId": "getFullMonitoringPageData", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "hidden-states", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "hidden-client-group", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "hidden-issues", "in": "header", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MonitoringFullPageData" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}towhall-room-data": { "get": { "tags": ["exam-proctoring-controller"], "operationId": "getTownhallRoom", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RemoteProctoringRoom" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}towhall-available": { "get": { "tags": ["exam-proctoring-controller"], "operationId": "isTownhallRoomAvialbale", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}": { "get": { "tags": ["exam-proctoring-controller"], "operationId": "getProctorRoomConnection", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "roomName", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "subject", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProctoringRoomConnection" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}/screenproctoring-groups": { "get": { "tags": ["exam-proctoring-controller"], "operationId": "getScreenProctoringGroupsOfExam", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ScreenProctoringGroup" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}/room-connections": { "get": { "tags": ["exam-proctoring-controller"], "operationId": "getAllClientConnectionsInRoom", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "id", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ClientConnection" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/proctoring/{modelId}/collecting-rooms": { "get": { "tags": ["exam-proctoring-controller"], "operationId": "getCollectingRoomsOfExam", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RemoteProctoringRoom" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/overview/{modelId}": { "get": { "tags": ["exam-monitoring-controller"], "operationId": "getOverviewData", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamMonitoringOverviewData" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/finishedexams": { "get": { "tags": ["exam-monitoring-controller"], "operationId": "getFinishedExamsPage", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "page_number", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "allRequestParams", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/MultiValueMapStringString" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageExam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/monitoring/connections/{modelId}": { "get": { "tags": ["exam-monitoring-controller"], "operationId": "getMonitoringExamListData", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "show-all", "in": "header", "required": false, "schema": { "type": "boolean" } }, { "name": "show-states", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "show-client-groups", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "show-indicators", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "show-notifications", "in": "header", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MonitoringFullPageData" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/{modelId}": { "get": { "tags": ["lms-setup-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getLmsSetupById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LmsSetup" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["lms-setup-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteLmsSetup", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/{modelId}/dependency": { "get": { "tags": ["lms-setup-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getLmsSetupDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/test/{modelId}": { "get": { "tags": ["lms-setup-controller"], "operationId": "testLms", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LmsSetupTestResult" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/names": { "get": { "tags": ["lms-setup-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getLmsSetupNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/list": { "get": { "tags": ["lms-setup-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getLmsSetupsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LmsSetup" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/inactive": { "get": { "tags": ["lms-setup-controller"], "summary": "Get a page of all specific domain entity that are currently inactive.", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n", "operationId": "getInactiveLmsSetups", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageLmsSetup" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/active": { "get": { "tags": ["lms-setup-controller"], "summary": "Get a page of all specific domain entity that are currently active.", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n", "operationId": "getActiveLmsSetups", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageLmsSetup" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution/{modelId}": { "get": { "tags": ["Institution"], "summary": "Get a single entity by its modelId.", "operationId": "getInstitutionById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Institution" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["Institution"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteInstitution", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution/{modelId}/dependency": { "get": { "tags": ["Institution"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getInstitutionDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution/self": { "get": { "tags": ["Institution"], "summary": "Get the current user's own institution", "description": "Returns the institution the currently authenticated user belongs to.", "operationId": "getInstitutionSelf", "responses": { "200": { "description": "The current user's institution.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Institution" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution/names": { "get": { "tags": ["Institution"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getInstitutionNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution/list": { "get": { "tags": ["Institution"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getInstitutionsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Institution" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution/inactive": { "get": { "tags": ["Institution"], "summary": "Get a page of all specific domain entity that are currently inactive.", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n", "operationId": "getInactiveInstitutions", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageInstitution" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution/active": { "get": { "tags": ["Institution"], "summary": "Get a page of all specific domain entity that are currently active.", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n", "operationId": "getActiveInstitutions", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageInstitution" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/info/institution": { "get": { "tags": ["Info"], "summary": "Gets the names of all active institutions for selection.", "description": "Publicly reachable; it backs the institution selection of the self-registration page.", "operationId": "getInstitutionInfo", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } } } }, "/admin-api/v1/indicator/{modelId}": { "get": { "tags": ["indicator-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getIndicatorById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Indicator" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["indicator-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteIndicator", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/indicator/{modelId}/dependency": { "get": { "tags": ["indicator-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getIndicatorDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/indicator/names": { "get": { "tags": ["indicator-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getIndicatorNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/indicator/list": { "get": { "tags": ["indicator-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getIndicatorsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Indicator" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{parentModelId}/grant": { "get": { "tags": ["exam-administration-controller"], "operationId": "getSecurityKeyEntries", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityKey" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}": { "get": { "tags": ["exam-administration-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getExamAdministrationById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Exam" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["exam-administration-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteExamAdministration", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/followup": { "get": { "tags": ["exam-administration-controller"], "operationId": "getExamKeysForFollowup", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/dependency": { "get": { "tags": ["exam-administration-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getExamAdministrationDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/check-seb-restriction": { "get": { "tags": ["exam-administration-controller"], "operationId": "checkSEBRestriction", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "boolean" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/check-imported": { "get": { "tags": ["exam-administration-controller"], "operationId": "checkImported", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityKey" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/check-consistency": { "get": { "tags": ["exam-administration-controller"], "operationId": "checkExamConsistency", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "include-restriction", "in": "query", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/APIMessage" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/chapters": { "get": { "tags": ["exam-administration-controller"], "operationId": "getChapters", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Chapters" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/seb-settings/{modelId}/table": { "get": { "tags": ["exam-seb-settings-controller"], "operationId": "getTableValues", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "name", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TableRowValues" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/seb-settings/{modelId}/examConfigMapping": { "get": { "tags": ["exam-seb-settings-controller"], "operationId": "getExamConfigMappings", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamConfigurationMap" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/seb-settings/{modelId}/active-seb-clients": { "get": { "tags": ["exam-seb-settings-controller"], "operationId": "getActiveSEBClients", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "integer", "format": "int32" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/names": { "get": { "tags": ["exam-administration-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getExamAdministrationNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/list": { "get": { "tags": ["exam-administration-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getExamAdministrationsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Exam" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/{modelId}": { "get": { "tags": ["ExamTemplate"], "summary": "Get a single entity by its modelId.", "operationId": "getExamTemplateById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamTemplate" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["ExamTemplate"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteExamTemplate", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/{modelId}/screen-proctoring": { "get": { "tags": ["ExamTemplate"], "summary": "Gets the screen proctoring settings of the given exam template.", "operationId": "getExamTemplateScreenProctoringSettings", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScreenProctoringSettings" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/{modelId}/dependency": { "get": { "tags": ["ExamTemplate"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getExamTemplateDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/names": { "get": { "tags": ["ExamTemplate"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getExamTemplateNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/list": { "get": { "tags": ["ExamTemplate"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getExamTemplatesByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ExamTemplate" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-configuration-map/{modelId}": { "get": { "tags": ["exam-configuration-mapping-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getExamConfigurationMappingById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExamConfigurationMap" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["exam-configuration-mapping-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteExamConfigurationMapping", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-configuration-map/{modelId}/dependency": { "get": { "tags": ["exam-configuration-mapping-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getExamConfigurationMappingDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-configuration-map/names": { "get": { "tags": ["exam-configuration-mapping-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getExamConfigurationMappingNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-configuration-map/list": { "get": { "tags": ["exam-configuration-mapping-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getExamConfigurationMappingsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ExamConfigurationMap" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_value/{modelId}": { "get": { "tags": ["configuration-value-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getConfigurationValueById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationValue" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["configuration-value-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteConfigurationValue", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_value/{modelId}/dependency": { "get": { "tags": ["configuration-value-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getConfigurationValueDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_value/names": { "get": { "tags": ["configuration-value-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getConfigurationValueNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_value/list": { "get": { "tags": ["configuration-value-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getConfigurationValuesByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigurationValue" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_attribute/{modelId}": { "get": { "tags": ["configuration-attribute-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getConfigurationAttributeById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationAttribute" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["configuration-attribute-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteConfigurationAttribute", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_attribute/{modelId}/dependency": { "get": { "tags": ["configuration-attribute-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getConfigurationAttributeDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_attribute/names": { "get": { "tags": ["configuration-attribute-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getConfigurationAttributeNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_attribute/list": { "get": { "tags": ["configuration-attribute-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getConfigurationAttributesByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigurationAttribute" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration/{modelId}": { "get": { "tags": ["configuration-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getConfigurationById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Configuration" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["configuration-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteConfiguration", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration/{modelId}/dependency": { "get": { "tags": ["configuration-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getConfigurationDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration/names": { "get": { "tags": ["configuration-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getConfigurationNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration/list": { "get": { "tags": ["configuration-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getConfigurationsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Configuration" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{parentModelId}/template-attribute": { "get": { "tags": ["configuration-node-controller"], "operationId": "getTemplateAttributePage", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "page_number", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "allRequestParams", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/MultiValueMapStringString" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageTemplateAttribute" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{parentModelId}/template-attribute/{modelId}": { "get": { "tags": ["configuration-node-controller"], "operationId": "getTemplateAttribute", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateAttribute" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{modelId}": { "get": { "tags": ["configuration-node-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getConfigurationNodeById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurationNode" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["configuration-node-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteConfigurationNode", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{modelId}/settings_published": { "get": { "tags": ["configuration-node-controller"], "operationId": "settingsPublished", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingsPublished" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{modelId}/followup": { "get": { "tags": ["configuration-node-controller"], "operationId": "getFollowup", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Configuration" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{modelId}/downloadSettings": { "get": { "tags": ["configuration-node-controller"], "operationId": "downloadPlainXMLConfig", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{modelId}/dependency": { "get": { "tags": ["configuration-node-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getConfigurationNodeDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{modelId}/configkey": { "get": { "tags": ["configuration-node-controller"], "operationId": "getConfigKey", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "followup", "in": "query", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigKey" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/names": { "get": { "tags": ["configuration-node-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getConfigurationNodeNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/list": { "get": { "tags": ["configuration-node-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getConfigurationNodesByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigurationNode" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/config-template/seb-settings/{modelId}/table": { "get": { "tags": ["template-seb-settings-controller"], "operationId": "getTableValues_1", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "name", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TableRowValues" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/{modelId}": { "get": { "tags": ["seb-client-config-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getSEBClientConfigById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SEBClientConfig" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["seb-client-config-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteSEBClientConfig", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/{modelId}/dependency": { "get": { "tags": ["seb-client-config-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getSEBClientConfigDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/names": { "get": { "tags": ["seb-client-config-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getSEBClientConfigNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/list": { "get": { "tags": ["seb-client-config-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getSEBClientConfigsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SEBClientConfig" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/inactive": { "get": { "tags": ["seb-client-config-controller"], "summary": "Get a page of all specific domain entity that are currently inactive.", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n", "operationId": "getInactiveSEBClientConfigs", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageSEBClientConfig" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/download/{modelId}": { "get": { "tags": ["seb-client-config-controller"], "operationId": "downloadSEBConfig", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "id", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK" }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/credentials/{modelId}": { "get": { "tags": ["seb-client-config-controller"], "operationId": "getClientCredentials", "parameters": [ { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientCredentials" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/active": { "get": { "tags": ["seb-client-config-controller"], "summary": "Get a page of all specific domain entity that are currently active.", "description": "Sorting: the sort parameter to sort the list of entities before paging\nthe sort parameter is the name of the entity-model attribute to sort with a leading '-' sign for\ndescending sort order. Note that not all entity-model attribute are suited for sorting while the most\nare.\n", "operationId": "getActiveSEBClientConfigs", "parameters": [ { "name": "page_number", "in": "query", "description": "The number of the page to get from the whole list. If the page does not exists, the API retruns with the first page.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_size", "in": "query", "description": "The size of the page to get.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "the sort parameter to sort the list of entities before paging", "required": false, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageSEBClientConfig" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client-group/{modelId}": { "get": { "tags": ["client-group-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getClientGroupById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientGroup" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["client-group-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteClientGroup", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client-group/{modelId}/dependency": { "get": { "tags": ["client-group-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getClientGroupDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client-group/names": { "get": { "tags": ["client-group-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getClientGroupNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client-group/list": { "get": { "tags": ["client-group-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getClientGroupsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ClientGroup" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/certificate/{alias}": { "get": { "tags": ["certificate-controller"], "operationId": "getAlias", "parameters": [ { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "alias", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CertificateInfo" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/certificate/names": { "get": { "tags": ["certificate-controller"], "operationId": "getCertificateNames", "parameters": [ { "name": "alias", "in": "query", "description": "Filters certificates by alias.", "schema": { "type": "string" } }, { "name": "type", "in": "query", "description": "Filters certificates by certificate type.", "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/batch-action/{modelId}": { "get": { "tags": ["batch-action-controller"], "summary": "Get a single entity by its modelId.", "operationId": "getBatchActionById", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BatchAction" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] }, "delete": { "tags": ["batch-action-controller"], "summary": "Deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "deleteBatchAction", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/batch-action/{modelId}/dependency": { "get": { "tags": ["batch-action-controller"], "summary": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.", "description": "Get a list of dependency keys of all dependent entity objects for a specified source entity and bulk action.\n This can be used to verify depended objects for a certain bulk action to give a report of affected objects beforehand.\n For example for a delete action of a certain object, this gives all objects that will also be deleted within the deletion of the source object", "operationId": "getBatchActionDependencies", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the source entity object to geht the dependencies for.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionType", "in": "query", "description": "The bulk action type defining the type of action to get the dependencies for.\nThis is the name of the enumeration ", "required": true, "schema": { "type": "string", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"] } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityDependency" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/batch-action/names": { "get": { "tags": ["batch-action-controller"], "summary": "Get a filtered list of specific entity name keys.", "description": "An entity name key is a minimal entity data object with the entity-type, modelId and the name of the entity.

\nFilter: The filter attributes accepted by this API depend on the actual entity model (domain object)\nand are of the form [domain-attribute-name]=[filter-value]. E.g.: name=abc or type=EXAM. Usually\nfilter attributes of text type are treated as SQL wildcard with %[text]% to filter all text containing\na given text-snippet.", "operationId": "getBatchActionNames", "parameters": [ { "name": "institutionId", "in": "query", "description": "The institution identifier of the request.\nDefault is the institution identifier of the institution of the current user", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EntityName" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/batch-action/list": { "get": { "tags": ["batch-action-controller"], "summary": "Get a list of entity objects by a given list of model identifiers of entities.", "operationId": "getBatchActionsByIds", "parameters": [ { "name": "modelIds", "in": "query", "description": "Comma separated list of model identifiers.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BatchAction" } } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useractivity/{modelId}/force": { "delete": { "tags": ["user-activity-log-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteUserActivityLog", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/useraccount/{modelId}/force": { "delete": { "tags": ["UserAccount"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteUserAccount", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-event/{modelId}/force": { "delete": { "tags": ["client-event-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteClientEvent", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/seb-client-connection/{modelId}/force": { "delete": { "tags": ["client-connection-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteClientConnection", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/{modelId}/force": { "delete": { "tags": ["orientation-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteOrientation", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/orientation/view/{modelId}/force": { "delete": { "tags": ["view-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteView", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/lms-setup/{modelId}/force": { "delete": { "tags": ["lms-setup-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteLmsSetup", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/institution/{modelId}/force": { "delete": { "tags": ["Institution"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteInstitution", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/indicator/{modelId}/force": { "delete": { "tags": ["indicator-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteIndicator", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam/{modelId}/force": { "delete": { "tags": ["exam-administration-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteExamAdministration", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/{parentModelId}/indicator/{modelId}": { "delete": { "tags": ["ExamTemplate"], "summary": "Deletes the given indicator template of the given exam template.", "operationId": "deleteIndicatorTemplate", "parameters": [ { "name": "parentModelId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "modelId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "institutionId", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityKey" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-template/{modelId}/force": { "delete": { "tags": ["ExamTemplate"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteExamTemplate", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/exam-configuration-map/{modelId}/force": { "delete": { "tags": ["exam-configuration-mapping-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteExamConfigurationMapping", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_value/{modelId}/force": { "delete": { "tags": ["configuration-value-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteConfigurationValue", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration_attribute/{modelId}/force": { "delete": { "tags": ["configuration-attribute-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteConfigurationAttribute", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration/{modelId}/force": { "delete": { "tags": ["configuration-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteConfiguration", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/configuration-node/{modelId}/force": { "delete": { "tags": ["configuration-node-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteConfigurationNode", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client_configuration/{modelId}/force": { "delete": { "tags": ["seb-client-config-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteSEBClientConfig", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/client-group/{modelId}/force": { "delete": { "tags": ["client-group-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteClientGroup", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } }, "/admin-api/v1/batch-action/{modelId}/force": { "delete": { "tags": ["batch-action-controller"], "summary": "Force deletes a single entity (and all its dependencies) by its modelId.", "description": "To check or report what dependent object also would be deleted for a certain entity object, please use the dependency endpoint to get a report of all dependent entity objects.", "operationId": "forceDeleteBatchAction", "parameters": [ { "name": "modelId", "in": "path", "description": "The model identifier of the entity object to get.", "required": true, "schema": { "type": "string" } }, { "name": "bulkActionAddIncludes", "in": "query", "description": "Indicates if the following 'includes' parameter shall be processed or not.\n The default is false ", "required": false, "schema": { "type": "boolean", "default": false } }, { "name": "bulkActionIncludes", "in": "query", "description": "A comma separated list of names of the EntityType enumeration that defines all entity types that shall be included in the result.", "required": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": {} } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityProcessingReport" } } } }, "400": { "$ref": "#/components/responses/Error400BadRequest" }, "401": { "$ref": "#/components/responses/Error401Unauthorized" }, "403": { "$ref": "#/components/responses/Error403Forbidden" }, "404": { "$ref": "#/components/responses/Error404NotFound" }, "429": { "$ref": "#/components/responses/Error429TooManyRequests" }, "500": { "$ref": "#/components/responses/Error500InternalServerError" } }, "security": [{ "oauth": [] }] } } }, "components": { "schemas": { "UserActivityLog": { "type": "object", "properties": { "id": { "type": "integer" }, "userUuid": { "type": "string" }, "username": { "type": "string" }, "timestamp": { "type": "integer" }, "activityType": { "type": "string", "enum": [ "REGISTER", "CREATE", "IMPORT", "EXPORT", "MODIFY", "PASSWORD_CHANGE", "DEACTIVATE", "ACTIVATE", "FINISHED", "DELETE", "LOGIN", "LOGOUT", "ARCHIVE", "REGISTER_INSTRUCTION" ] }, "entityType": { "type": "string", "enum": [ "CONFIGURATION_ATTRIBUTE", "CONFIGURATION_VALUE", "VIEW", "ORIENTATION", "CONFIGURATION", "CONFIGURATION_NODE", "EXAM_CONFIGURATION_MAP", "EXAM", "EXAM_SEB_RESTRICTION", "EXAM_PROCTOR_DATA", "CLIENT_CONNECTION", "REMOTE_PROCTORING_ROOM", "SCREEN_PROCTORING_GROUP", "CLIENT_EVENT", "CLIENT_INSTRUCTION", "INDICATOR", "THRESHOLD", "INSTITUTION", "SEB_CLIENT_CONFIGURATION", "LMS_SETUP", "USER", "USER_ROLE", "USER_ACTIVITY_LOG", "ADDITIONAL_ATTRIBUTES", "WEBSERVICE_SERVER_INFO", "CERTIFICATE", "EXAM_TEMPLATE", "BATCH_ACTION", "CLIENT_INDICATOR", "CLIENT_NOTIFICATION", "CLIENT_GROUP", "SEB_SECURITY_KEY_REGISTRY", "ENTITY_PRIVILEGE", "FEATURE_PRIVILEGE", "SCHEDULED_DELETE", "SCHEDULED_DELETE_INFO", "CONFIGURATION_ATTRIBUTE_DEPRECATION" ] }, "entityId": { "type": "string" }, "message": { "type": "string" } } }, "EntityPrivilege": { "type": "object", "description": "Entity-level privilege assigned to a user account.", "properties": { "id": { "type": "integer", "description": "Privilege record identifier.", "example": 42 }, "entityType": { "type": "string", "description": "Entity type this privilege applies to.", "enum": [ "CONFIGURATION_ATTRIBUTE", "CONFIGURATION_VALUE", "VIEW", "ORIENTATION", "CONFIGURATION", "CONFIGURATION_NODE", "EXAM_CONFIGURATION_MAP", "EXAM", "EXAM_SEB_RESTRICTION", "EXAM_PROCTOR_DATA", "CLIENT_CONNECTION", "REMOTE_PROCTORING_ROOM", "SCREEN_PROCTORING_GROUP", "CLIENT_EVENT", "CLIENT_INSTRUCTION", "INDICATOR", "THRESHOLD", "INSTITUTION", "SEB_CLIENT_CONFIGURATION", "LMS_SETUP", "USER", "USER_ROLE", "USER_ACTIVITY_LOG", "ADDITIONAL_ATTRIBUTES", "WEBSERVICE_SERVER_INFO", "CERTIFICATE", "EXAM_TEMPLATE", "BATCH_ACTION", "CLIENT_INDICATOR", "CLIENT_NOTIFICATION", "CLIENT_GROUP", "SEB_SECURITY_KEY_REGISTRY", "ENTITY_PRIVILEGE", "FEATURE_PRIVILEGE", "SCHEDULED_DELETE", "SCHEDULED_DELETE_INFO", "CONFIGURATION_ATTRIBUTE_DEPRECATION" ], "example": "EXAM" }, "entityId": { "type": "integer", "description": "Entity identifier this privilege applies to.", "example": 120 }, "userUuid": { "type": "string", "description": "User UUID that owns this privilege.", "example": "f91f9c0a-15a1-4c65-89c2-2b60310f2c12" }, "privilegeType": { "type": "string", "description": "Assigned privilege type.", "enum": ["NONE", "ASSIGNED", "READ", "MODIFY", "WRITE"], "example": "READ" } } }, "FeaturePrivilege": { "type": "object", "properties": { "id": { "type": "integer" }, "featureId": { "type": "integer" }, "userUuid": { "type": "string" } } }, "UserInfo": { "type": "object", "description": "User account read and update model.", "properties": { "uuid": { "type": "string", "description": "User UUID.", "example": "f91f9c0a-15a1-4c65-89c2-2b60310f2c12" }, "institutionId": { "type": "integer", "description": "Institution identifier the user belongs to.", "example": 1 }, "creationDate": { "type": "string", "format": "date-time", "description": "Creation timestamp." }, "name": { "type": "string", "description": "First name of the user.", "example": "Ada", "maxLength": 255, "minLength": 0 }, "surname": { "type": "string", "description": "Surname of the user.", "example": "Lovelace", "maxLength": 255, "minLength": 0 }, "username": { "type": "string", "description": "Login username.", "example": "ada.lovelace", "maxLength": 255, "minLength": 3 }, "email": { "type": "string", "format": "email", "description": "User email address.", "example": "ada@example.org" }, "active": { "type": "boolean", "description": "Whether the user account is active.", "example": true }, "directLogin": { "type": "boolean", "description": "Whether direct login is enabled for this account.", "example": true }, "localAccount": { "type": "boolean", "description": "Whether this is a local SEB Server account.", "example": true }, "language": { "type": "string", "description": "User locale.", "example": "en" }, "timezone": { "type": "string", "description": "User time zone.", "example": "Europe/Zurich" }, "userRoles": { "type": "array", "items": { "type": "string", "enum": [ "SEB_SERVER_ADMIN", "INSTITUTIONAL_ADMIN", "EXAM_ADMIN", "EXAM_SUPPORTER", "TEACHER" ] }, "minItems": 1, "uniqueItems": true }, "entityPrivileges": { "type": "array", "description": "Entity-level privileges assigned to the user.", "items": { "$ref": "#/components/schemas/EntityPrivilege" } }, "featurePrivileges": { "type": "array", "items": { "$ref": "#/components/schemas/FeaturePrivilege" } } }, "required": [ "active", "institutionId", "language", "name", "surname", "timezone", "userRoles", "username", "uuid" ] }, "PasswordChange": { "type": "object", "description": "Request model for changing a user account password.", "properties": { "uuid": { "type": "string", "description": "User UUID whose password is changed.", "example": "f91f9c0a-15a1-4c65-89c2-2b60310f2c12" }, "password": { "type": "string", "format": "password", "description": "Current password.", "minLength": 1 }, "newPassword": { "type": "string", "format": "password", "description": "New password.", "maxLength": 255, "minLength": 8 }, "confirmNewPassword": { "type": "string", "format": "password", "description": "Repeated new password.", "minLength": 1 } }, "required": [ "confirmNewPassword", "newPassword", "password", "uuid" ] }, "ClientEvent": { "type": "object", "properties": { "id": { "type": "integer" }, "clientConnectionId": { "type": "integer" }, "type": { "type": "string", "enum": [ "UNKNOWN", "DEBUG_LOG", "INFO_LOG", "WARN_LOG", "ERROR_LOG", "NOTIFICATION", "NOTIFICATION_CONFIRMED" ] }, "timestamp": { "type": "integer" }, "serverTime": { "type": "integer" }, "numericValue": { "type": "number", "format": "double" }, "text": { "type": "string" }, "value": { "type": "number", "format": "double" } } }, "ClientConnection": { "type": "object", "properties": { "id": { "type": "integer" }, "institutionId": { "type": "integer" }, "examId": { "type": "integer" }, "status": { "type": "string", "enum": [ "UNDEFINED", "CONNECTION_REQUESTED", "READY", "ACTIVE", "CLOSED", "DISABLED" ] }, "connectionToken": { "type": "string" }, "examUserSessionId": { "type": "string" }, "seb_info": { "type": "string" }, "clientAddress": { "type": "string" }, "clientOsName": { "type": "string" }, "clientVersion": { "type": "string" }, "securityCheckGranted": { "type": "boolean" }, "clientVersionGranted": { "type": "boolean" } } }, "Orientation": { "type": "object", "properties": { "id": { "type": "integer" }, "configAttributeId": { "type": "integer" }, "templateId": { "type": "integer" }, "viewId": { "type": "integer" }, "groupId": { "type": "string" }, "xPosition": { "type": "integer", "format": "int32" }, "yPosition": { "type": "integer", "format": "int32" }, "width": { "type": "integer", "format": "int32" }, "height": { "type": "integer", "format": "int32" }, "title": { "type": "string", "enum": [ "NONE", "LEFT", "LEFT_SPAN", "RIGHT", "RIGHT_SPAN", "TOP" ] } }, "required": ["configAttributeId"] }, "View": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "columns": { "type": "integer", "format": "int32" }, "position": { "type": "integer", "format": "int32" }, "templateId": { "type": "integer" } }, "required": ["columns", "position"] }, "LmsSetup": { "type": "object", "properties": { "id": { "type": "integer" }, "institutionId": { "type": "integer" }, "name": { "type": "string", "maxLength": 255, "minLength": 3 }, "lmsType": { "type": "string", "enum": [ "MOCKUP", "OPEN_EDX", "MOODLE", "MOODLE_PLUGIN", "ANS_DELFT", "OPEN_OLAT" ] }, "lmsClientname": { "type": "string" }, "lmsClientsecret": { "type": "string" }, "lmsUrl": { "type": "string" }, "lmsRestApiToken": { "type": "string" }, "lmsProxyHost": { "type": "string" }, "lmsProxyPort": { "type": "integer", "format": "int32" }, "lmsProxyAuthUsername": { "type": "string" }, "lmsProxyAuthSecret": { "type": "string" }, "active": { "type": "boolean" }, "updateTime": { "type": "integer" }, "connectionId": { "type": "string" }, "integrationActive": { "type": "boolean" } }, "required": ["lmsType", "name"] }, "APIMessage": { "type": "object", "description": "Structured SEB Server API error or validation message.", "properties": { "messageCode": { "type": "string", "description": "Stable SEB Server message code.", "example": 1200 }, "systemMessage": { "type": "string", "description": "Short backend-defined message for the error.", "example": "Field validation error" }, "details": { "type": "string", "description": "Optional technical details for diagnostics." }, "attributes": { "type": "array", "description": "Optional message attributes, usually field names or validation context.", "items": { "type": "string" } } }, "required": ["messageCode"] }, "LmsSetupError": { "type": "object", "properties": { "errorType": { "type": "string", "enum": [ "API_NOT_SUPPORTED", "MISSING_ATTRIBUTE", "TOKEN_REQUEST", "QUIZ_ACCESS_API_REQUEST", "QUIZ_RESTRICTION_API_REQUEST", "TEMPLATE_CREATION", "APPLY_FULL_INTEGRATION" ] }, "errorMessage": { "type": "string" } } }, "LmsSetupTestResult": { "type": "object", "properties": { "lmsType": { "type": "string", "enum": [ "MOCKUP", "OPEN_EDX", "MOODLE", "MOODLE_PLUGIN", "ANS_DELFT", "OPEN_OLAT" ] }, "errors": { "type": "array", "items": { "$ref": "#/components/schemas/LmsSetupError" } }, "missingLMSSetupAttribute": { "type": "array", "items": { "$ref": "#/components/schemas/APIMessage" } } } }, "Institution": { "type": "object", "description": "An institution managed by SEB Server.", "properties": { "id": { "type": "integer", "description": "Institution identifier. Omit for creation; assigned by the server." }, "name": { "type": "string", "description": "Institution name.", "example": "ETH Zurich", "maxLength": 255, "minLength": 3 }, "logoImage": { "type": "string", "description": "Base64-encoded institution logo image." }, "themeName": { "type": "string", "description": "Name of the visual theme applied for this institution." }, "active": { "type": "boolean", "description": "Whether the institution is active.", "example": true } }, "required": ["name"] }, "Indicator": { "type": "object", "properties": { "id": { "type": "integer" }, "examId": { "type": "integer" }, "name": { "type": "string", "maxLength": 255, "minLength": 3 }, "type": { "type": "string", "enum": [ "UNKNOWN", "LAST_PING", "ERROR_COUNT", "WARN_COUNT", "INFO_COUNT", "BATTERY_STATUS", "WLAN_STATUS" ] }, "color": { "type": "string" }, "icon": { "type": "string" }, "tags": { "type": "string" }, "thresholds": { "type": "array", "items": { "$ref": "#/components/schemas/Threshold" } } }, "required": ["examId", "name", "type"] }, "Threshold": { "type": "object", "description": "Indicator threshold with value and display color.", "properties": { "value": { "type": "number", "format": "double", "description": "Threshold value; percent (0-100) for battery and WLAN indicators.", "example": 50 }, "color": { "type": "string", "description": "RGB color (hex, without leading '#') shown when the threshold is reached.", "example": "ff9800" }, "icon": { "type": "string", "description": "Icon shown when the threshold is reached." } }, "required": ["value"] }, "Exam": { "type": "object", "properties": { "id": { "type": "integer" }, "institutionId": { "type": "integer" }, "lmsSetupId": { "type": "integer" }, "externalId": { "type": "string" }, "lmsAvailable": { "type": "boolean" }, "quizName": { "type": "string" }, "quizStartTime": { "type": "string", "format": "date-time" }, "quizEndTime": { "type": "string", "format": "date-time" }, "type": { "type": "string", "enum": ["UNDEFINED", "MANAGED", "BYOD", "VDI"] }, "owner": { "type": "string" }, "supporter": { "type": "array", "items": { "type": "string" } }, "status": { "type": "string", "enum": [ "UP_COMING", "TEST_RUN", "RUNNING", "FINISHED", "ARCHIVED" ] }, "quitPassword": { "type": "string" }, "lmsSebRestriction": { "type": "boolean" }, "browserKeys": { "type": "string" }, "active": { "type": "boolean" }, "lastupdate": { "type": "string" }, "examTemplateId": { "type": "integer" }, "lastModified": { "type": "integer" }, "followupId": { "type": "integer" }, "excludeFromDeletion": { "type": "boolean" }, "additionalAttributes": { "type": "object", "additionalProperties": { "type": "string" } }, "quiz_start_url": { "type": "string" }, "quiz_description": { "type": "string" } }, "required": ["externalId", "institutionId", "type"] }, "ClientGroupTemplate": { "type": "object", "properties": { "id": { "type": "integer" }, "examId": { "type": "integer", "writeOnly": true }, "name": { "type": "string", "maxLength": 255, "minLength": 3 }, "type": { "type": "string", "enum": [ "NONE", "IP_V4_RANGE", "CLIENT_OS", "NAME_ALPHABETICAL_RANGE" ] }, "color": { "type": "string" }, "icon": { "type": "string" }, "ipRangeStart": { "type": "string" }, "ipRangeEnd": { "type": "string" }, "clientOS": { "type": "string", "enum": [ "NONE", "WINDOWS", "MAC_OS", "I_OS", "IPAD_OS", "I_OS_OR_IPAD_OS" ] }, "nameRangeStartLetter": { "type": "string" }, "nameRangeEndLetter": { "type": "string" }, "screenProctoringEnabled": { "type": "boolean" }, "examTemplateId": { "type": "integer" } }, "required": ["name", "type"] }, "ExamTemplate": { "type": "object", "description": "Exam template read, create and update model.", "properties": { "id": { "type": "integer", "description": "Exam template identifier (PK). Not set on create.", "example": 1 }, "institutionId": { "type": "integer", "description": "Institution identifier the exam template belongs to. Derived from the current user on create; required on update.", "example": 1 }, "name": { "type": "string", "description": "Unique name of the exam template.", "example": "Semester End BYOD", "maxLength": 255, "minLength": 3 }, "description": { "type": "string", "description": "Free-text description of the exam template.", "maxLength": 4000, "minLength": 0 }, "examType": { "type": "string", "description": "Exam type preset applied to exams created from this template.", "enum": ["UNDEFINED", "MANAGED", "BYOD", "VDI"], "example": "BYOD" }, "supporter": { "type": "array", "items": { "type": "string" } }, "configurationTemplateId": { "type": "integer", "description": "Identifier of the configuration template holding the SEB settings.", "example": 4 }, "institutionalDefault": { "type": "boolean", "description": "Whether this is the institutional default exam template.", "example": false }, "lmsIntegration": { "type": "boolean", "description": "Whether assessment tool (LMS) integration is enabled for exams created from this template.", "example": false }, "clientConfigurationId": { "type": "integer", "description": "Identifier of the preselected connection configuration.", "example": 1 }, "indicatorTemplates": { "type": "array", "items": { "$ref": "#/components/schemas/IndicatorTemplate" } }, "CLIENT_GROUP_TEMPLATES": { "type": "array", "items": { "$ref": "#/components/schemas/ClientGroupTemplate" } }, "EXAM_ATTRIBUTES": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Additional exam attributes as key-value pairs (enableScreenProctoring, spsCollectingStrategy, spsCollectingGroupName, spsSEBGroupsSelection, quitPassword). Always present." } }, "required": [ "CLIENT_GROUP_TEMPLATES", "EXAM_ATTRIBUTES", "indicatorTemplates", "institutionalDefault", "lmsIntegration", "name" ] }, "IndicatorTemplate": { "type": "object", "description": "Indicator template of an exam template.", "properties": { "id": { "type": "integer", "description": "Indicator template identifier (PK). Not set on create.", "example": 1 }, "examTemplateId": { "type": "integer", "description": "Identifier of the exam template this indicator template belongs to. Not set for indicator templates embedded in a full-create request.", "example": 1 }, "name": { "type": "string", "description": "Name of the indicator shown in monitoring.", "example": "Battery", "maxLength": 255, "minLength": 3 }, "type": { "type": "string", "description": "Indicator type.", "enum": [ "UNKNOWN", "LAST_PING", "ERROR_COUNT", "WARN_COUNT", "INFO_COUNT", "BATTERY_STATUS", "WLAN_STATUS" ], "example": "BATTERY_STATUS" }, "color": { "type": "string", "description": "Default RGB color (hex, without leading '#') of the indicator.", "example": "44a2c6" }, "icon": { "type": "string", "description": "Default icon name of the indicator." }, "tags": { "type": "string", "description": "Comma-separated tags for log-based indicators." }, "thresholds": { "type": "array", "items": { "$ref": "#/components/schemas/Threshold" } } }, "required": ["name", "thresholds", "type"] }, "ExamConfigurationMap": { "type": "object", "properties": { "id": { "type": "integer" }, "institutionId": { "type": "integer" }, "examId": { "type": "integer" }, "quiz_name": { "type": "string" }, "quiz_description": { "type": "string" }, "quiz_start_time": { "type": "string", "format": "date-time" }, "type": { "type": "string", "enum": ["UNDEFINED", "MANAGED", "BYOD", "VDI"] }, "examStatus": { "type": "string", "enum": [ "UP_COMING", "TEST_RUN", "RUNNING", "FINISHED", "ARCHIVED" ] }, "configurationNodeId": { "type": "integer" }, "clientGroupId": { "type": "integer" }, "encryptSecret": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "confirm_encrypt_secret": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "name": { "type": "string" }, "description": { "type": "string" }, "status": { "type": "string", "enum": [ "CONSTRUCTION", "READY_TO_USE", "IN_USE", "ARCHIVED" ] } }, "required": ["configurationNodeId", "examId", "institutionId"] }, "ConfigurationValue": { "type": "object", "properties": { "id": { "type": "integer" }, "institutionId": { "type": "integer" }, "configurationId": { "type": "integer" }, "configurationAttributeId": { "type": "integer" }, "listIndex": { "type": "integer", "format": "int32" }, "value": { "type": "string" } } }, "ConfigurationTableValues": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "configurationId": { "type": "integer" }, "configurationAttributeId": { "type": "integer" }, "tableValues": { "type": "array", "items": { "$ref": "#/components/schemas/TableValue" } } }, "required": [ "configurationAttributeId", "configurationId", "institutionId" ] }, "TableValue": { "type": "object", "properties": { "configurationAttributeId": { "type": "integer" }, "listIndex": { "type": "integer", "format": "int32" }, "value": { "type": "string" } } }, "ConfigurationAttribute": { "type": "object", "properties": { "id": { "type": "integer" }, "parentId": { "type": "integer" }, "name": { "type": "string", "maxLength": 255, "minLength": 3 }, "type": { "type": "string", "enum": [ "LABEL", "TEXT_FIELD", "PASSWORD_FIELD", "TEXT_AREA", "TEXT_FIELD_LIST", "CHECKBOX", "SLIDER", "INTEGER", "DECIMAL", "SINGLE_SELECTION", "COMBO_SELECTION", "RADIO_SELECTION", "MULTI_SELECTION", "MULTI_CHECKBOX_SELECTION", "COLOR_SELECTOR", "FILE_UPLOAD", "TABLE", "INLINE_TABLE", "COMPOSITE_TABLE" ] }, "resources": { "type": "string" }, "validator": { "type": "string" }, "dependencies": { "type": "string" }, "defaultValue": { "type": "string" } }, "required": ["name", "type"] }, "Configuration": { "type": "object", "properties": { "id": { "type": "integer" }, "institutionId": { "type": "integer" }, "configurationNodeId": { "type": "integer" }, "version": { "type": "string" }, "versionDate": { "type": "string", "format": "date-time" }, "followup": { "type": "boolean" } }, "required": [ "configurationNodeId", "followup", "institutionId", "versionDate" ] }, "ConfigurationNode": { "type": "object", "properties": { "id": { "type": "integer" }, "institutionId": { "type": "integer" }, "templateId": { "type": "integer" }, "name": { "type": "string", "maxLength": 255, "minLength": 3 }, "description": { "type": "string", "maxLength": 4000, "minLength": 0 }, "type": { "type": "string", "enum": ["TEMPLATE", "EXAM_CONFIG"] }, "owner": { "type": "string" }, "status": { "type": "string", "enum": [ "CONSTRUCTION", "READY_TO_USE", "IN_USE", "ARCHIVED" ] }, "lastUpdateTime": { "type": "string", "format": "date-time" }, "lastUpdateUser": { "type": "string" }, "lastUpdateUserName": { "type": "string" } }, "required": ["institutionId", "name", "type"] }, "ConfigCreationInfo": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string", "maxLength": 255, "minLength": 3 }, "description": { "type": "string", "maxLength": 4000, "minLength": 0 }, "with-history": { "type": "boolean" }, "type": { "type": "string", "enum": ["TEMPLATE", "EXAM_CONFIG"] } }, "required": ["id", "name"] }, "SEBClientConfig": { "type": "object", "properties": { "id": { "type": "integer" }, "institutionId": { "type": "integer" }, "name": { "type": "string", "maxLength": 255, "minLength": 3 }, "sebConfigPurpose": { "type": "string", "enum": ["START_EXAM", "CONFIGURE_CLIENT"] }, "sebServerPingTime": { "type": "integer" }, "vdiSetup": { "type": "string", "enum": ["NO", "VM_WARE"] }, "vdiExecutable": { "type": "string" }, "vdiPath": { "type": "string" }, "vdiArguments": { "type": "string" }, "sebServerFallback": { "type": "boolean" }, "startURL": { "type": "string" }, "sebServerFallbackTimeout": { "type": "integer" }, "sebServerFallbackAttempts": { "type": "integer" }, "sebServerFallbackAttemptInterval": { "type": "integer" }, "sebServerFallbackPasswordHash": { "type": "string" }, "sebServerFallbackPasswordHashConfirm": { "type": "string" }, "hashedQuitPassword": { "type": "string" }, "hashedQuitPasswordConfirm": { "type": "string" }, "date": { "type": "string", "format": "date-time" }, "encryptSecret": { "type": "string" }, "confirm_encrypt_secret": { "type": "string" }, "cert_alias": { "type": "string" }, "cert_encryption_asym": { "type": "boolean" }, "active": { "type": "boolean" }, "lastUpdateTime": { "type": "string", "format": "date-time" }, "lastUpdateUser": { "type": "string" }, "exam_selection": { "type": "array", "items": { "type": "integer" }, "uniqueItems": true } }, "required": ["name", "sebConfigPurpose"] }, "ClientGroup": { "type": "object", "properties": { "id": { "type": "integer" }, "examId": { "type": "integer" }, "name": { "type": "string", "maxLength": 255, "minLength": 3 }, "type": { "type": "string", "enum": [ "NONE", "IP_V4_RANGE", "CLIENT_OS", "NAME_ALPHABETICAL_RANGE" ] }, "color": { "type": "string" }, "icon": { "type": "string" }, "ipRangeStart": { "type": "string" }, "ipRangeEnd": { "type": "string" }, "clientOS": { "type": "string", "enum": [ "NONE", "WINDOWS", "MAC_OS", "I_OS", "IPAD_OS", "I_OS_OR_IPAD_OS" ] }, "nameRangeStartLetter": { "type": "string" }, "nameRangeEndLetter": { "type": "string" }, "isSPSGroup": { "type": "boolean" }, "spsgroup": { "type": "boolean" } }, "required": ["examId", "name", "type"] }, "BatchAction": { "type": "object", "properties": { "id": { "type": "integer" }, "institutionId": { "type": "integer" }, "owner": { "type": "string" }, "actionType": { "type": "string", "enum": [ "EXAM_CONFIG_STATE_CHANGE", "EXAM_CONFIG_REST_TEMPLATE_SETTINGS", "EXAM_CONFIG_DELETE", "ARCHIVE_EXAM", "DELETE_EXAM" ] }, "attributes": { "type": "object", "additionalProperties": { "type": "string" } }, "sourceIds": { "type": "array", "items": { "type": "string" } }, "successful": { "type": "array", "items": { "type": "string" } }, "lastUpdate": { "type": "integer" }, "processorId": { "type": "string" }, "failures": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/APIMessage" } } }, "required": [ "actionType", "institutionId", "owner", "sourceIds" ] }, "EntityKey": { "type": "object", "description": "Unique key of a SEB Server domain entity.", "properties": { "modelId": { "type": "string", "description": "Entity model identifier.", "example": "f91f9c0a-15a1-4c65-89c2-2b60310f2c12" }, "entityType": { "type": "string", "description": "SEB Server domain entity type.", "enum": [ "CONFIGURATION_ATTRIBUTE", "CONFIGURATION_VALUE", "VIEW", "ORIENTATION", "CONFIGURATION", "CONFIGURATION_NODE", "EXAM_CONFIGURATION_MAP", "EXAM", "EXAM_SEB_RESTRICTION", "EXAM_PROCTOR_DATA", "CLIENT_CONNECTION", "REMOTE_PROCTORING_ROOM", "SCREEN_PROCTORING_GROUP", "CLIENT_EVENT", "CLIENT_INSTRUCTION", "INDICATOR", "THRESHOLD", "INSTITUTION", "SEB_CLIENT_CONFIGURATION", "LMS_SETUP", "USER", "USER_ROLE", "USER_ACTIVITY_LOG", "ADDITIONAL_ATTRIBUTES", "WEBSERVICE_SERVER_INFO", "CERTIFICATE", "EXAM_TEMPLATE", "BATCH_ACTION", "CLIENT_INDICATOR", "CLIENT_NOTIFICATION", "CLIENT_GROUP", "SEB_SECURITY_KEY_REGISTRY", "ENTITY_PRIVILEGE", "FEATURE_PRIVILEGE", "SCHEDULED_DELETE", "SCHEDULED_DELETE_INFO", "CONFIGURATION_ATTRIBUTE_DEPRECATION" ], "example": "USER" } }, "required": ["entityType", "modelId"] }, "LoginForward": { "type": "object", "properties": { "entityKey": { "$ref": "#/components/schemas/EntityKey" }, "actionName": { "type": "string" } } }, "TokenLoginInfo": { "type": "object", "properties": { "username": { "type": "string" }, "userUUID": { "type": "string" }, "redirect": { "$ref": "#/components/schemas/LoginForward" }, "token": { "type": "string" } } }, "TokenLoginResponse": { "type": "object", "properties": { "id": { "type": "string" }, "login_link": { "type": "string" } } }, "MultiValueMapStringString": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } }, "properties": { "all": { "type": "object", "additionalProperties": { "type": "string" }, "writeOnly": true }, "empty": { "type": "boolean" } } }, "RunningExamInfo": { "type": "object", "properties": { "examId": { "type": "string" }, "name": { "type": "string" }, "url": { "type": "string" }, "lmsType": { "type": "string" } } }, "EntityProcessingErrorEntry": { "type": "object", "description": "Error entry inside an entity processing report.", "properties": { "entity_key": { "$ref": "#/components/schemas/EntityKey", "description": "Entity that caused the error." }, "error_message": { "$ref": "#/components/schemas/APIMessage", "description": "Structured API error message." } }, "required": ["error_message"] }, "EntityProcessingReport": { "type": "object", "description": "Result report for delete, activate, and deactivate bulk actions.", "properties": { "source": { "type": "array", "description": "Entities requested for processing.", "items": { "$ref": "#/components/schemas/EntityKey" }, "uniqueItems": true }, "results": { "type": "array", "description": "Entities processed or detected as dependencies.", "items": { "$ref": "#/components/schemas/EntityKey" }, "uniqueItems": true }, "errors": { "type": "array", "description": "Per-entity processing errors.", "items": { "$ref": "#/components/schemas/EntityProcessingErrorEntry" }, "uniqueItems": true }, "bulkActionType": { "type": "string", "description": "Bulk action that produced this report.", "enum": ["HARD_DELETE", "DEACTIVATE", "ACTIVATE"], "example": "HARD_DELETE" } }, "required": ["bulkActionType", "errors", "results", "source"] }, "SessionDeletionInfo": { "type": "object", "properties": { "session": { "$ref": "#/components/schemas/SessionInfo" }, "groupName": { "type": "string" }, "examName": { "type": "string" }, "examUUID": { "type": "string" }, "institutionId": { "type": "integer" }, "numberOfScreenshots": { "type": "integer" } } }, "SessionDeletionReport": { "type": "object", "properties": { "searchName": { "type": "string" }, "deleteDueTime": { "type": "integer" }, "sebServerDeletions": { "type": "array", "items": { "$ref": "#/components/schemas/SessionInfo" } }, "spsDeletions": { "type": "array", "items": { "$ref": "#/components/schemas/SessionDeletionInfo" } } } }, "SessionInfo": { "type": "object", "properties": { "uuid": { "type": "string" }, "clientName": { "type": "string" }, "clientIp": { "type": "string" }, "clientMachineName": { "type": "string" }, "clientOsName": { "type": "string" }, "clientVersion": { "type": "string" }, "creationTime": { "type": "integer" }, "terminationTime": { "type": "integer" }, "error": { "type": "string" } } }, "GroupInfo": { "type": "object", "properties": { "groupName": { "type": "string" }, "numberOfSessions": { "type": "string" } } }, "ScheduledDeleteReport": { "type": "object", "description": "Full report of a scheduled deletion, including the affected exams.", "properties": { "id": { "type": "integer", "description": "Scheduled deletion identifier (PK)." }, "spsId": { "type": "integer", "description": "Identifier of the corresponding deletion on the screen proctoring service." }, "state": { "type": "string", "description": "Processing state of the scheduled deletion.", "enum": [ "PENDING", "SPS_RUNNING", "RUNNING", "FINISHED" ] }, "deleteDueTime": { "type": "integer", "description": "Exams that ended before this time get deleted; unix timestamp in milliseconds." }, "scheduleTime": { "type": "integer", "description": "Time the deletion runs; unix timestamp in milliseconds." }, "startTime": { "type": "integer", "description": "Time the deletion run started; unix timestamp in milliseconds." }, "endTime": { "type": "integer", "description": "Time the deletion run finished; unix timestamp in milliseconds." }, "institutionId": { "type": "integer", "description": "Institution identifier the scheduled deletion belongs to." }, "examDeletions": { "type": "array", "description": "Deletions of exams managed by this SEB Server.", "items": { "$ref": "#/components/schemas/ScheduledDeleteViewInfo" } }, "spsOnlyDeletions": { "type": "array", "description": "Deletions of exams that only exist on the screen proctoring service.", "items": { "$ref": "#/components/schemas/ScheduledDeleteViewInfo" } } }, "required": [ "deleteDueTime", "examDeletions", "id", "scheduleTime", "spsOnlyDeletions", "state" ] }, "ScheduledDeleteViewInfo": { "type": "object", "description": "Deletion details of one exam affected by a scheduled deletion.", "properties": { "examUUID": { "type": "string" }, "examName": { "type": "string" }, "examStartTime": { "type": "integer" }, "numberOfSessions": { "type": "string" }, "spsExamName": { "type": "string" }, "spsGroupNames": { "type": "array", "items": { "$ref": "#/components/schemas/GroupInfo" }, "writeOnly": true }, "error": { "type": "string" }, "errorType": { "type": "string", "enum": [ "UNDEFINED", "SERVER_ERROR", "DATABASE_CONSTRAINT_ERROR", "DATA_INCONSISTENCY_ERROR", "EXCLUDED_FROM_DELETION" ] }, "spsGroups": { "type": "array", "items": { "$ref": "#/components/schemas/GroupInfo" } } } }, "UserMod": { "type": "object", "description": "User account creation and self-registration form model.", "properties": { "uuid": { "type": "string", "description": "User UUID. Omit this for new user creation." }, "institutionId": { "type": "integer", "description": "Institution identifier the user belongs to.", "example": 1 }, "name": { "type": "string", "description": "First name of the user.", "example": "Ada", "maxLength": 255, "minLength": 0 }, "surname": { "type": "string", "description": "Surname of the user.", "example": "Lovelace", "maxLength": 255, "minLength": 0 }, "username": { "type": "string", "description": "Login username.", "example": "ada.lovelace", "maxLength": 255, "minLength": 3 }, "newPassword": { "type": "string", "format": "password", "description": "New account password.", "maxLength": 255, "minLength": 8 }, "confirmNewPassword": { "type": "string", "format": "password", "description": "Repeated new account password." }, "email": { "type": "string", "format": "email", "description": "User email address.", "example": "ada@example.org" }, "language": { "type": "string", "description": "User locale.", "example": "en" }, "timezone": { "type": "string", "description": "User time zone.", "example": "Europe/Zurich" }, "localAccount": { "type": "boolean", "description": "Whether this is a local SEB Server account.", "example": true }, "directLogin": { "type": "boolean", "description": "Whether direct login is enabled for this account.", "example": true }, "userRoles": { "type": "array", "items": { "type": "string", "enum": [ "SEB_SERVER_ADMIN", "INSTITUTIONAL_ADMIN", "EXAM_ADMIN", "EXAM_SUPPORTER", "TEACHER" ] }, "minItems": 1, "uniqueItems": true } }, "required": [ "confirmNewPassword", "institutionId", "language", "name", "newPassword", "surname", "timezone", "userRoles", "username" ] }, "ClientStaticData": { "type": "object", "properties": { "id": { "type": "integer" }, "connectionToken": { "type": "string" }, "examUserSessionId": { "type": "string" }, "ask": { "type": "string" }, "seb_info": { "type": "string" }, "cg": { "type": "array", "items": { "type": "integer" }, "uniqueItems": true } } }, "MonitoringStaticClientData": { "type": "object", "properties": { "staticClientConnectionData": { "type": "array", "items": { "$ref": "#/components/schemas/ClientStaticData" } }, "duplications": { "type": "array", "items": { "type": "integer" }, "uniqueItems": true } } }, "ClientInstruction": { "type": "object", "properties": { "id": { "type": "integer" }, "examId": { "type": "integer" }, "type": { "type": "string", "enum": [ "SEB_QUIT", "SEB_PROCTORING", "SEB_RECONFIGURE_SETTINGS", "NOTIFICATION_CONFIRM", "SEB_FORCE_LOCK_SCREEN" ] }, "connectionToken": { "type": "string", "minLength": 1 }, "attributes": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": ["examId", "type"] }, "ProctoringRoomConnection": { "type": "object", "properties": { "serverType": { "type": "string", "enum": ["JITSI_MEET", "ZOOM"] }, "connectionToken": { "type": "string" }, "serverHost": { "type": "string" }, "serverURL": { "type": "string" }, "roomName": { "type": "string" }, "subject": { "type": "string" }, "accessToken": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "sdkToken": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "roomKey": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "apiKey": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "meetingId": { "type": "string" }, "userName": { "type": "string" }, "roomData": { "type": "string" } } }, "SecurityKey": { "type": "object", "properties": { "id": { "type": "integer" }, "institutionId": { "type": "integer" }, "keyType": { "type": "string", "enum": [ "UNDEFINED", "CONFIG_KEY", "BROWSER_EXAM_KEY", "APP_SIGNATURE_KEY" ] }, "keyValue": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "tag": { "type": "string" }, "examId": { "type": "integer" }, "examTemplateId": { "type": "integer" } }, "required": ["institutionId", "keyType", "keyValue"] }, "SEBRestriction": { "type": "object", "properties": { "id": { "type": "integer" }, "configKeys": { "type": "array", "items": { "type": "string" } }, "browserExamKeys": { "type": "array", "items": { "type": "string" } }, "additionalProperties": { "type": "object", "additionalProperties": { "type": "string" } }, "warningMessage": { "type": "string" } } }, "ScreenProctoringSettings": { "type": "object", "properties": { "id": { "type": "integer" }, "enableScreenProctoring": { "type": "boolean" }, "spsCollectingStrategy": { "type": "string", "enum": ["EXAM", "APPLY_SEB_GROUPS"] }, "spsCollectingGroupName": { "type": "string", "maxLength": 255, "minLength": 3 }, "spsCollectingGroupSize": { "type": "integer", "format": "int32" }, "spsSEBGroupsSelection": { "type": "string" }, "bundled": { "type": "boolean" }, "changeStrategyConfirm": { "type": "boolean" } } }, "ProctoringServiceSettings": { "type": "object", "properties": { "id": { "type": "integer" }, "enableProctoring": { "type": "boolean" }, "serverType": { "type": "string", "enum": ["JITSI_MEET", "ZOOM"] }, "serverURL": { "type": "string" }, "collectingRoomSize": { "type": "integer", "format": "int32" }, "enabledFeatures": { "type": "array", "items": { "type": "string", "enum": [ "TOWN_HALL", "ONE_TO_ONE", "BROADCAST", "ENABLE_CHAT" ] } }, "serviceInUse": { "type": "boolean" }, "appKey": { "type": "string" }, "appSecret": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "accountId": { "type": "string" }, "clientId": { "type": "string" }, "clientSecret": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "sdkKey": { "type": "string" }, "sdkSecret": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "useZoomAppClientForCollectingRoom": { "type": "boolean" } } }, "Value": { "type": "object", "properties": { "id": { "type": "integer" }, "value": { "type": "string" } } }, "TableRowValues": { "type": "object", "properties": { "name": { "type": "string" }, "listIndex": { "type": "integer", "format": "int32" }, "rowValues": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/Value" } } } }, "CertificateInfo": { "type": "object", "properties": { "alias": { "type": "string" }, "validityFrom": { "type": "string", "format": "date-time" }, "validityTo": { "type": "string", "format": "date-time" }, "certType": { "type": "array", "items": { "type": "string", "enum": [ "UNKNOWN", "DIGITAL_SIGNATURE", "DATA_ENCIPHERMENT", "DATA_ENCIPHERMENT_PRIVATE_KEY", "KEY_CERT_SIGN" ] } }, "inUse": { "type": "boolean" } }, "required": ["alias"] }, "TemplateAttribute": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "configurationNodeId": { "type": "integer" }, "configAttribute": { "$ref": "#/components/schemas/ConfigurationAttribute" }, "orientation": { "$ref": "#/components/schemas/Orientation" } }, "required": [ "configAttribute", "configurationNodeId", "institutionId" ] }, "Endpoint": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "location": { "type": "string" }, "authorization": { "type": "string" } } }, "ExamAPIDiscovery": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "server-location": { "type": "string" }, "api-versions": { "type": "array", "items": { "$ref": "#/components/schemas/ExamAPIVersion" } } } }, "ExamAPIVersion": { "type": "object", "properties": { "name": { "type": "string" }, "endpoints": { "type": "array", "items": { "$ref": "#/components/schemas/Endpoint" } } } }, "PageUserActivityLog": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/UserActivityLog" } }, "complete": { "type": "boolean" } } }, "EntityDependency": { "type": "object", "properties": { "parent": { "$ref": "#/components/schemas/EntityKey" }, "self": { "$ref": "#/components/schemas/EntityKey" }, "name": { "type": "string" }, "description": { "type": "string" } }, "required": ["parent", "self"] }, "EntityName": { "type": "object", "description": "Display name key for a SEB Server domain entity.", "properties": { "modelId": { "type": "string", "description": "Entity model identifier.", "example": "f91f9c0a-15a1-4c65-89c2-2b60310f2c12" }, "entityType": { "type": "string", "description": "SEB Server domain entity type.", "enum": [ "CONFIGURATION_ATTRIBUTE", "CONFIGURATION_VALUE", "VIEW", "ORIENTATION", "CONFIGURATION", "CONFIGURATION_NODE", "EXAM_CONFIGURATION_MAP", "EXAM", "EXAM_SEB_RESTRICTION", "EXAM_PROCTOR_DATA", "CLIENT_CONNECTION", "REMOTE_PROCTORING_ROOM", "SCREEN_PROCTORING_GROUP", "CLIENT_EVENT", "CLIENT_INSTRUCTION", "INDICATOR", "THRESHOLD", "INSTITUTION", "SEB_CLIENT_CONFIGURATION", "LMS_SETUP", "USER", "USER_ROLE", "USER_ACTIVITY_LOG", "ADDITIONAL_ATTRIBUTES", "WEBSERVICE_SERVER_INFO", "CERTIFICATE", "EXAM_TEMPLATE", "BATCH_ACTION", "CLIENT_INDICATOR", "CLIENT_NOTIFICATION", "CLIENT_GROUP", "SEB_SECURITY_KEY_REGISTRY", "ENTITY_PRIVILEGE", "FEATURE_PRIVILEGE", "SCHEDULED_DELETE", "SCHEDULED_DELETE_INFO", "CONFIGURATION_ATTRIBUTE_DEPRECATION" ], "example": "USER" }, "name": { "type": "string", "description": "Human-readable entity name.", "example": "Ada Lovelace" } }, "required": ["entityType", "modelId", "name"] }, "PageUserInfo": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/UserInfo" } }, "complete": { "type": "boolean" } } }, "GuiAbilities": { "type": "object", "description": "Effective GUI abilities of the current user, merged over the user's roles.", "properties": { "components": { "type": "array", "items": { "type": "string", "description": "Identifier of one GUI component (view, page or navigation entry).", "enum": [ "NAVIGATION_OVERVIEW", "INSTITUTIONS", "EDIT_INSTITUTION", "CREATE_INSTITUTION", "ASSESSMENT_TOOLS", "EDIT_ASSESSMENT_TOOL", "CREATE_ASSESSMENT_TOOL", "CONNECTION_CONFIGURATIONS", "EDIT_CONNECTION_CONFIGURATION", "CREATE_CONNECTION_CONFIGURATION", "CERTIFICATES", "USER_ACCOUNTS", "EDIT_USER_ACCOUNT", "CREATE_USER_ACCOUNT", "EXAMS", "ADD_EXAM_WITH_URL", "CREATE_EXAM_WIZARD", "EXAM_DETAIL", "ANALYZE_EXAMS", "ARCHIVE_EXAMS", "EXAM_TEMPLATES", "CREATE_EXAM_TEMPLATE", "EXAM_TEMPLATE_DETAIL", "SCHEDULED_DELETIONS", "CREATE_SCHEDULED_DELETION", "SCHEDULED_DELETION_REPORT", "PROFILE", "MONITORING", "MONITORING_DETAIL", "MONITORING_CLIENTS", "MONITORING_CLIENT_DETAIL", "SCREEN_PROCTORING_APPLICATION_SEARCH", "GALLERY", "SCREEN_PROCTORING_RECORDING", "SCREEN_PROCTORING_SEARCH", "HOME", "SETTINGS" ] } }, "actions": { "type": "array", "items": { "type": "string", "description": "Identifier of one GUI action (button, switch or workflow step).", "enum": [ "SHOW_INSTITUTION_COLUMN", "OFFER_SERVER_ADMIN_ROLE", "CHOOSE_INSTITUTION", "EXCLUDE_FROM_DELETION", "EDIT_FULL_SEB_SETTINGS", "EDIT_RESTRICTED_SEB_SETTINGS", "EDIT_BASIC_SETTINGS", "EDIT_SCREEN_PROCTORING", "SHOW_SEB_KEYS", "EDIT_SUPERVISORS", "EDIT_CLIENT_GROUPS", "APPLY_DISABLE_TEST_RUN", "APPLY_SEB_LOCK", "DOWNLOAD_EXAM_CONNECTION", "DELETE_EXAM", "EDIT_PROFILE_FIELDS", "CHANGE_OWN_PASSWORD", "QUIT_ALL_CLIENTS", "QUIT_CLIENTS", "EDIT_INDICATORS", "SHOW_FINISHED_EXAM_DATA" ] } } }, "required": ["actions", "components"] }, "PageClientEvent": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ClientEvent" } }, "complete": { "type": "boolean" } } }, "ExtendedClientEvent": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "examId": { "type": "integer" }, "examUserSessionId": { "type": "string" }, "id": { "type": "integer" }, "clientConnectionId": { "type": "integer" }, "type": { "type": "string", "enum": [ "UNKNOWN", "DEBUG_LOG", "INFO_LOG", "WARN_LOG", "ERROR_LOG", "NOTIFICATION", "NOTIFICATION_CONFIRMED" ] }, "timestamp": { "type": "integer" }, "serverTime": { "type": "integer" }, "numericValue": { "type": "number", "format": "double" }, "text": { "type": "string" }, "value": { "type": "number", "format": "double" } } }, "PageExtendedClientEvent": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ExtendedClientEvent" } }, "complete": { "type": "boolean" } } }, "PageClientConnection": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ClientConnection" } }, "complete": { "type": "boolean" } } }, "ClientConnectionData": { "type": "object", "properties": { "miss": { "type": "boolean" }, "p-ls": { "type": "boolean" }, "p-rh": { "type": "boolean" }, "cdat": { "$ref": "#/components/schemas/ClientConnection" }, "iVal": { "type": "array", "items": { "$ref": "#/components/schemas/IndicatorValue" } }, "cg": { "type": "array", "items": { "type": "integer" }, "uniqueItems": true } } }, "IndicatorValue": { "type": "object", "properties": { "id": { "type": "integer" }, "val": { "type": "number", "format": "double" } } }, "PageClientConnectionData": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ClientConnectionData" } }, "complete": { "type": "boolean" } } }, "PageScheduledDelete": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ScheduledDelete" } }, "complete": { "type": "boolean" } } }, "ScheduledDelete": { "type": "object", "description": "A scheduled deletion of all exams that ended before its delete-due time.", "properties": { "id": { "type": "integer", "description": "Scheduled deletion identifier (PK).", "readOnly": true }, "spsId": { "type": "integer", "description": "Identifier of the corresponding deletion on the screen proctoring service." }, "state": { "type": "string", "description": "Processing state of the scheduled deletion.", "enum": [ "PENDING", "SPS_RUNNING", "RUNNING", "FINISHED" ] }, "deleteDueTime": { "type": "integer", "description": "Exams that ended before this time get deleted; unix timestamp in milliseconds." }, "scheduleTime": { "type": "integer", "description": "Time the deletion runs; unix timestamp in milliseconds." }, "startTime": { "type": "integer", "description": "Time the deletion run started; unix timestamp in milliseconds." }, "endTime": { "type": "integer", "description": "Time the deletion run finished; unix timestamp in milliseconds." }, "owner": { "type": "string", "description": "UUID of the user account that scheduled the deletion." }, "institutionId": { "type": "integer", "description": "Institution identifier the scheduled deletion belongs to." }, "info": { "type": "array", "items": { "$ref": "#/components/schemas/ScheduledDeleteInfo" } } }, "required": ["deleteDueTime", "id", "scheduleTime", "state"] }, "ScheduledDeleteInfo": { "type": "object", "properties": { "id": { "type": "integer", "readOnly": true }, "scheduledDeleteId": { "type": "integer" }, "state": { "type": "string", "enum": ["PENDING", "RUNNING", "DELETED", "ERROR"] }, "examUuid": { "type": "string" }, "deletionInfo": { "type": "object", "additionalProperties": { "type": "string" } }, "errorInfo": { "type": "string" }, "errorType": { "type": "string", "enum": [ "UNDEFINED", "SERVER_ERROR", "DATABASE_CONSTRAINT_ERROR", "DATA_INCONSISTENCY_ERROR", "EXCLUDED_FROM_DELETION" ] } } }, "PageQuizData": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/QuizData" } }, "complete": { "type": "boolean" } } }, "QuizData": { "type": "object", "description": "Quiz (course) data as discovered on an LMS.", "properties": { "quiz_id": { "type": "string", "description": "LMS-side identifier of the quiz.", "example": "quiz10" }, "institutionId": { "type": "integer", "description": "Institution identifier the assessment tool of this quiz belongs to.", "example": 1 }, "lms_setup_id": { "type": "integer", "description": "Identifier of the assessment tool (LMS setup) the quiz was discovered on.", "example": 1 }, "lms_setup_type": { "type": "string", "description": "Type of the LMS the quiz was discovered on.", "enum": [ "MOCKUP", "OPEN_EDX", "MOODLE", "MOODLE_PLUGIN", "ANS_DELFT", "OPEN_OLAT" ], "example": "MOODLE" }, "quiz_name": { "type": "string", "description": "Name of the quiz.", "example": "Semester End Quiz" }, "quiz_description": { "type": "string", "description": "Description of the quiz." }, "quiz_start_time": { "type": "string", "format": "date-time", "description": "Start time of the quiz." }, "quiz_end_time": { "type": "string", "format": "date-time", "description": "End time of the quiz." }, "quiz_start_url": { "type": "string", "description": "URL under which the quiz starts on the LMS." }, "additionalAttributes": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Additional LMS-specific quiz attributes as key-value pairs." } }, "required": ["lms_setup_id", "quiz_id", "quiz_name"] }, "PageOrientation": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/Orientation" } }, "complete": { "type": "boolean" } } }, "PageView": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/View" } }, "complete": { "type": "boolean" } } }, "PageExam": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/Exam" } }, "complete": { "type": "boolean" } } }, "ClientNotification": { "type": "object", "properties": { "id": { "type": "integer" }, "clientConnectionId": { "type": "integer" }, "type": { "type": "string", "enum": [ "UNKNOWN", "DEBUG_LOG", "INFO_LOG", "WARN_LOG", "ERROR_LOG", "NOTIFICATION", "NOTIFICATION_CONFIRMED" ] }, "timestamp": { "type": "integer" }, "serverTime": { "type": "integer" }, "numericValue": { "type": "number", "format": "double" }, "text": { "type": "string" }, "notificationType": { "type": "string", "enum": ["UNKNOWN", "LOCK_SCREEN", "RAISE_HAND"] }, "value": { "type": "number", "format": "double" } } }, "ClientMonitoringDataView": { "type": "object", "properties": { "missingPing": { "type": "boolean" }, "grantChecked": { "type": "boolean" }, "grantDenied": { "type": "boolean" }, "sebversionDenied": { "type": "boolean" }, "nf": { "type": "integer", "format": "int32" }, "st": { "type": "string", "enum": [ "UNDEFINED", "CONNECTION_REQUESTED", "READY", "ACTIVE", "CLOSED", "DISABLED" ] }, "iv": { "type": "object", "additionalProperties": { "type": "string" } }, "lat": { "type": "integer" }, "id": { "type": "integer" } } }, "MonitoringFullPageData": { "type": "object", "properties": { "examId": { "type": "integer" }, "monitoringConnectionData": { "$ref": "#/components/schemas/MonitoringSEBConnectionData" }, "screenProctoringData": { "type": "array", "items": { "$ref": "#/components/schemas/ProctoringGroupMonitoringData" } } } }, "MonitoringSEBConnectionData": { "type": "object", "properties": { "cons": { "type": "array", "items": { "$ref": "#/components/schemas/ClientMonitoringDataView" } }, "sm": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "cgm": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "im": { "type": "array", "items": { "type": "integer", "format": "int32" } } } }, "ProctoringGroupMonitoringData": { "type": "object", "properties": { "uuid": { "type": "string" }, "name": { "type": "string" }, "size": { "type": "integer", "format": "int32" } } }, "RemoteProctoringRoom": { "type": "object", "properties": { "id": { "type": "integer" }, "examId": { "type": "integer" }, "name": { "type": "string" }, "size": { "type": "integer", "format": "int32" }, "subject": { "type": "string" }, "townhallRoom": { "type": "boolean" }, "breakOutConnections": { "type": "array", "items": { "type": "string" } }, "joinKey": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "roomData": { "type": "string" }, "isOpen": { "type": "boolean" } } }, "ScreenProctoringGroup": { "type": "object", "properties": { "id": { "type": "integer" }, "examId": { "type": "integer" }, "uuid": { "type": "string" }, "name": { "type": "string" }, "size": { "type": "integer", "format": "int32" }, "data": { "type": "string" }, "isFallback": { "type": "boolean" }, "sebGroupId": { "type": "integer" }, "fallback": { "type": "boolean" } } }, "ClientStatesData": { "type": "object", "properties": { "total": { "type": "integer", "format": "int32" }, "CONNECTION_REQUESTED": { "type": "integer", "format": "int32" }, "READY": { "type": "integer", "format": "int32" }, "ACTIVE": { "type": "integer", "format": "int32" }, "CLOSED": { "type": "integer", "format": "int32" }, "DISABLED": { "type": "integer", "format": "int32" }, "MISSING": { "type": "integer", "format": "int32" } } }, "ExamMonitoringOverviewData": { "type": "object", "properties": { "clientStates": { "$ref": "#/components/schemas/ClientStatesData" }, "clientGroups": { "type": "array", "items": { "$ref": "#/components/schemas/ClientGroup" } }, "indicators": { "$ref": "#/components/schemas/Indicators" }, "notifications": { "$ref": "#/components/schemas/NotificationData" } } }, "IndicatorData": { "type": "object", "properties": { "color": { "type": "string" }, "incident": { "type": "integer", "format": "int32" }, "warning": { "type": "integer", "format": "int32" } } }, "Indicators": { "type": "object", "properties": { "WLAN_STATUS": { "$ref": "#/components/schemas/IndicatorData" }, "BATTERY_STATUS": { "$ref": "#/components/schemas/IndicatorData" } } }, "NotificationData": { "type": "object", "properties": { "total": { "type": "integer", "format": "int32" }, "LOCK_SCREEN": { "type": "integer", "format": "int32" }, "RAISE_HAND": { "type": "integer", "format": "int32" } } }, "PageLmsSetup": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/LmsSetup" } }, "complete": { "type": "boolean" } } }, "PageInstitution": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/Institution" } }, "complete": { "type": "boolean" } } }, "PageIndicator": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/Indicator" } }, "complete": { "type": "boolean" } } }, "AppSignatureKeyInfo": { "type": "object", "properties": { "institutionId": { "type": "integer" }, "examId": { "type": "integer" }, "keyValue": { "type": "string" }, "connectionIds": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": ["examId", "institutionId"] }, "Chapter": { "type": "object", "properties": { "name": { "type": "string" }, "id": { "type": "string" } } }, "Chapters": { "type": "object", "properties": { "chapters": { "type": "array", "items": { "$ref": "#/components/schemas/Chapter" } }, "chapter_list": { "type": "array", "items": { "$ref": "#/components/schemas/Chapter" } } } }, "SEBSettingsView": { "type": "object", "properties": { "viewType": { "type": "string", "enum": [ "GENERAL", "USER_INTERFACE", "BROWSER", "DOWN_UPLOAD", "EXAM", "APPLICATION", "RESOURCES", "NETWORK", "SECURITY", "REGISTRY", "HOOKED_KEYS", "PROCTORING" ] }, "configurationNodeId": { "type": "integer" }, "configurationId": { "type": "integer" }, "attributes": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ConfigurationAttribute" } }, "singleValues": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/Value" } }, "tableValues": { "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/TableRowValues" } } } } }, "PageExamTemplate": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ExamTemplate" } }, "complete": { "type": "boolean" } } }, "PageExamConfigurationMap": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ExamConfigurationMap" } }, "complete": { "type": "boolean" } } }, "PageConfigurationValue": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ConfigurationValue" } }, "complete": { "type": "boolean" } } }, "PageConfigurationAttribute": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ConfigurationAttribute" } }, "complete": { "type": "boolean" } } }, "PageConfiguration": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/Configuration" } }, "complete": { "type": "boolean" } } }, "PageConfigurationNode": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ConfigurationNode" } }, "complete": { "type": "boolean" } } }, "PageTemplateAttribute": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/TemplateAttribute" } }, "complete": { "type": "boolean" } } }, "SettingsPublished": { "type": "object", "properties": { "settingsPublished": { "type": "boolean" } }, "required": ["settingsPublished"] }, "ConfigKey": { "type": "object", "properties": { "key": { "type": "string" } } }, "PageSEBClientConfig": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/SEBClientConfig" } }, "complete": { "type": "boolean" } } }, "ClientCredentials": { "type": "object", "properties": { "clientId": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "secret": { "type": "object", "properties": { "empty": { "type": "boolean" } } }, "accessToken": { "type": "object", "properties": { "empty": { "type": "boolean" } } } } }, "PageClientGroup": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/ClientGroup" } }, "complete": { "type": "boolean" } } }, "PageCertificateInfo": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/CertificateInfo" } }, "complete": { "type": "boolean" } } }, "PageBatchAction": { "type": "object", "properties": { "number_of_pages": { "type": "integer", "format": "int32", "description": "The number of available pages for the specified page size." }, "page_number": { "type": "integer", "format": "int32", "description": "The actual page number. Starting with 1.", "maximum": 2147483647, "minimum": 1 }, "page_size": { "type": "integer", "format": "int32", "description": "The the actual size of a page", "maximum": 2147483647, "minimum": 1 }, "sort": { "type": "string", "description": "The page sort column name" }, "content": { "type": "array", "description": "The actual content objects of the page. Might be empty.", "items": { "$ref": "#/components/schemas/BatchAction" } }, "complete": { "type": "boolean" } } }, "ErrorCode": { "type": "string", "description": "Catalogue of stable SEB Server APIMessage codes (the possible APIMessage.messageCode values).", "enum": [ "0", "1", "1000", "1001", "1002", "1010", "1100", "1101", "1200", "1300", "1301", "1302", "1400", "1401", "1402", "1403", "1404", "1405", "1500", "1600", "1601", "1602", "1603", "1604", "1605", "1610", "1611", "1700", "1800" ], "x-enum-varnames": [ "GENERIC", "BAD_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "RESOURCE_NOT_FOUND", "ILLEGAL_API_ARGUMENT", "UNEXPECTED", "INTEGRITY_VALIDATION", "FIELD_VALIDATION", "PASSWORD_MISMATCH", "MISSING_PASSWORD", "LMS_WARNINGS", "EXAM_CONSISTENCY_VALIDATION_SUPPORTER", "EXAM_CONSISTENCY_VALIDATION_CONFIG", "EXAM_CONSISTENCY_VALIDATION_SEB_RESTRICTION", "EXAM_CONSISTENCY_VALIDATION_INDICATOR", "EXAM_CONSISTENCY_VALIDATION_LMS_CONNECTION", "EXAM_CONSISTENCY_VALIDATION_INVALID_ID_REFERENCE", "EXTERNAL_SERVICE_BINDING_ERROR", "EXAM_IMPORT_ERROR_AUTO_SETUP", "EXAM_IMPORT_ERROR_AUTO_INDICATOR", "EXAM_IMPORT_ERROR_AUTO_ATTRIBUTES", "EXAM_IMPORT_ERROR_AUTO_RESTRICTION", "EXAM_IMPORT_ERROR_AUTO_CLIENT_GROUPS", "EXAM_IMPORT_ERROR_SPS_ENABLED", "EXAM_IMPORT_ERROR_AUTO_CONFIG", "EXAM_IMPORT_ERROR_AUTO_CONFIG_LINKING", "CLIENT_CONNECTION_INTEGRITY_VIOLATION", "NEED_CONFIRMATION" ], "x-enum-descriptions": [ "Generic error message", "Bad Request", "UNAUTHORIZED", "FORBIDDEN", "resource not found", "Illegal API request argument", "Unexpected internal server-side error", "Action would lied to an integrity violation", "Field validation error", "new password do not match confirmed password", "Missing Password", "Warnings from LMS", "No Exam Supporter defined for the Exam", "No SEB Exam Configuration defined for the Exam", "SEB restriction API available but Exam not restricted on LMS side yet", "No Indicator defined for the Exam", "No Connection To LMS", "There seems to be an invalid exam - course identifier reference. The course cannot be found", "External binding error", "Exam successfully imported but some additional initialization failed", "Failed to automatically create pre-defined indicator(s) for the exam", "Failed to automatically create pre-defined attributes for the exam", "Failed to automatically apply SEB restriction for the exam to the involved LMS", "Failed to automatically create pre-defined client group(s) for the exam", "Failed to automatically apply SPS enabled setting to Exam Configuration", "Failed to automatically create and link exam configuration from the exam template to the exam", "Failed to automatically link auto-generated exam configuration to the exam", "SEB client connection is not in valid state to apply requested operation", "Some additional user confirmation needed" ] } }, "responses": { "Error400BadRequest": { "description": "Bad request, e.g. field validation or an illegal argument. The body is usually a list of APIMessage, but may be absent for some illegal-argument cases.", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/APIMessage" } } } } }, "Error401Unauthorized": { "description": "Unauthorized. Body is an APIMessage or a list of APIMessage.", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/APIMessage" }, { "type": "array", "items": { "$ref": "#/components/schemas/APIMessage" } } ] } } } }, "Error403Forbidden": { "description": "Forbidden. Body is a list of APIMessage.", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/APIMessage" } } } } }, "Error404NotFound": { "description": "Resource not found. Body is a list of APIMessage.", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/APIMessage" } } } } }, "Error429TooManyRequests": { "description": "Too many requests (rate limit). Body is the rate-limit code as plain text.", "content": { "text/plain": { "schema": { "type": "string" } } } }, "Error500InternalServerError": { "description": "Unexpected internal server error. Body is a list of APIMessage.", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/APIMessage" } } } } } }, "securitySchemes": { "oauth": { "type": "oauth2", "in": "header", "scheme": "bearer", "bearerFormat": "jwt", "flows": { "password": { "tokenUrl": "/oauth/token" } } }, "SEBOAuth": { "type": "oauth2", "in": "header", "scheme": "basic", "flows": { "clientCredentials": { "tokenUrl": "/oauth/token", "scopes": { "read": "read", "write": "write" } } } } } } }