diff --git a/package-lock.json b/package-lock.json index 5475eeaee..29f67b332 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "schulportal-client", - "version": "0.6.0", + "version": "1.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "schulportal-client", - "version": "0.6.0", + "version": "1.0.4", "license": "EUPL-1.2", "dependencies": { "@mdi/font": "^7.4.47", diff --git a/src/api-client/generated/api.ts b/src/api-client/generated/api.ts index 6b4fd39cf..aa0cc8165 100644 --- a/src/api-client/generated/api.ts +++ b/src/api-client/generated/api.ts @@ -7769,6 +7769,43 @@ export const PersonenApiAxiosParamCreator = function (configuration?: Configurat + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + personControllerResetUEMPassword: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/api/personen/uem-password`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearer required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + // authentication oauth2 required + // oauth required + await setOAuthToObject(localVarHeaderParameter, "oauth2", [], configuration) + + + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -8063,6 +8100,15 @@ export const PersonenApiFp = function(configuration?: Configuration) { const localVarAxiosArgs = await localVarAxiosParamCreator.personControllerResetPasswordByPersonId(personId, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async personControllerResetUEMPassword(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.personControllerResetUEMPassword(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, /** * * @param {string} personId The id for the account. @@ -8206,6 +8252,14 @@ export const PersonenApiFactory = function (configuration?: Configuration, baseP personControllerResetPasswordByPersonId(personId: string, options?: any): AxiosPromise { return localVarFp.personControllerResetPasswordByPersonId(personId, options).then((request) => request(axios, basePath)); }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + personControllerResetUEMPassword(options?: any): AxiosPromise { + return localVarFp.personControllerResetUEMPassword(options).then((request) => request(axios, basePath)); + }, /** * * @param {string} personId The id for the account. @@ -8344,6 +8398,14 @@ export interface PersonenApiInterface { */ personControllerResetPasswordByPersonId(personId: string, options?: AxiosRequestConfig): AxiosPromise; + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PersonenApiInterface + */ + personControllerResetUEMPassword(options?: AxiosRequestConfig): AxiosPromise; + /** * * @param {string} personId The id for the account. @@ -8498,6 +8560,16 @@ export class PersonenApi extends BaseAPI implements PersonenApiInterface { return PersonenApiFp(this.configuration).personControllerResetPasswordByPersonId(personId, options).then((request) => request(this.axios, this.basePath)); } + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PersonenApi + */ + public personControllerResetUEMPassword(options?: AxiosRequestConfig) { + return PersonenApiFp(this.configuration).personControllerResetUEMPassword(options).then((request) => request(this.axios, this.basePath)); + } + /** * * @param {string} personId The id for the account. diff --git a/src/api-client/openapispec.json b/src/api-client/openapispec.json index df1014602..279cd9a70 100644 --- a/src/api-client/openapispec.json +++ b/src/api-client/openapispec.json @@ -1,7321 +1,3645 @@ { - "openapi": "3.0.0", - "paths": { - "/api/auth/login": { - "get": { - "operationId": "AuthenticationController_login", - "summary": "Used to start OIDC authentication.", - "parameters": [ - { - "required": false, - "name": "redirectUrl", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "302": { - "description": "Redirection to orchestrate OIDC flow." - } - }, - "tags": [ - "auth" - ] - } + "openapi": "3.0.0", + "paths": { + "/api/auth/login": { + "get": { + "operationId": "AuthenticationController_login", + "summary": "Used to start OIDC authentication.", + "parameters": [{ "required": false, "name": "redirectUrl", "in": "query", "schema": { "type": "string" } }], + "responses": { "302": { "description": "Redirection to orchestrate OIDC flow." } }, + "tags": ["auth"] + } + }, + "/api/auth/logout": { + "get": { + "operationId": "AuthenticationController_logout", + "summary": "Used to log out the current user.", + "parameters": [], + "responses": { + "302": { "description": "Redirect to logout." }, + "500": { "description": "Internal server error while trying to log out." } }, - "/api/auth/logout": { - "get": { - "operationId": "AuthenticationController_logout", - "summary": "Used to log out the current user.", - "parameters": [], - "responses": { - "302": { - "description": "Redirect to logout." - }, - "500": { - "description": "Internal server error while trying to log out." - } - }, - "tags": [ - "auth" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["auth"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/auth/logininfo": { + "get": { + "operationId": "AuthenticationController_info", + "summary": "Info about logged in user.", + "parameters": [], + "responses": { + "200": { + "description": "Returns info about the logged in user.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserinfoResponse" } } } + }, + "401": { "description": "User is not logged in." } }, - "/api/auth/logininfo": { - "get": { - "operationId": "AuthenticationController_info", - "summary": "Info about logged in user.", - "parameters": [], - "responses": { - "200": { - "description": "Returns info about the logged in user.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserinfoResponse" - } - } - } - }, - "401": { - "description": "User is not logged in." - } - }, - "tags": [ - "auth" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["auth"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/auth/reset-password": { + "get": { + "operationId": "AuthenticationController_resetPassword", + "summary": "Redirect to Keycloak password reset.", + "parameters": [ + { "name": "redirectUrl", "required": true, "in": "query", "schema": { "type": "string" } }, + { "name": "login_hint", "required": true, "in": "query", "schema": { "type": "string" } } + ], + "responses": { "302": { "description": "Redirect to Keycloak password reset page." } }, + "tags": ["auth"] + } + }, + "/api/personen": { + "post": { + "operationId": "PersonController_createPersonMigration", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/CreatePersonMigrationBodyParams" } } + } }, - "/api/auth/reset-password": { - "get": { - "operationId": "AuthenticationController_resetPassword", - "summary": "Redirect to Keycloak password reset.", - "parameters": [ - { - "name": "redirectUrl", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "login_hint", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "302": { - "description": "Redirect to Keycloak password reset page." - } - }, - "tags": [ - "auth" - ] - } + "responses": { + "201": { + "description": "The person was successfully created.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/PersonendatensatzResponse" } } + } + }, + "400": { "description": "A username was given. Creation with username is not supported." }, + "401": { "description": "Not authorized to create the person." }, + "403": { "description": "Insufficient permissions to create the person." }, + "404": { "description": "Insufficient permissions to create the person." }, + "500": { "description": "Internal server error while creating the person." } }, - "/api/personen": { - "post": { - "operationId": "PersonController_createPersonMigration", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePersonMigrationBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The person was successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonendatensatzResponse" - } - } - } - }, - "400": { - "description": "A username was given. Creation with username is not supported." - }, - "401": { - "description": "Not authorized to create the person." - }, - "403": { - "description": "Insufficient permissions to create the person." - }, - "404": { - "description": "Insufficient permissions to create the person." - }, - "500": { - "description": "Internal server error while creating the person." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "get": { - "operationId": "PersonController_findPersons", - "parameters": [ - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { - "type": "number" - } - }, - { - "name": "referrer", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "familienname", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "vorname", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "sichtfreigabe", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "default": "nein", - "enum": [ - "ja", - "nein" - ], - "type": "string" - } - }, - { - "name": "organisationIDs", - "required": false, - "in": "query", - "description": "List of Organisation ID used to filter for Persons.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "rolleIDs", - "required": false, - "in": "query", - "description": "List of Role ID used to filter for Persons.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "suchFilter", - "required": false, - "in": "query", - "description": "Search filter used to filter for Persons. It could be the vorname, familienname, referrer or the personalnummer.", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "sortOrder", - "required": false, - "in": "query", - "description": "Order to sort by.", - "schema": { - "nullable": true, - "enum": [ - "asc", - "desc" - ], - "type": "string" - } - }, - { - "name": "sortField", - "required": false, - "in": "query", - "description": "Field to sort by.", - "schema": { - "nullable": true, - "enum": [ - "familienname", - "vorname", - "personalnummer", - "referrer" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The persons were successfully returned. WARNING: This endpoint returns all persons as default when no paging parameters were set.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonendatensatzResponse" - } - } - } - } - }, - "401": { - "description": "Not authorized to get persons." - }, - "403": { - "description": "Insufficient permissions to get persons." - }, - "500": { - "description": "Internal server error while getting all persons." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "get": { + "operationId": "PersonController_findPersons", + "parameters": [ + { + "name": "offset", + "required": false, + "in": "query", + "description": "The offset of the paginated list.", + "schema": { "type": "number" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The requested limit for the page size.", + "schema": { "type": "number" } + }, + { "name": "referrer", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, + { + "name": "familienname", + "required": false, + "in": "query", + "schema": { "nullable": true, "type": "string" } + }, + { "name": "vorname", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, + { + "name": "sichtfreigabe", + "required": false, + "in": "query", + "schema": { "nullable": true, "default": "nein", "enum": ["ja", "nein"], "type": "string" } + }, + { + "name": "organisationIDs", + "required": false, + "in": "query", + "description": "List of Organisation ID used to filter for Persons.", + "schema": { "type": "array", "items": { "type": "string" } } + }, + { + "name": "rolleIDs", + "required": false, + "in": "query", + "description": "List of Role ID used to filter for Persons.", + "schema": { "type": "array", "items": { "type": "string" } } + }, + { + "name": "suchFilter", + "required": false, + "in": "query", + "description": "Search filter used to filter for Persons. It could be the vorname, familienname, referrer or the personalnummer.", + "schema": { "nullable": true, "type": "string" } + }, + { + "name": "sortOrder", + "required": false, + "in": "query", + "description": "Order to sort by.", + "schema": { "nullable": true, "enum": ["asc", "desc"], "type": "string" } + }, + { + "name": "sortField", + "required": false, + "in": "query", + "description": "Field to sort by.", + "schema": { + "nullable": true, + "enum": ["familienname", "vorname", "personalnummer", "referrer"], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The persons were successfully returned. WARNING: This endpoint returns all persons as default when no paging parameters were set.", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PersonendatensatzResponse" } } + } + } + }, + "401": { "description": "Not authorized to get persons." }, + "403": { "description": "Insufficient permissions to get persons." }, + "500": { "description": "Internal server error while getting all persons." } }, - "/api/personen/{personId}": { - "delete": { - "operationId": "PersonController_deletePersonById", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The id for the account.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "The person and all their kontexte were successfully deleted." - }, - "400": { - "description": "Request has wrong format." - }, - "401": { - "description": "Request is not authorized." - }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { - "description": "The person was not found." - }, - "500": { - "description": "An internal server error occurred." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "get": { - "operationId": "PersonController_findPersonById", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The id for the account.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The person was successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonendatensatzResponse" - } - } - } - }, - "400": { - "description": "Person ID is required" - }, - "401": { - "description": "Not authorized to get the person." - }, - "403": { - "description": "Insufficient permissions to get the person." - }, - "404": { - "description": "The person does not exist or insufficient permissions." - }, - "500": { - "description": "Internal server error while getting the person." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "put": { - "operationId": "PersonController_updatePerson", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The id for the account.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdatePersonBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The person was successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonendatensatzResponse" - } - } - } - }, - "400": { - "description": "Request has wrong format." - }, - "401": { - "description": "Request is not authorized." - }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { - "description": "The person was not found or insufficient permissions to update person." - }, - "500": { - "description": "An internal server error occurred." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personen/{personId}": { + "delete": { + "operationId": "PersonController_deletePersonById", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The id for the account.", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "204": { "description": "The person and all their kontexte were successfully deleted." }, + "400": { "description": "Request has wrong format." }, + "401": { "description": "Request is not authorized." }, + "403": { "description": "Insufficient permissions to perform operation." }, + "404": { "description": "The person was not found." }, + "500": { "description": "An internal server error occurred." } }, - "/api/personen/{personId}/personenkontexte": { - "post": { - "operationId": "PersonController_createPersonenkontext", - "summary": "", - "deprecated": true, - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The personenkontext was successfully created." - }, - "400": { - "description": "The personenkontext already exists." - }, - "401": { - "description": "Not authorized to create the personenkontext." - }, - "403": { - "description": "Not permitted to create the personenkontext." - }, - "404": { - "description": "Insufficient permissions to create personenkontext for person." - }, - "500": { - "description": "Internal server error while creating the personenkontext." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "get": { - "operationId": "PersonController_findPersonenkontexte", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The id for the account.", - "schema": { - "nullable": false, - "type": "string" - } - }, - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { - "type": "number" - } - }, - { - "name": "personId", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "referrer", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "personenstatus", - "required": false, - "in": "query", - "schema": { - "$ref": "#/components/schemas/Personenstatus" - } - }, - { - "name": "sichtfreigabe", - "required": false, - "in": "query", - "schema": { - "$ref": "#/components/schemas/Sichtfreigabe" - } - } - ], - "responses": { - "200": { - "description": "The personenkontexte were successfully pulled.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/RawPagedResponse" - }, - { - "required": [ - "items" - ], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonenkontextResponse" - } - } - } - } - ] - } - } - } - }, - "401": { - "description": "Not authorized to get personenkontexte." - }, - "403": { - "description": "Insufficient permissions to get personenkontexte." - }, - "404": { - "description": "No personenkontexte were found." - }, - "500": { - "description": "Internal server error while getting all personenkontexte." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "get": { + "operationId": "PersonController_findPersonById", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The id for the account.", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "The person was successfully returned.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/PersonendatensatzResponse" } } + } + }, + "400": { "description": "Person ID is required" }, + "401": { "description": "Not authorized to get the person." }, + "403": { "description": "Insufficient permissions to get the person." }, + "404": { "description": "The person does not exist or insufficient permissions." }, + "500": { "description": "Internal server error while getting the person." } }, - "/api/personen/{personId}/password": { - "patch": { - "operationId": "PersonController_resetPasswordByPersonId", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The id for the account.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "202": { - "description": "Password for person was successfully reset.", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "404": { - "description": "The person does not exist or insufficient permissions to update person." - }, - "500": { - "description": "Internal server error." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "put": { + "operationId": "PersonController_updatePerson", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The id for the account.", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePersonBodyParams" } } } }, - "/api/personen/{personId}/lock-user": { - "put": { - "operationId": "PersonController_lockPerson", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LockUserBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "User has been successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonLockResponse" - } - } - } - }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { - "description": "The person was not found." - }, - "500": { - "description": "An internal server error occurred." - }, - "502": { - "description": "A downstream server returned an error." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "200": { + "description": "The person was successfully updated.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/PersonendatensatzResponse" } } + } + }, + "400": { "description": "Request has wrong format." }, + "401": { "description": "Request is not authorized." }, + "403": { "description": "Insufficient permissions to perform operation." }, + "404": { "description": "The person was not found or insufficient permissions to update person." }, + "500": { "description": "An internal server error occurred." } }, - "/api/personen/{personId}/sync": { - "post": { - "operationId": "PersonController_syncPerson", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "User will be synced." - }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { - "description": "The person was not found." - }, - "500": { - "description": "An internal server error occurred." - }, - "502": { - "description": "A downstream server returned an error." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personen/{personId}/personenkontexte": { + "post": { + "operationId": "PersonController_createPersonenkontext", + "summary": "", + "deprecated": true, + "parameters": [{ "name": "personId", "required": true, "in": "path", "schema": { "type": "string" } }], + "responses": { + "200": { "description": "The personenkontext was successfully created." }, + "400": { "description": "The personenkontext already exists." }, + "401": { "description": "Not authorized to create the personenkontext." }, + "403": { "description": "Not permitted to create the personenkontext." }, + "404": { "description": "Insufficient permissions to create personenkontext for person." }, + "500": { "description": "Internal server error while creating the personenkontext." } }, - "/api/personen/{personId}/metadata": { - "patch": { - "operationId": "PersonController_updateMetadata", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The id for the account.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonMetadataBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The metadata for user was successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonendatensatzResponse" - } - } - } - }, - "400": { - "description": "Request has a wrong format.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonError" - } - } + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "get": { + "operationId": "PersonController_findPersonenkontexte", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The id for the account.", + "schema": { "nullable": false, "type": "string" } + }, + { + "name": "offset", + "required": false, + "in": "query", + "description": "The offset of the paginated list.", + "schema": { "type": "number" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The requested limit for the page size.", + "schema": { "type": "number" } + }, + { "name": "personId", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, + { "name": "referrer", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, + { + "name": "personenstatus", + "required": false, + "in": "query", + "schema": { "$ref": "#/components/schemas/Personenstatus" } + }, + { + "name": "sichtfreigabe", + "required": false, + "in": "query", + "schema": { "$ref": "#/components/schemas/Sichtfreigabe" } + } + ], + "responses": { + "200": { + "description": "The personenkontexte were successfully pulled.", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { + "schema": { + "allOf": [ + { "$ref": "#/components/schemas/RawPagedResponse" }, + { + "required": ["items"], + "properties": { + "items": { + "type": "array", + "items": { "$ref": "#/components/schemas/PersonenkontextResponse" } } - }, - "401": { - "description": "Not authorized to update the metadata." - }, - "403": { - "description": "Not permitted to update the metadata." - }, - "500": { - "description": "Internal server error while updating the metadata for user." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] + } } - ] + ] + } + } } + }, + "401": { "description": "Not authorized to get personenkontexte." }, + "403": { "description": "Insufficient permissions to get personenkontexte." }, + "404": { "description": "No personenkontexte were found." }, + "500": { "description": "Internal server error while getting all personenkontexte." } }, - "/api/personen/{personId}/uem-password": { - "patch": { - "operationId": "PersonController_resetUEMPasswordByPersonId", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The id for the account.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "202": { - "description": "UEM-password for person was successfully reset.", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "404": { - "description": "The person does not exist or insufficient permissions to update person." - }, - "500": { - "description": "Internal server error." - } - }, - "tags": [ - "personen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personen/{personId}/password": { + "patch": { + "operationId": "PersonController_resetPasswordByPersonId", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The id for the account.", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "202": { + "description": "Password for person was successfully reset.", + "content": { "application/json": { "schema": { "type": "string" } } } + }, + "404": { "description": "The person does not exist or insufficient permissions to update person." }, + "500": { "description": "Internal server error." } }, - "/api/personen-frontend": { - "get": { - "operationId": "PersonFrontendController_findPersons", - "parameters": [ - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { - "type": "number" - } - }, - { - "name": "referrer", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "familienname", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "vorname", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "sichtfreigabe", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "default": "nein", - "enum": [ - "ja", - "nein" - ], - "type": "string" - } - }, - { - "name": "organisationIDs", - "required": false, - "in": "query", - "description": "List of Organisation ID used to filter for Persons.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "rolleIDs", - "required": false, - "in": "query", - "description": "List of Role ID used to filter for Persons.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "suchFilter", - "required": false, - "in": "query", - "description": "Search filter used to filter for Persons. It could be the vorname, familienname, referrer or the personalnummer.", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "sortOrder", - "required": false, - "in": "query", - "description": "Order to sort by.", - "schema": { - "nullable": true, - "enum": [ - "asc", - "desc" - ], - "type": "string" - } - }, - { - "name": "sortField", - "required": false, - "in": "query", - "description": "Field to sort by.", - "schema": { - "nullable": true, - "enum": [ - "familienname", - "vorname", - "personalnummer", - "referrer" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The persons were successfully returned. WARNING: This endpoint returns all persons as default when no paging parameters were set.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/RawPagedResponse" - }, - { - "required": [ - "items" - ], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonendatensatzResponse" - } - } - } - } - ] - } - } - } - }, - "401": { - "description": "Not authorized to get persons." - }, - "403": { - "description": "Insufficient permissions to get persons." - }, - "500": { - "description": "Internal server error while getting all persons." - } - }, - "tags": [ - "personen-frontend" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personen/{personId}/lock-user": { + "put": { + "operationId": "PersonController_lockPerson", + "parameters": [{ "name": "personId", "required": true, "in": "path", "schema": { "type": "string" } }], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LockUserBodyParams" } } } }, - "/api/dbiam/personenuebersicht": { - "post": { - "operationId": "DBiamPersonenuebersichtController_findPersonenuebersichten", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonenuebersichtBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The personenuebersichten were successfully returned.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/RawPagedResponse" - }, - { - "required": [ - "items" - ], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DBiamPersonenuebersichtResponse" - } - } - } - } - ] - } - } - } - }, - "401": { - "description": "Not authorized to get personenuebersichten." - }, - "403": { - "description": "Insufficient permission to get personenuebersichten." - }, - "500": { - "description": "Internal server error while getting personenuebersichten." - } - }, - "tags": [ - "dbiam-personenuebersicht" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "200": { + "description": "User has been successfully updated.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonLockResponse" } } } + }, + "403": { "description": "Insufficient permissions to perform operation." }, + "404": { "description": "The person was not found." }, + "500": { "description": "An internal server error occurred." }, + "502": { "description": "A downstream server returned an error." } }, - "/api/dbiam/personenuebersicht/{personId}": { - "get": { - "operationId": "DBiamPersonenuebersichtController_findPersonenuebersichtenByPerson", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The ID for the person.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The personenuebersichten were successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBiamPersonenuebersichtResponse" - } - } + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personen/{personId}/sync": { + "post": { + "operationId": "PersonController_syncPerson", + "parameters": [{ "name": "personId", "required": true, "in": "path", "schema": { "type": "string" } }], + "responses": { + "200": { "description": "User will be synced." }, + "403": { "description": "Insufficient permissions to perform operation." }, + "404": { "description": "The person was not found." }, + "500": { "description": "An internal server error occurred." }, + "502": { "description": "A downstream server returned an error." } + }, + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personen/{personId}/metadata": { + "patch": { + "operationId": "PersonController_updateMetadata", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The id for the account.", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonMetadataBodyParams" } } } + }, + "responses": { + "200": { + "description": "The metadata for user was successfully updated.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/PersonendatensatzResponse" } } + } + }, + "400": { + "description": "Request has a wrong format.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamPersonError" } } } + }, + "401": { "description": "Not authorized to update the metadata." }, + "403": { "description": "Not permitted to update the metadata." }, + "500": { "description": "Internal server error while updating the metadata for user." } + }, + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personen/{personId}/uem-password": { + "patch": { + "operationId": "PersonController_resetUEMPasswordByPersonId", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The id for the account.", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "202": { + "description": "UEM-password for person was successfully reset.", + "content": { "application/json": { "schema": { "type": "string" } } } + }, + "404": { "description": "The person does not exist or insufficient permissions to update person." }, + "500": { "description": "Internal server error." } + }, + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personen/uem-password": { + "patch": { + "operationId": "PersonController_resetUEMPassword", + "parameters": [], + "responses": { + "202": { + "description": "UEM-password for person was successfully reset.", + "content": { "application/json": { "schema": { "type": "string" } } } + }, + "404": { "description": "The person does not exist or insufficient permissions to update person." }, + "500": { "description": "Internal server error." } + }, + "tags": ["personen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personen-frontend": { + "get": { + "operationId": "PersonFrontendController_findPersons", + "parameters": [ + { + "name": "offset", + "required": false, + "in": "query", + "description": "The offset of the paginated list.", + "schema": { "type": "number" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The requested limit for the page size.", + "schema": { "type": "number" } + }, + { "name": "referrer", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, + { + "name": "familienname", + "required": false, + "in": "query", + "schema": { "nullable": true, "type": "string" } + }, + { "name": "vorname", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, + { + "name": "sichtfreigabe", + "required": false, + "in": "query", + "schema": { "nullable": true, "default": "nein", "enum": ["ja", "nein"], "type": "string" } + }, + { + "name": "organisationIDs", + "required": false, + "in": "query", + "description": "List of Organisation ID used to filter for Persons.", + "schema": { "type": "array", "items": { "type": "string" } } + }, + { + "name": "rolleIDs", + "required": false, + "in": "query", + "description": "List of Role ID used to filter for Persons.", + "schema": { "type": "array", "items": { "type": "string" } } + }, + { + "name": "suchFilter", + "required": false, + "in": "query", + "description": "Search filter used to filter for Persons. It could be the vorname, familienname, referrer or the personalnummer.", + "schema": { "nullable": true, "type": "string" } + }, + { + "name": "sortOrder", + "required": false, + "in": "query", + "description": "Order to sort by.", + "schema": { "nullable": true, "enum": ["asc", "desc"], "type": "string" } + }, + { + "name": "sortField", + "required": false, + "in": "query", + "description": "Field to sort by.", + "schema": { + "nullable": true, + "enum": ["familienname", "vorname", "personalnummer", "referrer"], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The persons were successfully returned. WARNING: This endpoint returns all persons as default when no paging parameters were set.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { "$ref": "#/components/schemas/RawPagedResponse" }, + { + "required": ["items"], + "properties": { + "items": { + "type": "array", + "items": { "$ref": "#/components/schemas/PersonendatensatzResponse" } } - }, - "401": { - "description": "Not authorized to get personenuebersicht." - }, - "403": { - "description": "Insufficient permission to get personenuebersicht." - }, - "500": { - "description": "Internal server error while getting personenuebersicht." + } } - }, - "tags": [ - "dbiam-personenuebersicht" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] + ] + } + } } + }, + "401": { "description": "Not authorized to get persons." }, + "403": { "description": "Insufficient permissions to get persons." }, + "500": { "description": "Internal server error while getting all persons." } }, - "/api/person-info": { - "get": { - "operationId": "PersonInfoController_info", - "summary": "Info about logged in person.", - "parameters": [], - "responses": { - "200": { - "description": "Returns info about the person.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonInfoResponse" - } - } + "tags": ["personen-frontend"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/dbiam/personenuebersicht": { + "post": { + "operationId": "DBiamPersonenuebersichtController_findPersonenuebersichten", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/PersonenuebersichtBodyParams" } } + } + }, + "responses": { + "200": { + "description": "The personenuebersichten were successfully returned.", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { + "schema": { + "allOf": [ + { "$ref": "#/components/schemas/RawPagedResponse" }, + { + "required": ["items"], + "properties": { + "items": { + "type": "array", + "items": { "$ref": "#/components/schemas/DBiamPersonenuebersichtResponse" } } - }, - "401": { - "description": "person is not logged in." - } - }, - "tags": [ - "person-info" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] + } } - ] + ] + } + } } + }, + "401": { "description": "Not authorized to get personenuebersichten." }, + "403": { "description": "Insufficient permission to get personenuebersichten." }, + "500": { "description": "Internal server error while getting personenuebersichten." } }, - "/api/organisationen": { - "post": { - "operationId": "OrganisationController_createOrganisation", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateOrganisationBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The organisation was successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - } - }, - "400": { - "description": "The organisation already exists.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamOrganisationError" - } - } - } - }, - "401": { - "description": "Not authorized to create the organisation." - }, - "403": { - "description": "Not permitted to create the organisation." - }, - "500": { - "description": "Internal server error while creating the organisation." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "get": { - "operationId": "OrganisationController_findOrganizations", - "parameters": [ - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { - "type": "number" - } - }, - { - "name": "kennung", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "name", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "searchString", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "typ", - "required": false, - "in": "query", - "schema": { - "$ref": "#/components/schemas/OrganisationsTyp" - } - }, - { - "name": "systemrechte", - "required": false, - "in": "query", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RollenSystemRecht" - } - } - }, - { - "name": "excludeTyp", - "required": false, - "in": "query", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationsTyp" - } - } - }, - { - "name": "administriertVon", - "required": false, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "organisationIds", - "required": false, - "in": "query", - "description": "Liefert Organisationen mit den angegebenen IDs, selbst wenn andere Filterkriterien nicht zutreffen (ODER-verknüpft mit anderen Kriterien).", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "200": { - "description": "The organizations were successfully returned.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - } - } - }, - "401": { - "description": "Not authorized to get organizations." - }, - "403": { - "description": "Insufficient permissions to get organizations." - }, - "500": { - "description": "Internal server error while getting all organizations." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["dbiam-personenuebersicht"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/dbiam/personenuebersicht/{personId}": { + "get": { + "operationId": "DBiamPersonenuebersichtController_findPersonenuebersichtenByPerson", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The ID for the person.", + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "The personenuebersichten were successfully returned.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/DBiamPersonenuebersichtResponse" } } + } + }, + "401": { "description": "Not authorized to get personenuebersicht." }, + "403": { "description": "Insufficient permission to get personenuebersicht." }, + "500": { "description": "Internal server error while getting personenuebersicht." } }, - "/api/organisationen/{organisationId}": { - "put": { - "operationId": "OrganisationController_updateOrganisation", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateOrganisationBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The organisation was successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - } - }, - "400": { - "description": "Request has wrong format.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamOrganisationError" - } - } - } - }, - "401": { - "description": "Request is not authorized." - }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { - "description": "The organisation was not found." - }, - "500": { - "description": "An internal server error occurred." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "get": { - "operationId": "OrganisationController_findOrganisationById", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The organization was successfully pulled.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - } - }, - "400": { - "description": "Organization ID is required" - }, - "401": { - "description": "Not authorized to get the organization." - }, - "403": { - "description": "Insufficient permissions to get the organization." - }, - "404": { - "description": "The organization does not exist." - }, - "500": { - "description": "Internal server error while getting the organization." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["dbiam-personenuebersicht"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/person-info": { + "get": { + "operationId": "PersonInfoController_info", + "summary": "Info about logged in person.", + "parameters": [], + "responses": { + "200": { + "description": "Returns info about the person.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonInfoResponse" } } } + }, + "401": { "description": "person is not logged in." } }, - "/api/organisationen/root": { - "get": { - "operationId": "OrganisationController_getRootOrganisation", - "parameters": [], - "responses": { - "200": { - "description": "The root organization was successfully retrieved.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - } - }, - "401": { - "description": "Not authorized to get the root organization." - }, - "403": { - "description": "Insufficient permissions to get the root organization." - }, - "404": { - "description": "The root organization does not exist." - }, - "500": { - "description": "Internal server error while getting the root organization." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["person-info"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/organisationen": { + "post": { + "operationId": "OrganisationController_createOrganisation", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrganisationBodyParams" } } + } }, - "/api/organisationen/root/children": { - "get": { - "operationId": "OrganisationController_getRootChildren", - "parameters": [], - "responses": { - "200": { - "description": "The root organizations were successfully pulled.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationRootChildrenResponse" - } - } - } - }, - "401": { - "description": "Not authorized to get the organizations." - }, - "403": { - "description": "Insufficient permissions to get the organizations." - }, - "500": { - "description": "Internal server error while getting the organization." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "201": { + "description": "The organisation was successfully created.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationResponse" } } } + }, + "400": { + "description": "The organisation already exists.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamOrganisationError" } } } + }, + "401": { "description": "Not authorized to create the organisation." }, + "403": { "description": "Not permitted to create the organisation." }, + "500": { "description": "Internal server error while creating the organisation." } }, - "/api/organisationen/parents-by-ids": { - "post": { - "operationId": "OrganisationController_getParentsByIds", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ParentOrganisationsByIdsBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The parent organizations were successfully pulled.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ParentOrganisationenResponse" - } - } - } - }, - "401": { - "description": "Not authorized to get the organizations." - }, - "403": { - "description": "Insufficient permissions to get the organizations." - }, - "500": { - "description": "Internal server error while getting the organization." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "get": { + "operationId": "OrganisationController_findOrganizations", + "parameters": [ + { + "name": "offset", + "required": false, + "in": "query", + "description": "The offset of the paginated list.", + "schema": { "type": "number" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The requested limit for the page size.", + "schema": { "type": "number" } + }, + { "name": "kennung", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, + { "name": "name", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, + { + "name": "searchString", + "required": false, + "in": "query", + "schema": { "nullable": true, "type": "string" } + }, + { + "name": "typ", + "required": false, + "in": "query", + "schema": { "$ref": "#/components/schemas/OrganisationsTyp" } + }, + { + "name": "systemrechte", + "required": false, + "in": "query", + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RollenSystemRecht" } } + }, + { + "name": "excludeTyp", + "required": false, + "in": "query", + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OrganisationsTyp" } } + }, + { + "name": "administriertVon", + "required": false, + "in": "query", + "schema": { "type": "array", "items": { "type": "string" } } + }, + { + "name": "organisationIds", + "required": false, + "in": "query", + "description": "Liefert Organisationen mit den angegebenen IDs, selbst wenn andere Filterkriterien nicht zutreffen (ODER-verknüpft mit anderen Kriterien).", + "schema": { "type": "array", "items": { "type": "string" } } + } + ], + "responses": { + "200": { + "description": "The organizations were successfully returned.", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OrganisationResponse" } } + } + } + }, + "401": { "description": "Not authorized to get organizations." }, + "403": { "description": "Insufficient permissions to get organizations." }, + "500": { "description": "Internal server error while getting all organizations." } }, - "/api/organisationen/{organisationId}/administriert": { - "get": { - "operationId": "OrganisationController_getAdministrierteOrganisationen", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { - "nullable": false, - "type": "string" - } - }, - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { - "type": "number" - } - }, - { - "name": "searchFilter", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The organizations were successfully returned.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - } - } - }, - "401": { - "description": "Not authorized to get organizations." - }, - "403": { - "description": "Insufficient permissions to get organizations." - }, - "500": { - "description": "Internal server error while getting all organizations." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "post": { - "operationId": "OrganisationController_addAdministrierteOrganisation", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationByIdBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The organisation was successfully updated." - }, - "400": { - "description": "The organisation could not be modified.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamOrganisationError" - } - } - } - }, - "401": { - "description": "Not authorized to modify the organisation." - }, - "403": { - "description": "Not permitted to modify the organisation." - }, - "500": { - "description": "Internal server error while modifying the organisation." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/organisationen/{organisationId}": { + "put": { + "operationId": "OrganisationController_updateOrganisation", + "parameters": [ + { + "name": "organisationId", + "required": true, + "in": "path", + "description": "The id of an organization", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/UpdateOrganisationBodyParams" } } + } }, - "/api/organisationen/{organisationId}/zugehoerig": { - "get": { - "operationId": "OrganisationController_getZugehoerigeOrganisationen", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The organizations were successfully returned.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - } - } - }, - "401": { - "description": "Not authorized to get organizations." - }, - "403": { - "description": "Insufficient permissions to get organizations." - }, - "500": { - "description": "Internal server error while getting all organizations." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "post": { - "operationId": "OrganisationController_addZugehoerigeOrganisation", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationByIdBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The organisation was successfully updated." - }, - "400": { - "description": "The organisation could not be modified.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamOrganisationError" - } - } - } - }, - "401": { - "description": "Not authorized to modify the organisation." - }, - "403": { - "description": "Not permitted to modify the organisation." - }, - "500": { - "description": "Internal server error while modifying the organisation." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "200": { + "description": "The organisation was successfully updated.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationResponse" } } } + }, + "400": { + "description": "Request has wrong format.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamOrganisationError" } } } + }, + "401": { "description": "Request is not authorized." }, + "403": { "description": "Insufficient permissions to perform operation." }, + "404": { "description": "The organisation was not found." }, + "500": { "description": "An internal server error occurred." } }, - "/api/organisationen/{organisationId}/klasse": { - "delete": { - "operationId": "OrganisationController_deleteKlasse", - "summary": "", - "description": "Delete an organisation of type Klasse by id.", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "The organisation was deleted successfully." - }, - "400": { - "description": "The input was not valid.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamOrganisationError" - } - } - } - }, - "401": { - "description": "Not authorized to delete the organisation." - }, - "404": { - "description": "The organisation that should be deleted does not exist." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "get": { + "operationId": "OrganisationController_findOrganisationById", + "parameters": [ + { + "name": "organisationId", + "required": true, + "in": "path", + "description": "The id of an organization", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "The organization was successfully pulled.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationResponse" } } } + }, + "400": { "description": "Organization ID is required" }, + "401": { "description": "Not authorized to get the organization." }, + "403": { "description": "Insufficient permissions to get the organization." }, + "404": { "description": "The organization does not exist." }, + "500": { "description": "Internal server error while getting the organization." } }, - "/api/organisationen/{organisationId}/name": { - "patch": { - "operationId": "OrganisationController_updateOrganisationName", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationByNameBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The organizations were successfully updated.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - } - } - }, - "400": { - "description": "The organisation could not be modified.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamOrganisationError" - } - } - } - }, - "401": { - "description": "Not authorized to modify the organisation." - }, - "403": { - "description": "Not permitted to modify the organisation." - }, - "500": { - "description": "Internal server error while modifying the organisation." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/organisationen/root": { + "get": { + "operationId": "OrganisationController_getRootOrganisation", + "parameters": [], + "responses": { + "200": { + "description": "The root organization was successfully retrieved.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationResponse" } } } + }, + "401": { "description": "Not authorized to get the root organization." }, + "403": { "description": "Insufficient permissions to get the root organization." }, + "404": { "description": "The root organization does not exist." }, + "500": { "description": "Internal server error while getting the root organization." } }, - "/api/organisationen/{organisationId}/enable-for-its-learning": { - "put": { - "operationId": "OrganisationController_enableForitslearning", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The organization was successfully enabled for itslearning.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - } - } - }, - "400": { - "description": "The organisation could not be modified.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamOrganisationError" - } - } - } - }, - "401": { - "description": "Not authorized to modify the organisation." - }, - "403": { - "description": "Not permitted to modify the organisation." - }, - "500": { - "description": "Internal server error while modifying the organisation." - } - }, - "tags": [ - "organisationen" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/organisationen/root/children": { + "get": { + "operationId": "OrganisationController_getRootChildren", + "parameters": [], + "responses": { + "200": { + "description": "The root organizations were successfully pulled.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationRootChildrenResponse" } } + } + }, + "401": { "description": "Not authorized to get the organizations." }, + "403": { "description": "Insufficient permissions to get the organizations." }, + "500": { "description": "Internal server error while getting the organization." } }, - "/api/rolle": { - "get": { - "operationId": "RolleController_findRollen", - "summary": "", - "description": "List all rollen.", - "parameters": [ - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { - "type": "number" - } - }, - { - "name": "searchStr", - "required": false, - "in": "query", - "description": "The name for the role.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The rollen were successfully returned", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RolleWithServiceProvidersResponse" - } - } - } - } - }, - "401": { - "description": "Not authorized to get rollen." - }, - "403": { - "description": "Insufficient permissions to get rollen." - }, - "500": { - "description": "Internal server error while getting all rollen." - } - }, - "tags": [ - "rolle" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "post": { - "operationId": "RolleController_createRolle", - "summary": "", - "description": "Create a new rolle.", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateRolleBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The rolle was successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolleResponse" - } - } - } - }, - "400": { - "description": "The input was not valid.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamRolleError" - } - } - } - }, - "401": { - "description": "Not authorized to create the rolle." - }, - "403": { - "description": "Insufficient permissions to create the rolle." - }, - "500": { - "description": "Internal server error while creating the rolle." - } - }, - "tags": [ - "rolle" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/organisationen/parents-by-ids": { + "post": { + "operationId": "OrganisationController_getParentsByIds", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/ParentOrganisationsByIdsBodyParams" } } + } }, - "/api/rolle/{rolleId}": { - "get": { - "operationId": "RolleController_findRolleByIdWithServiceProviders", - "summary": "", - "description": "Get rolle by id.", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "path", - "description": "The id for the rolle.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The rolle was successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolleWithServiceProvidersResponse" - } - } - } - }, - "401": { - "description": "Not authorized to get rolle by id." - }, - "403": { - "description": "Insufficient permission to get rolle by id." - }, - "500": { - "description": "Internal server error while getting rolle by id." - } - }, - "tags": [ - "rolle" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "patch": { - "operationId": "RolleController_addSystemRecht", - "summary": "", - "description": "Add systemrecht to a rolle.", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "path", - "description": "The id for the rolle.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddSystemrechtBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The systemrecht was successfully added to rolle." - }, - "400": { - "description": "The input was not valid." - }, - "401": { - "description": "Not authorized to create the rolle." - }, - "403": { - "description": "Insufficient permissions to create the rolle." - }, - "500": { - "description": "Internal server error while adding systemrecht to rolle." - } - }, - "tags": [ - "rolle" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "put": { - "operationId": "RolleController_updateRolle", - "summary": "", - "description": "Update rolle.", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "path", - "description": "The id for the rolle.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateRolleBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The rolle was successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolleWithServiceProvidersResponse" - } - } - } - }, - "400": { - "description": "The input was not valid.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamRolleError" - } - } - } - }, - "401": { - "description": "Not authorized to update the rolle." - }, - "403": { - "description": "Insufficient permissions to update the rolle." - }, - "500": { - "description": "Internal server error while updating the rolle." - } - }, - "tags": [ - "rolle" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "delete": { - "operationId": "RolleController_deleteRolle", - "summary": "", - "description": "Delete a role by id.", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "path", - "description": "The id for the rolle.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Role was deleted successfully." - }, - "400": { - "description": "The input was not valid.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamRolleError" - } - } - } - }, - "401": { - "description": "Not authorized to delete the role." - }, - "404": { - "description": "The rolle that should be deleted does not exist." - } - }, - "tags": [ - "rolle" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "200": { + "description": "The parent organizations were successfully pulled.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/ParentOrganisationenResponse" } } + } + }, + "401": { "description": "Not authorized to get the organizations." }, + "403": { "description": "Insufficient permissions to get the organizations." }, + "500": { "description": "Internal server error while getting the organization." } }, - "/api/rolle/{rolleId}/serviceProviders": { - "get": { - "operationId": "RolleController_getRolleServiceProviderIds", - "summary": "", - "description": "Get service-providers for a rolle by its id.", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "path", - "description": "The id for the rolle.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Returns a list of service-provider ids.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolleServiceProviderResponse" - } - } - } - }, - "401": { - "description": "Not authorized to retrieve service-providers for rolle." - }, - "404": { - "description": "The rolle does not exist." - } - }, - "tags": [ - "rolle" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "put": { - "operationId": "RolleController_updateServiceProvidersById", - "summary": "", - "description": "Add a service-provider to a rolle by id.", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "path", - "description": "The id for the rolle.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolleServiceProviderBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "Adding service-provider finished successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProviderResponse" - } - } - } - } - }, - "400": { - "description": "The service-provider is already attached to rolle." - }, - "401": { - "description": "Not authorized to retrieve service-providers for rolle." - }, - "404": { - "description": "The rolle or the service-provider to add does not exist." - }, - "500": { - "description": "Internal server error, the service-provider may could not be found after attaching to rolle." - } - }, - "tags": [ - "rolle" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "delete": { - "operationId": "RolleController_removeServiceProviderById", - "summary": "", - "description": "Remove a service-provider from a rolle by id.", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "path", - "description": "The id for the rolle.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolleServiceProviderBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "Removing service-provider finished successfully." - }, - "401": { - "description": "Not authorized to retrieve service-providers for rolle." - }, - "404": { - "description": "The rolle or the service-provider that should be removed does not exist." - } - }, - "tags": [ - "rolle" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/organisationen/{organisationId}/administriert": { + "get": { + "operationId": "OrganisationController_getAdministrierteOrganisationen", + "parameters": [ + { + "name": "organisationId", + "required": true, + "in": "path", + "description": "The id of an organization", + "schema": { "nullable": false, "type": "string" } + }, + { + "name": "offset", + "required": false, + "in": "query", + "description": "The offset of the paginated list.", + "schema": { "type": "number" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The requested limit for the page size.", + "schema": { "type": "number" } + }, + { "name": "searchFilter", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } } + ], + "responses": { + "200": { + "description": "The organizations were successfully returned.", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OrganisationResponse" } } + } + } + }, + "401": { "description": "Not authorized to get organizations." }, + "403": { "description": "Insufficient permissions to get organizations." }, + "500": { "description": "Internal server error while getting all organizations." } }, - "/api/provider/all": { - "get": { - "operationId": "ProviderController_getAllServiceProviders", - "summary": "", - "description": "Get all service-providers.", - "parameters": [], - "responses": { - "200": { - "description": "The service-providers were successfully returned.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProviderResponse" - } - } - } - } - }, - "401": { - "description": "Not authorized to get available service providers." - }, - "403": { - "description": "Insufficient permissions to get service-providers." - }, - "500": { - "description": "Internal server error while getting all service-providers." - } - }, - "tags": [ - "provider" - ], - "security": [ - { - "bearer": [] - }, - { - "oauth2": [ - "openid" - ] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "post": { + "operationId": "OrganisationController_addAdministrierteOrganisation", + "parameters": [ + { + "name": "organisationId", + "required": true, + "in": "path", + "description": "The id of an organization", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationByIdBodyParams" } } } }, - "/api/provider": { - "get": { - "operationId": "ProviderController_getAvailableServiceProviders", - "summary": "", - "description": "Get service-providers available for logged-in user.", - "parameters": [], - "responses": { - "200": { - "description": "The service-providers were successfully returned.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProviderResponse" - } - } - } - } - }, - "401": { - "description": "Not authorized to get available service providers." - }, - "403": { - "description": "Insufficient permissions to get service-providers." - }, - "500": { - "description": "Internal server error while getting all service-providers." - } - }, - "tags": [ - "provider" - ], - "security": [ - { - "bearer": [] - }, - { - "oauth2": [ - "openid" - ] - } - ] - } + "responses": { + "201": { "description": "The organisation was successfully updated." }, + "400": { + "description": "The organisation could not be modified.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamOrganisationError" } } } + }, + "401": { "description": "Not authorized to modify the organisation." }, + "403": { "description": "Not permitted to modify the organisation." }, + "500": { "description": "Internal server error while modifying the organisation." } }, - "/api/provider/{angebotId}/logo": { - "get": { - "operationId": "ProviderController_getServiceProviderLogo", - "parameters": [ - { - "name": "angebotId", - "required": true, - "in": "path", - "description": "The id of the service provider", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The logo for the service provider was successfully returned.", - "content": { - "image/*": { - "schema": { - "type": "file", - "format": "binary" - } - } - } - }, - "400": { - "description": "Angebot ID is required." - }, - "401": { - "description": "Not authorized to get service provider logo." - }, - "403": { - "description": "Insufficient permissions to get the logo." - }, - "404": { - "description": "The service-provider does not exist or has no logo." - }, - "500": { - "description": "Internal server error while getting the logo." - } - }, - "tags": [ - "provider" - ], - "security": [ - { - "bearer": [] - }, - { - "oauth2": [ - "openid" - ] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/organisationen/{organisationId}/zugehoerig": { + "get": { + "operationId": "OrganisationController_getZugehoerigeOrganisationen", + "parameters": [ + { + "name": "organisationId", + "required": true, + "in": "path", + "description": "The id of an organization", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "The organizations were successfully returned.", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OrganisationResponse" } } + } + } + }, + "401": { "description": "Not authorized to get organizations." }, + "403": { "description": "Insufficient permissions to get organizations." }, + "500": { "description": "Internal server error while getting all organizations." } }, - "/api/personenkontexte/{personenkontextId}": { - "get": { - "operationId": "PersonenkontextController_findPersonenkontextById", - "parameters": [ - { - "name": "personenkontextId", - "required": true, - "in": "path", - "description": "The id for the personenkontext.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The personenkontext was successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonendatensatzResponseAutomapper" - } - } - } - }, - "400": { - "description": "Request has wrong format." - }, - "401": { - "description": "Request is not authorized." - }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { - "description": "The personenkontext was not found." - }, - "500": { - "description": "An internal server error occurred." - } - }, - "tags": [ - "personenkontexte" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "put": { - "operationId": "PersonenkontextController_updatePersonenkontextWithId", - "summary": "", - "deprecated": true, - "parameters": [ - { - "name": "personenkontextId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The personenkontext was successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonenkontextResponse" - } - } - } - }, - "400": { - "description": "Request has wrong format." - }, - "401": { - "description": "Request is not authorized." - }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { - "description": "The personenkontext was not found." - }, - "500": { - "description": "An internal server error occurred." - } - }, - "tags": [ - "personenkontexte" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - }, - "delete": { - "operationId": "PersonenkontextController_deletePersonenkontextById", - "parameters": [ - { - "name": "personenkontextId", - "required": true, - "in": "path", - "description": "The id for the personenkontext.", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteRevisionBodyParams" - } - } - } - }, - "responses": { - "204": { - "description": "The personenkontext was successfully deleted." - }, - "400": { - "description": "Request has wrong format." - }, - "401": { - "description": "Request is not authorized." - }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { - "description": "The personenkontext was not found." - }, - "500": { - "description": "An internal server error occurred." - } - }, - "tags": [ - "personenkontexte" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "post": { + "operationId": "OrganisationController_addZugehoerigeOrganisation", + "parameters": [ + { + "name": "organisationId", + "required": true, + "in": "path", + "description": "The id of an organization", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationByIdBodyParams" } } } }, - "/api/personenkontexte": { - "get": { - "operationId": "PersonenkontextController_findPersonenkontexte", - "parameters": [ - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { - "type": "number" - } - }, - { - "name": "personId", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "referrer", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "personenstatus", - "required": false, - "in": "query", - "schema": { - "$ref": "#/components/schemas/Personenstatus" - } - }, - { - "name": "sichtfreigabe", - "required": false, - "in": "query", - "schema": { - "$ref": "#/components/schemas/Sichtfreigabe" - } - } - ], - "responses": { - "200": { - "description": "The personenkontexte were successfully returned.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonenkontextdatensatzResponse" - } - } - } - } - }, - "400": { - "description": "Request has wrong format." - }, - "401": { - "description": "Request is not authorized." - }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { - "description": "The personenkontexte were not found." - }, - "500": { - "description": "An internal server error occurred." - } - }, - "tags": [ - "personenkontexte" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "201": { "description": "The organisation was successfully updated." }, + "400": { + "description": "The organisation could not be modified.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamOrganisationError" } } } + }, + "401": { "description": "Not authorized to modify the organisation." }, + "403": { "description": "Not permitted to modify the organisation." }, + "500": { "description": "Internal server error while modifying the organisation." } }, - "/api/personenkontexte/{personId}/hatSystemrecht": { - "get": { - "operationId": "PersonenkontextController_hatSystemRecht", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The id for the account.", - "schema": { - "nullable": false, - "type": "string" - } - }, - { - "name": "systemRecht", - "required": true, - "in": "query", - "schema": { - "$ref": "#/components/schemas/RollenSystemRecht" - } - } - ], - "responses": { - "200": { - "description": "The SchulStrukturKnoten associated with this personId and systemrecht. Can return empty list", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SystemrechtResponse" - } - } - } - }, - "404": { - "description": "The systemrecht could not be found (does not exist as type of systemrecht)." - } - }, - "tags": [ - "personenkontexte" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/organisationen/{organisationId}/klasse": { + "delete": { + "operationId": "OrganisationController_deleteKlasse", + "summary": "", + "description": "Delete an organisation of type Klasse by id.", + "parameters": [ + { + "name": "organisationId", + "required": true, + "in": "path", + "description": "The id of an organization", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "204": { "description": "The organisation was deleted successfully." }, + "400": { + "description": "The input was not valid.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamOrganisationError" } } } + }, + "401": { "description": "Not authorized to delete the organisation." }, + "404": { "description": "The organisation that should be deleted does not exist." } }, - "/api/dbiam/personenkontext/{personId}": { - "get": { - "operationId": "DBiamPersonenkontextController_findPersonenkontextsByPerson", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The ID for the person.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The personenkontexte were successfully returned.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DBiamPersonenkontextResponse" - } - } - } - } - }, - "401": { - "description": "Not authorized to get available personenkontexte." - }, - "403": { - "description": "Insufficient permission to get personenkontexte for this user." - }, - "500": { - "description": "Internal server error while getting personenkontexte." - } - }, - "tags": [ - "dbiam-personenkontexte" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/organisationen/{organisationId}/name": { + "patch": { + "operationId": "OrganisationController_updateOrganisationName", + "parameters": [ + { + "name": "organisationId", + "required": true, + "in": "path", + "description": "The id of an organization", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationByNameBodyParams" } } + } }, - "/api/dbiam/personenkontext": { - "post": { - "operationId": "DBiamPersonenkontextController_createPersonenkontextMigration", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonenkontextMigrationBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "Personenkontext was successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBiamPersonenkontextResponse" - } - } - } - }, - "400": { - "description": "The personenkontext could not be created, may due to unsatisfied specifications.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonenkontextError" - } - } - } - }, - "401": { - "description": "Not authorized to create personenkontext." - }, - "403": { - "description": "Insufficient permission to create personenkontext." - }, - "500": { - "description": "Internal server error while creating personenkontext." - } - }, - "tags": [ - "dbiam-personenkontexte" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "200": { + "description": "The organizations were successfully updated.", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationResponseLegacy" } } + } + }, + "400": { + "description": "The organisation could not be modified.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamOrganisationError" } } } + }, + "401": { "description": "Not authorized to modify the organisation." }, + "403": { "description": "Not permitted to modify the organisation." }, + "500": { "description": "Internal server error while modifying the organisation." } }, - "/api/personenkontext-workflow/step": { - "get": { - "operationId": "DbiamPersonenkontextWorkflowController_processStep", - "parameters": [ - { - "name": "organisationId", - "required": false, - "in": "query", - "description": "ID of the organisation to filter the rollen later", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "rolleId", - "required": false, - "in": "query", - "description": "ID of the rolle.", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "rolleName", - "required": false, - "in": "query", - "description": "Rolle name used to filter for rollen in personenkontext.", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "organisationName", - "required": false, - "in": "query", - "description": "Organisation/SSK name used to filter for schulstrukturknoten in personenkontext.", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The limit of items for the request.", - "schema": { - "nullable": false, - "type": "number" - } - } - ], - "responses": { - "200": { - "description": "Initialize or process data from the person creation form.\n Valid combinations:\n - Both organisationId and rolleId are undefined: Fetch all possible organisations.\n - organisationId is provided, but rolleId is undefined: Fetch Rollen for the given organisation.\n - Both organisationId and rolleId are provided: Check if the Rolle can be committed for the organisation.\n Note: Providing rolleId without organisationId is invalid.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonenkontextWorkflowResponse" - } - } - } - }, - "401": { - "description": "Not authorized to get available data for personenkontext." - }, - "403": { - "description": "Insufficient permission to get data for personenkontext." - }, - "500": { - "description": "Internal server error while getting data for personenkontext." - } - }, - "tags": [ - "personenkontext" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/organisationen/{organisationId}/enable-for-its-learning": { + "put": { + "operationId": "OrganisationController_enableForitslearning", + "parameters": [ + { + "name": "organisationId", + "required": true, + "in": "path", + "description": "The id of an organization", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "The organization was successfully enabled for itslearning.", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/OrganisationResponseLegacy" } } + } + }, + "400": { + "description": "The organisation could not be modified.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamOrganisationError" } } } + }, + "401": { "description": "Not authorized to modify the organisation." }, + "403": { "description": "Not permitted to modify the organisation." }, + "500": { "description": "Internal server error while modifying the organisation." } }, - "/api/personenkontext-workflow/{personId}": { - "put": { - "operationId": "DbiamPersonenkontextWorkflowController_commit", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The ID for the person.", - "schema": { - "type": "string" - } - }, - { - "name": "personalnummer", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamUpdatePersonenkontexteBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "Add or remove personenkontexte as one operation. Returns the Personenkontexte existing after update.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonenkontexteUpdateResponse" - } - } - } - }, - "400": { - "description": "The personenkontexte could not be updated, may due to unsatisfied specifications.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonenkontexteUpdateError" - } - } - } - }, - "401": { - "description": "Not authorized to update personenkontexte." - }, - "403": { - "description": "Insufficient permission to update personenkontexte." - }, - "409": { - "description": "Changes are conflicting with current state of personenkontexte." - }, - "500": { - "description": "Internal server error while updating personenkontexte." - } - }, - "tags": [ - "personenkontext" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] + "tags": ["organisationen"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/rolle": { + "get": { + "operationId": "RolleController_findRollen", + "summary": "", + "description": "List all rollen.", + "parameters": [ + { + "name": "offset", + "required": false, + "in": "query", + "description": "The offset of the paginated list.", + "schema": { "type": "number" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The requested limit for the page size.", + "schema": { "type": "number" } + }, + { + "name": "searchStr", + "required": false, + "in": "query", + "description": "The name for the role.", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "The rollen were successfully returned", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/RolleWithServiceProvidersResponse" } + } + } } + }, + "401": { "description": "Not authorized to get rollen." }, + "403": { "description": "Insufficient permissions to get rollen." }, + "500": { "description": "Internal server error while getting all rollen." } }, - "/api/personenkontext-workflow/schulstrukturknoten": { - "get": { - "operationId": "DbiamPersonenkontextWorkflowController_findSchulstrukturknoten", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "query", - "description": "RolleId used to filter for schulstrukturknoten in personenkontext.", - "schema": { - "nullable": false, - "type": "string" - } - }, - { - "name": "sskName", - "required": false, - "in": "query", - "description": "Organisation/SSK name used to filter for schulstrukturknoten in personenkontext.", - "schema": { - "nullable": true, - "type": "string" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The limit of items for the request.", - "schema": { - "nullable": false, - "type": "number" - } - } - ], - "responses": { - "200": { - "description": "The schulstrukturknoten for a personenkontext were successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FindSchulstrukturknotenResponse" - } - } - } - }, - "401": { - "description": "Not authorized to get available schulstrukturknoten for personenkontexte." - }, - "403": { - "description": "Insufficient permission to get schulstrukturknoten for personenkontext." - }, - "500": { - "description": "Internal server error while getting schulstrukturknoten for personenkontexte." - } - }, - "tags": [ - "personenkontext" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["rolle"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "post": { + "operationId": "RolleController_createRolle", + "summary": "", + "description": "Create a new rolle.", + "parameters": [], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRolleBodyParams" } } } }, - "/api/personenkontext-workflow": { - "post": { - "operationId": "DbiamPersonenkontextWorkflowController_createPersonWithPersonenkontexte", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamCreatePersonWithPersonenkontexteBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "Person with Personenkontext was successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBiamPersonResponse" - } - } - } - }, - "400": { - "description": "The person and the personenkontext could not be created, may due to unsatisfied specifications.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonenkontextError" - } - } - } - }, - "401": { - "description": "Not authorized to create person with personenkontext." - }, - "403": { - "description": "Insufficient permission to create person with personenkontext." - }, - "500": { - "description": "Internal server error while creating person with personenkontext." - } - }, - "tags": [ - "personenkontext" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "201": { + "description": "The rolle was successfully created.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RolleResponse" } } } + }, + "400": { + "description": "The input was not valid.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamRolleError" } } } + }, + "401": { "description": "Not authorized to create the rolle." }, + "403": { "description": "Insufficient permissions to create the rolle." }, + "500": { "description": "Internal server error while creating the rolle." } }, - "/api/person-administration/rollen": { - "get": { - "operationId": "PersonAdministrationController_findRollen", - "parameters": [ - { - "name": "rolleName", - "required": false, - "in": "query", - "description": "Rolle name used to filter for rollen in personenkontext.", - "schema": { - "nullable": false, - "type": "string" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The limit of items for the request.", - "schema": { - "nullable": false, - "type": "number" - } - } - ], - "responses": { - "200": { - "description": "The rollen for the logged-in user were successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FindRollenResponse" - } - } - } - }, - "401": { - "description": "Not authorized to get available rollen for the logged-in user." - }, - "403": { - "description": "Insufficient permission to get rollen for the logged-in user." - }, - "500": { - "description": "Internal server error while getting rollen for the logged-in user." - } - }, - "tags": [ - "person-administration" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["rolle"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/rolle/{rolleId}": { + "get": { + "operationId": "RolleController_findRolleByIdWithServiceProviders", + "summary": "", + "description": "Get rolle by id.", + "parameters": [ + { + "name": "rolleId", + "required": true, + "in": "path", + "description": "The id for the rolle.", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "The rolle was successfully returned.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/RolleWithServiceProvidersResponse" } } + } + }, + "401": { "description": "Not authorized to get rolle by id." }, + "403": { "description": "Insufficient permission to get rolle by id." }, + "500": { "description": "Internal server error while getting rolle by id." } }, - "/api/2fa-token/init": { - "post": { - "operationId": "PrivacyIdeaAdministrationController_initializeSoftwareToken", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenInitBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The token was successfully created.", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "400": { - "description": "A username was not given or not found." - }, - "401": { - "description": "Not authorized to create token." - }, - "403": { - "description": "Insufficient permissions to create token." - }, - "404": { - "description": "Insufficient permissions to create token." - }, - "500": { - "description": "Internal server error while creating a token." - } - }, - "tags": [ - "2FA" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["rolle"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "patch": { + "operationId": "RolleController_addSystemRecht", + "summary": "", + "description": "Add systemrecht to a rolle.", + "parameters": [ + { + "name": "rolleId", + "required": true, + "in": "path", + "description": "The id for the rolle.", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddSystemrechtBodyParams" } } } }, - "/api/2fa-token/state": { - "get": { - "operationId": "PrivacyIdeaAdministrationController_getTwoAuthState", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "201": { - "description": "The token state was successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenStateResponse" - } - } - } - }, - "400": { - "description": "A username was not given or not found." - }, - "401": { - "description": "Not authorized to get token state." - }, - "403": { - "description": "Insufficient permissions to get token state." - }, - "404": { - "description": "Insufficient permissions to get token state." - }, - "500": { - "description": "Internal server error while retrieving token state." - } - }, - "tags": [ - "2FA" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "200": { "description": "The systemrecht was successfully added to rolle." }, + "400": { "description": "The input was not valid." }, + "401": { "description": "Not authorized to create the rolle." }, + "403": { "description": "Insufficient permissions to create the rolle." }, + "500": { "description": "Internal server error while adding systemrecht to rolle." } }, - "/api/2fa-token/reset": { - "put": { - "operationId": "PrivacyIdeaAdministrationController_resetToken", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "201": { - "description": "The token was successfully reset.", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - }, - "400": { - "description": "A username was not given or not found." - }, - "401": { - "description": "Not authorized to reset token." - }, - "403": { - "description": "Insufficient permissions to reset token." - }, - "404": { - "description": "Insufficient permissions to reset token." - }, - "500": { - "description": "Internal server error while reseting a token." - } - }, - "tags": [ - "2FA" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["rolle"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "put": { + "operationId": "RolleController_updateRolle", + "summary": "", + "description": "Update rolle.", + "parameters": [ + { + "name": "rolleId", + "required": true, + "in": "path", + "description": "The id for the rolle.", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRolleBodyParams" } } } }, - "/api/2fa-token/assign/hardwareToken": { - "post": { - "operationId": "PrivacyIdeaAdministrationController_assignHardwareToken", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AssignHardwareTokenBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The hardware token was successfully assigned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AssignHardwareTokenResponse" - } - } - } - }, - "400": { - "description": "Not found." - }, - "401": { - "description": "Not authorized to assign hardware token." - }, - "403": { - "description": "Insufficient permissions to reset token." - }, - "404": { - "description": "Insufficient permissions to assign hardware token." - }, - "500": { - "description": "Internal server error while assigning a hardware token." - } - }, - "tags": [ - "2FA" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "200": { + "description": "The rolle was successfully updated.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/RolleWithServiceProvidersResponse" } } + } + }, + "400": { + "description": "The input was not valid.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamRolleError" } } } + }, + "401": { "description": "Not authorized to update the rolle." }, + "403": { "description": "Insufficient permissions to update the rolle." }, + "500": { "description": "Internal server error while updating the rolle." } }, - "/api/2fa-token/verify": { - "post": { - "operationId": "PrivacyIdeaAdministrationController_verifyToken", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenVerifyBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The token was successfully verified." - }, - "400": { - "description": "A username was not given or not found." - }, - "401": { - "description": "Not authorized to verify token." - }, - "403": { - "description": "Insufficient permissions to verify token." - }, - "404": { - "description": "Insufficient permissions to verify token." - }, - "500": { - "description": "Internal server error while verifying a token." - } - }, - "tags": [ - "2FA" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["rolle"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "delete": { + "operationId": "RolleController_deleteRolle", + "summary": "", + "description": "Delete a role by id.", + "parameters": [ + { + "name": "rolleId", + "required": true, + "in": "path", + "description": "The id for the rolle.", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "204": { "description": "Role was deleted successfully." }, + "400": { + "description": "The input was not valid.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamRolleError" } } } + }, + "401": { "description": "Not authorized to delete the role." }, + "404": { "description": "The rolle that should be deleted does not exist." } }, - "/api/2fa-token/required": { - "get": { - "operationId": "PrivacyIdeaAdministrationController_requiresTwoFactorAuthentication", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The requirement was successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenRequiredResponse" - } - } - } - }, - "400": { - "description": "A username was not given or not found." - }, - "401": { - "description": "Not authorized to get requirement information." - }, - "403": { - "description": "Insufficient permissions to get requirement information." - }, - "404": { - "description": "Insufficient permissions to get requirement information." - }, - "500": { - "description": "Internal server error while getting requirement information." - } - }, - "tags": [ - "2FA" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["rolle"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/rolle/{rolleId}/serviceProviders": { + "get": { + "operationId": "RolleController_getRolleServiceProviderIds", + "summary": "", + "description": "Get service-providers for a rolle by its id.", + "parameters": [ + { + "name": "rolleId", + "required": true, + "in": "path", + "description": "The id for the rolle.", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "Returns a list of service-provider ids.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/RolleServiceProviderResponse" } } + } + }, + "401": { "description": "Not authorized to retrieve service-providers for rolle." }, + "404": { "description": "The rolle does not exist." } }, - "/api/cron/kopers-lock": { - "put": { - "operationId": "CronController_koPersUserLock", - "parameters": [], - "responses": { - "201": { - "description": "User were successfully locked.", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - }, - "400": { - "description": "User are not given or not found" - }, - "401": { - "description": "Not authorized to lock user." - }, - "403": { - "description": "Insufficient permissions to lock user." - }, - "404": { - "description": "Insufficient permissions to lock user." - }, - "500": { - "description": "Internal server error while trying to lock user." - } - }, - "tags": [ - "cron" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["rolle"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "put": { + "operationId": "RolleController_updateServiceProvidersById", + "summary": "", + "description": "Add a service-provider to a rolle by id.", + "parameters": [ + { + "name": "rolleId", + "required": true, + "in": "path", + "description": "The id for the rolle.", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/RolleServiceProviderBodyParams" } } + } }, - "/api/cron/kontext-expired": { - "put": { - "operationId": "CronController_removePersonenKontexteWithExpiredBefristungFromUsers", - "parameters": [], - "responses": { - "201": { - "description": "Personenkontexte were successfully removed from users.", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - }, - "400": { - "description": "Personenkontexte are not given or not found." - }, - "401": { - "description": "Not authorized to remove personenkontexte from users." - }, - "403": { - "description": "Insufficient permissions to remove personenkontexte from users." - }, - "404": { - "description": "Insufficient permissions to remove personenkontexte from users." - }, - "500": { - "description": "Internal server error while trying to remove personenkontexte from users." - } - }, - "tags": [ - "cron" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "200": { + "description": "Adding service-provider finished successfully.", + "content": { + "application/json": { + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceProviderResponse" } } + } + } + }, + "400": { "description": "The service-provider is already attached to rolle." }, + "401": { "description": "Not authorized to retrieve service-providers for rolle." }, + "404": { "description": "The rolle or the service-provider to add does not exist." }, + "500": { + "description": "Internal server error, the service-provider may could not be found after attaching to rolle." + } }, - "/api/cron/person-without-org": { - "put": { - "operationId": "CronController_personWithoutOrgDelete", - "parameters": [], - "responses": { - "201": { - "description": "User were successfully removed.", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - }, - "400": { - "description": "User are not given or not found" - }, - "401": { - "description": "Not authorized to remove user." - }, - "403": { - "description": "Insufficient permissions to delete user." - }, - "404": { - "description": "Insufficient permissions to delete user." - }, - "500": { - "description": "Internal server error while trying to remove user." - } - }, - "tags": [ - "cron" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["rolle"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "delete": { + "operationId": "RolleController_removeServiceProviderById", + "summary": "", + "description": "Remove a service-provider from a rolle by id.", + "parameters": [ + { + "name": "rolleId", + "required": true, + "in": "path", + "description": "The id for the rolle.", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/RolleServiceProviderBodyParams" } } + } }, - "/api/cron/unlock": { - "put": { - "operationId": "CronController_unlockUsersWithExpiredLocks", - "parameters": [], - "responses": { - "200": { - "description": "The users were successfully unlocked.", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - }, - "401": { - "description": "Not authorized to unlock users." - }, - "403": { - "description": "Insufficient permissions to unlock users." - }, - "404": { - "description": "Insufficient permissions to unlock users." - }, - "500": { - "description": "Internal server error while trying to unlock users." - } - }, - "tags": [ - "cron" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "200": { "description": "Removing service-provider finished successfully." }, + "401": { "description": "Not authorized to retrieve service-providers for rolle." }, + "404": { "description": "The rolle or the service-provider that should be removed does not exist." } }, - "/api/cron/vidis-angebote": { - "put": { - "operationId": "CronController_updateServiceProvidersForVidisAngebote", - "parameters": [], - "responses": { - "201": { - "description": "VIDIS Angebote were successfully updated.", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - }, - "400": { - "description": "VIDIS Angebote were not successfully updated." - }, - "401": { - "description": "Not authorized to update VIDIS Angebote." - }, - "403": { - "description": "Insufficient permissions to update VIDIS Angebote." - }, - "404": { - "description": "Insufficient permissions to update VIDIS Angebote." - }, - "500": { - "description": "Internal server error while trying to update VIDIS Angebote." - } - }, - "tags": [ - "cron" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["rolle"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/provider/all": { + "get": { + "operationId": "ProviderController_getAllServiceProviders", + "summary": "", + "description": "Get all service-providers.", + "parameters": [], + "responses": { + "200": { + "description": "The service-providers were successfully returned.", + "content": { + "application/json": { + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceProviderResponse" } } + } + } + }, + "401": { "description": "Not authorized to get available service providers." }, + "403": { "description": "Insufficient permissions to get service-providers." }, + "500": { "description": "Internal server error while getting all service-providers." } }, - "/api/import/upload": { - "post": { - "operationId": "ImportController_uploadFile", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonenkontextImportBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "Returns an import upload response object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUploadResponse" - } - } - } - }, - "400": { - "description": "The CSV file was not valid." - }, - "401": { - "description": "Not authorized to import data with a CSV file." - }, - "403": { - "description": "Insufficient permissions to import data with a CSV file." - }, - "500": { - "description": "Internal server error while importing data with a CSV file." - } - }, - "tags": [ - "import" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["provider"], + "security": [{ "bearer": [] }, { "oauth2": ["openid"] }] + } + }, + "/api/provider": { + "get": { + "operationId": "ProviderController_getAvailableServiceProviders", + "summary": "", + "description": "Get service-providers available for logged-in user.", + "parameters": [], + "responses": { + "200": { + "description": "The service-providers were successfully returned.", + "content": { + "application/json": { + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceProviderResponse" } } + } + } + }, + "401": { "description": "Not authorized to get available service providers." }, + "403": { "description": "Insufficient permissions to get service-providers." }, + "500": { "description": "Internal server error while getting all service-providers." } }, - "/api/import/execute": { - "post": { - "operationId": "ImportController_executeImport", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportvorgangByIdBodyParams" - } - } - } - }, - "responses": { - "204": { - "description": "The execution of the import transaction was initiated successfully." - }, - "400": { - "description": "Something went wrong with the found import transaction.", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DbiamImportError" - } - } - } - }, - "401": { - "description": "Not authorized to execute the import transaction." - }, - "403": { - "description": "Insufficient permissions to execute the import transaction." - }, - "404": { - "description": "The import transaction does not exist." - }, - "500": { - "description": "Internal server error while executing the import transaction." - } - }, - "tags": [ - "import" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["provider"], + "security": [{ "bearer": [] }, { "oauth2": ["openid"] }] + } + }, + "/api/provider/{angebotId}/logo": { + "get": { + "operationId": "ProviderController_getServiceProviderLogo", + "parameters": [ + { + "name": "angebotId", + "required": true, + "in": "path", + "description": "The id of the service provider", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "The logo for the service provider was successfully returned.", + "content": { "image/*": { "schema": { "type": "file", "format": "binary" } } } + }, + "400": { "description": "Angebot ID is required." }, + "401": { "description": "Not authorized to get service provider logo." }, + "403": { "description": "Insufficient permissions to get the logo." }, + "404": { "description": "The service-provider does not exist or has no logo." }, + "500": { "description": "Internal server error while getting the logo." } }, - "/api/import/{importvorgangId}": { - "delete": { - "operationId": "ImportController_deleteImportTransaction", - "summary": "", - "description": "Delete a role by id.", - "parameters": [ - { - "name": "importvorgangId", - "required": true, - "in": "path", - "description": "The id of an import transaction", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Import transaction was deleted successfully." - }, - "400": { - "description": "Something went wrong with the found import transaction.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamImportError" - } - } - } - }, - "401": { - "description": "Not authorized to delete the import transaction." - }, - "404": { - "description": "The import transaction that should be deleted does not exist." - } - }, - "tags": [ - "import" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["provider"], + "security": [{ "bearer": [] }, { "oauth2": ["openid"] }] + } + }, + "/api/personenkontexte/{personenkontextId}": { + "get": { + "operationId": "PersonenkontextController_findPersonenkontextById", + "parameters": [ + { + "name": "personenkontextId", + "required": true, + "in": "path", + "description": "The id for the personenkontext.", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "The personenkontext was successfully returned.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/PersonendatensatzResponseAutomapper" } } + } + }, + "400": { "description": "Request has wrong format." }, + "401": { "description": "Request is not authorized." }, + "403": { "description": "Insufficient permissions to perform operation." }, + "404": { "description": "The personenkontext was not found." }, + "500": { "description": "An internal server error occurred." } }, - "/api/import/history": { - "get": { - "operationId": "ImportController_findImportTransactions", - "summary": "", - "description": "Get the history of import.", - "parameters": [ - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { - "type": "number" - } - }, - { - "name": "status", - "required": false, - "in": "query", - "schema": { - "$ref": "#/components/schemas/ImportStatus" - } - }, - { - "name": "rolleIds", - "required": false, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "organisationIds", - "required": false, - "in": "query", - "description": "Liefert Importvorgänge mit den angegebenen IDs, selbst wenn andere Filterkriterien nicht zutreffen (ODER-verknüpft mit anderen Kriterien).", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "200": { - "description": "The import transactions were successfully returned", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportVorgangResponse" - } - } - } - } - }, - "401": { - "description": "Not authorized to get import transactions." - }, - "403": { - "description": "Insufficient permissions to get import transactions." - }, - "500": { - "description": "Internal server error while getting import transactions." - } - }, - "tags": [ - "import" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["personenkontexte"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "put": { + "operationId": "PersonenkontextController_updatePersonenkontextWithId", + "summary": "", + "deprecated": true, + "parameters": [{ "name": "personenkontextId", "required": true, "in": "path", "schema": { "type": "string" } }], + "responses": { + "200": { + "description": "The personenkontext was successfully updated.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonenkontextResponse" } } } + }, + "400": { "description": "Request has wrong format." }, + "401": { "description": "Request is not authorized." }, + "403": { "description": "Insufficient permissions to perform operation." }, + "404": { "description": "The personenkontext was not found." }, + "500": { "description": "An internal server error occurred." } }, - "/api/import/{importvorgangId}/download": { - "get": { - "operationId": "ImportController_downloadFile", - "parameters": [ - { - "name": "importvorgangId", - "required": true, - "in": "path", - "description": "The id of an import transaction", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The import result file was generated and downloaded successfully.", - "content": { - "text/plain": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "400": { - "description": "Something went wrong with the found import transaction.", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DbiamImportError" - } - } - } - }, - "401": { - "description": "Not authorized to download the import result." - }, - "403": { - "description": "Insufficient permissions to download the import result." - }, - "404": { - "description": "The import transaction does not exist." - }, - "500": { - "description": "Internal server error while generating the import result file." - } - }, - "tags": [ - "import" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "tags": ["personenkontexte"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + }, + "delete": { + "operationId": "PersonenkontextController_deletePersonenkontextById", + "parameters": [ + { + "name": "personenkontextId", + "required": true, + "in": "path", + "description": "The id for the personenkontext.", + "schema": { "nullable": false, "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteRevisionBodyParams" } } } }, - "/api/import/{importvorgangId}/status": { - "get": { - "operationId": "ImportController_getImportStatus", - "summary": "", - "description": "Get status for the import transaction by id.", - "parameters": [ - { - "name": "importvorgangId", - "required": true, - "in": "path", - "description": "The id of an import transaction", - "schema": { - "nullable": false, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The status for the import transaction was successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportVorgangStatusResponse" - } - } - } - }, - "401": { - "description": "Not authorized to get the status for the import transaction by id." - }, - "403": { - "description": "Insufficient permission to get status for the import transaction by id." - }, - "500": { - "description": "Internal server error while getting status for the import transaction by id." - } - }, - "tags": [ - "import" - ], - "security": [ - { - "oauth2": [ - "openid" - ] - }, - { - "bearer": [] - } - ] - } + "responses": { + "204": { "description": "The personenkontext was successfully deleted." }, + "400": { "description": "Request has wrong format." }, + "401": { "description": "Request is not authorized." }, + "403": { "description": "Insufficient permissions to perform operation." }, + "404": { "description": "The personenkontext was not found." }, + "500": { "description": "An internal server error occurred." } }, - "/metrics": { - "get": { - "operationId": "MetricsController_getMetrics", - "summary": "Get Prometheus metrics", - "parameters": [], - "responses": { - "200": { - "description": "Prometheus metrics." - } - }, - "tags": [ - "Metrics" - ] - } + "tags": ["personenkontexte"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personenkontexte": { + "get": { + "operationId": "PersonenkontextController_findPersonenkontexte", + "parameters": [ + { + "name": "offset", + "required": false, + "in": "query", + "description": "The offset of the paginated list.", + "schema": { "type": "number" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The requested limit for the page size.", + "schema": { "type": "number" } + }, + { "name": "personId", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, + { "name": "referrer", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, + { + "name": "personenstatus", + "required": false, + "in": "query", + "schema": { "$ref": "#/components/schemas/Personenstatus" } + }, + { + "name": "sichtfreigabe", + "required": false, + "in": "query", + "schema": { "$ref": "#/components/schemas/Sichtfreigabe" } + } + ], + "responses": { + "200": { + "description": "The personenkontexte were successfully returned.", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/PersonenkontextdatensatzResponse" } + } + } + } + }, + "400": { "description": "Request has wrong format." }, + "401": { "description": "Request is not authorized." }, + "403": { "description": "Insufficient permissions to perform operation." }, + "404": { "description": "The personenkontexte were not found." }, + "500": { "description": "An internal server error occurred." } }, - "/api/status": { - "get": { - "operationId": "StatusController_getStatus", - "parameters": [], - "responses": { - "200": { - "description": "" - } - }, - "tags": [ - "status" - ] - } + "tags": ["personenkontexte"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personenkontexte/{personId}/hatSystemrecht": { + "get": { + "operationId": "PersonenkontextController_hatSystemRecht", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The id for the account.", + "schema": { "nullable": false, "type": "string" } + }, + { + "name": "systemRecht", + "required": true, + "in": "query", + "schema": { "$ref": "#/components/schemas/RollenSystemRecht" } + } + ], + "responses": { + "200": { + "description": "The SchulStrukturKnoten associated with this personId and systemrecht. Can return empty list", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemrechtResponse" } } } + }, + "404": { "description": "The systemrecht could not be found (does not exist as type of systemrecht)." } }, - "/api/config": { - "get": { - "operationId": "ConfigController_getFeatureFlags", - "parameters": [], - "responses": { - "200": { - "description": "The feature flag config was successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FeatureFlagResponse" - } - } - } - }, - "500": { - "description": "Internal server error while getting the config." - } - }, - "tags": [ - "config" - ] - } - } + "tags": ["personenkontexte"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } }, - "info": { - "title": "dBildungs IAM", - "description": "The dBildungs IAM server API description", - "version": "1.0", - "contact": {} + "/api/dbiam/personenkontext/{personId}": { + "get": { + "operationId": "DBiamPersonenkontextController_findPersonenkontextsByPerson", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The ID for the person.", + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "The personenkontexte were successfully returned.", + "content": { + "application/json": { + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DBiamPersonenkontextResponse" } } + } + } + }, + "401": { "description": "Not authorized to get available personenkontexte." }, + "403": { "description": "Insufficient permission to get personenkontexte for this user." }, + "500": { "description": "Internal server error while getting personenkontexte." } + }, + "tags": ["dbiam-personenkontexte"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } }, - "tags": [], - "servers": [], - "components": { - "securitySchemes": { - "oauth2": { - "type": "oauth2", - "flows": { - "authorizationCode": { - "authorizationUrl": "http://localhost:8080/realms/SPSH/protocol/openid-connect/auth", - "tokenUrl": "http://localhost:8080/realms/SPSH/protocol/openid-connect/token", - "refreshUrl": "http://localhost:8080/realms/SPSH/protocol/openid-connect/token", - "scopes": {} - } - } - }, - "bearer": { - "scheme": "bearer", - "bearerFormat": "JWT", - "type": "http" - } + "/api/dbiam/personenkontext": { + "post": { + "operationId": "DBiamPersonenkontextController_createPersonenkontextMigration", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/DbiamPersonenkontextMigrationBodyParams" } } + } }, - "schemas": { - "RollenSystemRechtServiceProviderIDResponse": { - "type": "object", - "properties": { - "systemrechte": { - "type": "array", - "items": { - "type": "string" - } - }, - "serviceProviderIds": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "systemrechte", - "serviceProviderIds" - ] - }, - "PersonenkontextRolleFieldsResponse": { - "type": "object", - "properties": { - "organisationsId": { - "type": "string" - }, - "rolle": { - "$ref": "#/components/schemas/RollenSystemRechtServiceProviderIDResponse" - } - }, - "required": [ - "organisationsId", - "rolle" - ] - }, - "PersonTimeLimitInfoResponse": { - "type": "object", - "properties": { - "occasion": { - "type": "string" - }, - "deadline": { - "type": "string" - } - }, - "required": [ - "occasion", - "deadline" - ] - }, - "UserinfoResponse": { - "type": "object", - "properties": { - "sub": { - "type": "string" - }, - "personId": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "given_name": { - "type": "string", - "nullable": true - }, - "family_name": { - "type": "string", - "nullable": true - }, - "middle_name": { - "type": "string", - "nullable": true - }, - "nickname": { - "type": "string", - "nullable": true - }, - "preferred_username": { - "type": "string", - "nullable": true - }, - "profile": { - "type": "string", - "nullable": true - }, - "picture": { - "type": "string", - "nullable": true - }, - "website": { - "type": "string", - "nullable": true - }, - "email": { - "type": "string", - "nullable": true - }, - "email_verified": { - "type": "boolean", - "nullable": true - }, - "gender": { - "type": "string", - "nullable": true - }, - "birthdate": { - "type": "string", - "nullable": true - }, - "zoneinfo": { - "type": "string", - "nullable": true - }, - "locale": { - "type": "string", - "nullable": true - }, - "phone_number": { - "type": "string", - "nullable": true - }, - "updated_at": { - "type": "string", - "nullable": true - }, - "password_updated_at": { - "type": "string", - "nullable": true - }, - "personenkontexte": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonenkontextRolleFieldsResponse" - } - }, - "acr": { - "type": "string", - "nullable": false - }, - "timeLimits": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonTimeLimitInfoResponse" - } - } - }, - "required": [ - "sub", - "personId", - "name", - "given_name", - "family_name", - "middle_name", - "nickname", - "preferred_username", - "profile", - "picture", - "website", - "email", - "email_verified", - "gender", - "birthdate", - "zoneinfo", - "locale", - "phone_number", - "updated_at", - "password_updated_at", - "personenkontexte", - "acr", - "timeLimits" - ] - }, - "CreatePersonMigrationBodyParams": { - "type": "object", - "properties": { - "personId": { - "type": "string" - }, - "familienname": { - "type": "string" - }, - "vorname": { - "type": "string" - }, - "hashedPassword": { - "type": "string" - }, - "username": { - "type": "string" - }, - "personalnummer": { - "type": "string" - } - }, - "required": [ - "personId", - "familienname", - "vorname" - ] - }, - "PersonNameParams": { - "type": "object", - "properties": { - "familienname": { - "type": "string" - }, - "vorname": { - "type": "string" - }, - "initialenfamilienname": { - "type": "string" - }, - "initialenvorname": { - "type": "string" - }, - "rufname": { - "type": "string" - }, - "titel": { - "type": "string" - }, - "anrede": { - "type": "array", - "items": { - "type": "string" - } - }, - "namenssuffix": { - "type": "array", - "items": { - "type": "string" - } - }, - "namenspraefix": { - "type": "array", - "items": { - "type": "string" - } - }, - "sortierindex": { - "type": "string" - } - }, - "required": [ - "familienname", - "vorname" - ] - }, - "PersonBirthParams": { - "type": "object", - "properties": { - "datum": { - "format": "date-time", - "type": "string" - }, - "geburtsort": { - "type": "string" - } - } - }, - "Vertrauensstufe": { - "type": "string", - "enum": [ - "KEIN", - "UNBE", - "TEIL", - "VOLL" - ] - }, - "UserLockParams": { - "type": "object", - "properties": { - "personId": { - "type": "string", - "nullable": true - }, - "locked_by": { - "type": "string", - "nullable": true - }, - "created_at": { - "type": "string", - "nullable": true - }, - "locked_until": { - "type": "string", - "nullable": true - }, - "lock_occasion": { - "type": "string", - "nullable": true - } - }, - "required": [ - "personId", - "locked_by", - "created_at", - "locked_until", - "lock_occasion" - ] - }, - "EmailAddressStatus": { - "type": "string", - "enum": [ - "ENABLED", - "DISABLED", - "REQUESTED", - "FAILED" - ] - }, - "PersonEmailResponse": { - "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/EmailAddressStatus" - }, - "address": { - "type": "string" - } - }, - "required": [ - "status", - "address" - ] - }, - "PersonResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "referrer": { - "type": "string", - "nullable": true - }, - "mandant": { - "type": "string" - }, - "name": { - "$ref": "#/components/schemas/PersonNameParams" - }, - "geburt": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/PersonBirthParams" - } - ] - }, - "stammorganisation": { - "type": "string", - "nullable": true - }, - "geschlecht": { - "type": "string", - "nullable": true - }, - "lokalisierung": { - "type": "string", - "nullable": true - }, - "vertrauensstufe": { - "nullable": true, - "$ref": "#/components/schemas/Vertrauensstufe" - }, - "revision": { - "type": "string" - }, - "startpasswort": { - "type": "string", - "description": "Initiales Benutzerpasswort, muss nach der ersten Anmeldung geändert werden" - }, - "personalnummer": { - "type": "string", - "nullable": true - }, - "isLocked": { - "type": "boolean", - "nullable": true - }, - "userLock": { - "nullable": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/UserLockParams" - } - }, - "lastModified": { - "format": "date-time", - "type": "string", - "description": "Date of the most recent changes for the person" - }, - "email": { - "nullable": true, - "description": "Contains status and address. Returns email-address verified by OX (enabled) if available, otherwise returns most recently updated one (no prioritized status)", - "allOf": [ - { - "$ref": "#/components/schemas/PersonEmailResponse" - } - ] - } - }, - "required": [ - "id", - "referrer", - "mandant", - "name", - "geburt", - "stammorganisation", - "geschlecht", - "lokalisierung", - "vertrauensstufe", - "revision", - "startpasswort", - "personalnummer", - "isLocked", - "userLock", - "lastModified", - "email" - ] - }, - "PersonendatensatzResponse": { - "type": "object", - "properties": { - "person": { - "$ref": "#/components/schemas/PersonResponse" - } - }, - "required": [ - "person" - ] - }, - "RawPagedResponse": { - "type": "object", - "properties": { - "total": { - "type": "number" - }, - "offset": { - "type": "number" - }, - "limit": { - "type": "number" - }, - "items": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "total", - "offset", - "limit", - "items" - ] - }, - "CreatedPersonenkontextOrganisation": { - "type": "object", - "properties": {} - }, - "LoeschungResponse": { - "type": "object", - "properties": { - "zeitpunkt": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "zeitpunkt" - ] - }, - "PersonenkontextResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "referrer": { - "type": "string", - "nullable": true - }, - "mandant": { - "type": "string" - }, - "organisation": { - "$ref": "#/components/schemas/CreatedPersonenkontextOrganisation" - }, - "rollenart": { - "type": "string", - "nullable": true - }, - "rollenname": { - "type": "string", - "nullable": true - }, - "personenstatus": { - "type": "string", - "enum": [ - "AKTIV" - ], - "nullable": true - }, - "jahrgangsstufe": { - "type": "string", - "enum": [ - "01", - "02", - "03", - "04", - "05", - "06", - "07", - "08", - "09", - "10" - ], - "nullable": true - }, - "sichtfreigabe": { - "type": "string", - "enum": [ - "ja", - "nein" - ], - "nullable": true - }, - "loeschung": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/LoeschungResponse" - } - ] - }, - "revision": { - "type": "string" - } - }, - "required": [ - "id", - "referrer", - "mandant", - "organisation", - "rollenart", - "rollenname", - "personenstatus", - "jahrgangsstufe", - "sichtfreigabe", - "loeschung", - "revision" - ] - }, - "Personenstatus": { - "type": "string", - "enum": [ - "AKTIV" - ] - }, - "Sichtfreigabe": { - "type": "string", - "enum": [ - "ja", - "nein" - ] - }, - "Geschlecht": { - "type": "string", - "enum": [ - "m", - "w", - "d", - "x" - ] - }, - "UpdatePersonBodyParams": { - "type": "object", - "properties": { - "referrer": { - "type": "string" - }, - "stammorganisation": { - "type": "string" - }, - "name": { - "$ref": "#/components/schemas/PersonNameParams" - }, - "geburt": { - "$ref": "#/components/schemas/PersonBirthParams" - }, - "geschlecht": { - "$ref": "#/components/schemas/Geschlecht" - }, - "lokalisierung": { - "type": "string" - }, - "vertrauensstufe": { - "$ref": "#/components/schemas/Vertrauensstufe" - }, - "auskunftssperre": { - "type": "boolean" - }, - "revision": { - "type": "string" - } - }, - "required": [ - "name", - "revision" - ] - }, - "LockUserBodyParams": { - "type": "object", - "properties": { - "lock": { - "type": "boolean", - "nullable": false - }, - "locked_by": { - "type": "string", - "nullable": false - }, - "locked_until": { - "format": "date-time", - "type": "string", - "description": "Required if Befristung is set" - } - }, - "required": [ - "lock", - "locked_by" - ] - }, - "PersonLockResponse": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ] - }, - "PersonMetadataBodyParams": { - "type": "object", - "properties": { - "familienname": { - "type": "string" - }, - "vorname": { - "type": "string" - }, - "personalnummer": { - "type": "string" - }, - "lastModified": { - "format": "date-time", - "type": "string", - "description": "Date of the most recent changed Personalnummer" - }, - "revision": { - "type": "string" - } - }, - "required": [ - "familienname", - "vorname", - "lastModified", - "revision" - ] - }, - "DbiamPersonError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "PERSON_ERROR", - "VORNAME_ENTHAELT_LEERZEICHEN", - "FAMILIENNAME_ENTHAELT_LEERZEICHEN", - "PERSON_NOT_FOUND", - "DOWNSTREAM_UNREACHABLE", - "PERSONALNUMMER_REQUIRED", - "NEWER_VERSION_OF_PERSON_AVAILABLE", - "PERSONALNUMMER_NICHT_EINDEUTIG", - "PERSON_UEM_PASSWORD_MODIFICATION_ERROR" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": [ - "i18nKey", - "code" - ] - }, - "RollenArt": { - "type": "string", - "enum": [ - "LERN", - "LEHR", - "EXTERN", - "ORGADMIN", - "LEIT", - "SYSADMIN" - ] - }, - "OrganisationsTyp": { - "type": "string", - "enum": [ - "ROOT", - "LAND", - "TRAEGER", - "SCHULE", - "KLASSE", - "ANBIETER", - "SONSTIGE ORGANISATION / EINRICHTUNG", - "UNBESTAETIGT" - ] - }, - "RollenMerkmal": { - "type": "string", - "enum": [ - "BEFRISTUNG_PFLICHT", - "KOPERS_PFLICHT" - ] - }, - "DBiamPersonenzuordnungResponse": { - "type": "object", - "properties": { - "sskId": { - "type": "string" - }, - "rolleId": { - "type": "string" - }, - "sskName": { - "type": "string" - }, - "sskDstNr": { - "type": "string" - }, - "rolle": { - "type": "string" - }, - "rollenArt": { - "nullable": false, - "$ref": "#/components/schemas/RollenArt" - }, - "administriertVon": { - "type": "string" - }, - "typ": { - "nullable": true, - "$ref": "#/components/schemas/OrganisationsTyp" - }, - "editable": { - "type": "boolean" - }, - "befristung": { - "format": "date-time", - "type": "string" - }, - "merkmale": { - "nullable": true, - "$ref": "#/components/schemas/RollenMerkmal" - }, - "admins": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "sskId", - "rolleId", - "sskName", - "sskDstNr", - "rolle", - "rollenArt", - "administriertVon", - "typ", - "editable", - "befristung", - "merkmale", - "admins" - ] - }, - "DBiamPersonenuebersichtResponse": { - "type": "object", - "properties": { - "personId": { - "type": "string" - }, - "vorname": { - "type": "string" - }, - "nachname": { - "type": "string" - }, - "benutzername": { - "type": "string" - }, - "lastModifiedZuordnungen": { - "format": "date-time", - "type": "string", - "nullable": true, - "description": "Date of the most recent changed personenkontext in the Zuordnungen" - }, - "zuordnungen": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DBiamPersonenzuordnungResponse" - } - } - }, - "required": [ - "personId", - "vorname", - "nachname", - "benutzername", - "lastModifiedZuordnungen", - "zuordnungen" - ] - }, - "PersonenuebersichtBodyParams": { - "type": "object", - "properties": { - "personIds": { - "description": "An array of IDs for the persons.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "personIds" - ] - }, - "PersonNameResponse": { - "type": "object", - "properties": { - "familiennamen": { - "type": "string" - }, - "vorname": { - "type": "string" - }, - "initialenfamilienname": { - "type": "string", - "nullable": true - }, - "initialenvorname": { - "type": "string", - "nullable": true - }, - "rufname": { - "type": "string", - "nullable": true - }, - "titel": { - "type": "string", - "nullable": true - }, - "anrede": { - "nullable": true, - "type": "array", - "items": { - "type": "string" - } - }, - "namenspraefix": { - "nullable": true, - "type": "array", - "items": { - "type": "string" - } - }, - "namenssuffix": { - "nullable": true, - "type": "array", - "items": { - "type": "string" - } - }, - "sortierindex": { - "type": "string", - "nullable": true - } - }, - "required": [ - "familiennamen", - "vorname", - "initialenfamilienname", - "initialenvorname", - "rufname", - "titel", - "anrede", - "namenspraefix", - "namenssuffix", - "sortierindex" - ] - }, - "PersonBirthResponse": { - "type": "object", - "properties": { - "datum": { - "format": "date-time", - "type": "string", - "nullable": true - }, - "geburtsort": { - "type": "string", - "nullable": true - } - }, - "required": [ - "datum", - "geburtsort" - ] - }, - "Person": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "referrer": { - "type": "string", - "nullable": true - }, - "mandant": { - "type": "string" - }, - "name": { - "$ref": "#/components/schemas/PersonNameResponse" - }, - "geburt": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/PersonBirthResponse" - } - ] - }, - "stammorganisation": { - "type": "string", - "nullable": true - }, - "geschlecht": { - "type": "string", - "nullable": true - }, - "lokalisierung": { - "type": "string", - "nullable": true - }, - "vertrauensstufe": { - "nullable": true, - "$ref": "#/components/schemas/Vertrauensstufe" - }, - "revision": { - "type": "string" - }, - "personalnummer": { - "type": "string", - "nullable": true - }, - "dienststellen": { - "nullable": true, - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "id", - "referrer", - "mandant", - "name", - "geburt", - "stammorganisation", - "geschlecht", - "lokalisierung", - "vertrauensstufe", - "revision", - "personalnummer", - "dienststellen" - ] - }, - "PersonInfoResponse": { - "type": "object", - "properties": { - "pid": { - "type": "string" - }, - "person": { - "$ref": "#/components/schemas/Person" - }, - "personenkontexte": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonenkontextResponse" - } - }, - "gruppen": { - "type": "array", - "items": { - "type": "string" - } - }, - "email": { - "nullable": true, - "description": "Contains status and address. Returns email-address verified by OX (enabled) if available, otherwise returns most recently updated one (no prioritized status)", - "allOf": [ - { - "$ref": "#/components/schemas/PersonEmailResponse" - } - ] - } - }, - "required": [ - "pid", - "person", - "personenkontexte", - "gruppen", - "email" - ] - }, - "TraegerschaftTyp": { - "type": "string", - "enum": [ - "01", - "02", - "03", - "04", - "05", - "06" - ] - }, - "CreateOrganisationBodyParams": { - "type": "object", - "properties": { - "administriertVon": { - "type": "string" - }, - "zugehoerigZu": { - "type": "string" - }, - "kennung": { - "type": "string", - "description": "Required, if `typ` is equal to `SCHULE`" - }, - "name": { - "type": "string" - }, - "namensergaenzung": { - "type": "string" - }, - "kuerzel": { - "type": "string" - }, - "typ": { - "$ref": "#/components/schemas/OrganisationsTyp" - }, - "traegerschaft": { - "$ref": "#/components/schemas/TraegerschaftTyp" - }, - "emailAdress": { - "type": "string" - } - }, - "required": [ - "name", - "typ" - ] - }, - "OrganisationResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "administriertVon": { - "type": "string", - "nullable": true - }, - "kennung": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string" - }, - "namensergaenzung": { - "type": "string", - "nullable": true - }, - "kuerzel": { - "type": "string" - }, - "typ": { - "$ref": "#/components/schemas/OrganisationsTyp" - }, - "traegerschaft": { - "$ref": "#/components/schemas/TraegerschaftTyp" - }, - "itslearningEnabled": { - "type": "boolean" - }, - "version": { - "type": "number" - } - }, - "required": [ - "id", - "administriertVon", - "kennung", - "name", - "namensergaenzung", - "kuerzel", - "typ", - "traegerschaft", - "itslearningEnabled", - "version" - ] - }, - "DbiamOrganisationError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "ORGANISATION_SPECIFICATION_ERROR", - "KENNUNG_REQUIRED_FOR_SCHULE", - "NAME_REQUIRED_FOR_SCHULE", - "SCHULE_KENNUNG_EINDEUTIG", - "SCHULE_UNTER_TRAEGER", - "TRAEGER_IN_TRAEGER", - "NUR_KLASSE_UNTER_SCHULE", - "ZYKLUS_IN_ORGANISATION", - "ROOT_ORGANISATION_IMMUTABLE", - "KLASSE_NUR_VON_SCHULE_ADMINISTRIERT", - "KLASSENNAME_AN_SCHULE_EINDEUTIG", - "ORGANISATION_IST_BEREITS_ZUGEWIESEN_ERROR", - "NAME_REQUIRED_FOR_KLASSE", - "NAME_ENTHAELT_LEERZEICHEN", - "KENNUNG_ENTHAELT_LEERZEICHEN", - "EMAIL_ADRESS_ON_ORGANISATION_TYP", - "NEWER_VERSION_ORGANISATION" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": [ - "i18nKey", - "code" - ] - }, - "UpdateOrganisationBodyParams": { - "type": "object", - "properties": { - "administriertVon": { - "type": "string" - }, - "zugehoerigZu": { - "type": "string" - }, - "kennung": { - "type": "string", - "description": "Required, if `typ` is equal to `SCHULE`" - }, - "name": { - "type": "string" - }, - "namensergaenzung": { - "type": "string" - }, - "kuerzel": { - "type": "string" - }, - "typ": { - "$ref": "#/components/schemas/OrganisationsTyp" - }, - "traegerschaft": { - "$ref": "#/components/schemas/TraegerschaftTyp" - }, - "emailAdress": { - "type": "string" - } - }, - "required": [ - "name", - "typ" - ] - }, - "OrganisationRootChildrenResponse": { - "type": "object", - "properties": { - "oeffentlich": { - "$ref": "#/components/schemas/OrganisationResponse" - }, - "ersatz": { - "$ref": "#/components/schemas/OrganisationResponse" - } - }, - "required": [ - "oeffentlich", - "ersatz" - ] - }, - "ParentOrganisationsByIdsBodyParams": { - "type": "object", - "properties": { - "organisationIds": { - "description": "The ids of organizations", - "nullable": false, - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "organisationIds" - ] - }, - "ParentOrganisationenResponse": { - "type": "object", - "properties": { - "parents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - }, - "required": [ - "parents" - ] - }, - "RollenSystemRecht": { - "type": "string", - "enum": [ - "ROLLEN_VERWALTEN", - "PERSONEN_SOFORT_LOESCHEN", - "PERSONEN_VERWALTEN", - "SCHULEN_VERWALTEN", - "KLASSEN_VERWALTEN", - "SCHULTRAEGER_VERWALTEN", - "MIGRATION_DURCHFUEHREN", - "PERSON_SYNCHRONISIEREN", - "CRON_DURCHFUEHREN", - "PERSONEN_ANLEGEN", - "IMPORT_DURCHFUEHREN", - "PERSONEN_LESEN" - ] - }, - "OrganisationByIdBodyParams": { - "type": "object", - "properties": { - "organisationId": { - "type": "string", - "description": "The id of an organization", - "nullable": false - } - }, - "required": [ - "organisationId" - ] - }, - "OrganisationByNameBodyParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "number", - "description": "The version for the organisation." - } - }, - "required": [ - "name", - "version" - ] - }, - "OrganisationResponseLegacy": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "administriertVon": { - "type": "string", - "nullable": true - }, - "kennung": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string" - }, - "namensergaenzung": { - "type": "string", - "nullable": true - }, - "kuerzel": { - "type": "string" - }, - "typ": { - "$ref": "#/components/schemas/OrganisationsTyp" - } - }, - "required": [ - "id", - "administriertVon", - "kennung", - "name", - "namensergaenzung", - "kuerzel", - "typ" - ] - }, - "ServiceProviderIdNameResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ] - }, - "RolleWithServiceProvidersResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "createdAt": { - "format": "date-time", - "type": "string" - }, - "updatedAt": { - "format": "date-time", - "type": "string" - }, - "name": { - "type": "string" - }, - "administeredBySchulstrukturknoten": { - "type": "string" - }, - "rollenart": { - "$ref": "#/components/schemas/RollenArt" - }, - "merkmale": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/RollenMerkmal" - } - }, - "systemrechte": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/RollenSystemRecht" - } - }, - "administeredBySchulstrukturknotenName": { - "type": "string", - "nullable": true - }, - "administeredBySchulstrukturknotenKennung": { - "type": "string", - "nullable": true - }, - "version": { - "type": "number" - }, - "serviceProviders": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProviderIdNameResponse" - } - } - }, - "required": [ - "id", - "createdAt", - "updatedAt", - "name", - "administeredBySchulstrukturknoten", - "rollenart", - "merkmale", - "systemrechte", - "administeredBySchulstrukturknotenName", - "administeredBySchulstrukturknotenKennung", - "version", - "serviceProviders" - ] - }, - "CreateRolleBodyParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "administeredBySchulstrukturknoten": { - "type": "string" - }, - "rollenart": { - "$ref": "#/components/schemas/RollenArt" - }, - "merkmale": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/RollenMerkmal" - } - }, - "systemrechte": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/RollenSystemRecht" - } - } - }, - "required": [ - "name", - "administeredBySchulstrukturknoten", - "rollenart", - "merkmale", - "systemrechte" - ] - }, - "RolleResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "createdAt": { - "format": "date-time", - "type": "string" - }, - "updatedAt": { - "format": "date-time", - "type": "string" - }, - "name": { - "type": "string" - }, - "administeredBySchulstrukturknoten": { - "type": "string" - }, - "rollenart": { - "$ref": "#/components/schemas/RollenArt" - }, - "merkmale": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/RollenMerkmal" - } - }, - "systemrechte": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/RollenSystemRecht" - } - }, - "administeredBySchulstrukturknotenName": { - "type": "string", - "nullable": true - }, - "administeredBySchulstrukturknotenKennung": { - "type": "string", - "nullable": true - }, - "version": { - "type": "number" - } - }, - "required": [ - "id", - "createdAt", - "updatedAt", - "name", - "administeredBySchulstrukturknoten", - "rollenart", - "merkmale", - "systemrechte", - "administeredBySchulstrukturknotenName", - "administeredBySchulstrukturknotenKennung", - "version" - ] - }, - "DbiamRolleError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "ROLLE_ERROR", - "ADD_SYSTEMRECHT_ERROR", - "ROLLE_HAT_PERSONENKONTEXTE_ERROR", - "UPDATE_MERKMALE_ERROR", - "ROLLENNAME_ENTHAELT_LEERZEICHEN", - "NEWER_VERSION_OF_ROLLE_AVAILABLE", - "ROLLE_NAME_UNIQUE_ON_SSK" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": [ - "i18nKey", - "code" - ] - }, - "AddSystemrechtBodyParams": { - "type": "object", - "properties": { - "systemRecht": { - "$ref": "#/components/schemas/RollenSystemRecht" - } - }, - "required": [ - "systemRecht" - ] - }, - "RolleServiceProviderResponse": { - "type": "object", - "properties": { - "serviceProviderIds": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "serviceProviderIds" - ] - }, - "RolleServiceProviderBodyParams": { - "type": "object", - "properties": { - "serviceProviderIds": { - "description": "An array of ids for the service providers.", - "nullable": false, - "type": "array", - "items": { - "type": "string" - } - }, - "version": { - "type": "number", - "description": "The version for the rolle." - } - }, - "required": [ - "serviceProviderIds", - "version" - ] - }, - "ServiceProviderTarget": { - "type": "string", - "enum": [ - "URL", - "EMAIL", - "SCHULPORTAL_ADMINISTRATION" - ] - }, - "ServiceProviderKategorie": { - "type": "string", - "enum": [ - "EMAIL", - "UNTERRICHT", - "VERWALTUNG", - "HINWEISE", - "ANGEBOTE" - ] - }, - "ServiceProviderResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "target": { - "$ref": "#/components/schemas/ServiceProviderTarget" - }, - "url": { - "type": "string", - "description": "Can be undefined, if `target` is not equal to `URL`" - }, - "kategorie": { - "$ref": "#/components/schemas/ServiceProviderKategorie" - }, - "hasLogo": { - "type": "boolean" - }, - "requires2fa": { - "type": "boolean" - } - }, - "required": [ - "id", - "name", - "target", - "url", - "kategorie", - "hasLogo", - "requires2fa" - ] - }, - "UpdateRolleBodyParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "merkmale": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/RollenMerkmal" - } - }, - "systemrechte": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/RollenSystemRecht" - } - }, - "serviceProviderIds": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "version": { - "type": "number" - } - }, - "required": [ - "name", - "merkmale", - "systemrechte", - "serviceProviderIds", - "version" - ] - }, - "PersonResponseAutomapper": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "referrer": { - "type": "string" - }, - "mandant": { - "type": "string" - }, - "name": { - "$ref": "#/components/schemas/PersonNameParams" - }, - "geburt": { - "$ref": "#/components/schemas/PersonBirthParams" - }, - "stammorganisation": { - "type": "string" - }, - "geschlecht": { - "type": "string" - }, - "lokalisierung": { - "type": "string" - }, - "vertrauensstufe": { - "$ref": "#/components/schemas/Vertrauensstufe" - }, - "revision": { - "type": "string" - }, - "startpasswort": { - "type": "string", - "description": "Initiales Benutzerpasswort, muss nach der ersten Anmeldung geändert werden" - }, - "personalnummer": { - "type": "string" - } - }, - "required": [ - "id", - "referrer", - "mandant", - "name", - "geburt", - "stammorganisation", - "geschlecht", - "lokalisierung", - "vertrauensstufe", - "revision", - "startpasswort", - "personalnummer" - ] - }, - "PersonendatensatzResponseAutomapper": { - "type": "object", - "properties": { - "person": { - "$ref": "#/components/schemas/PersonResponseAutomapper" - }, - "personenkontexte": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonenkontextResponse" - } - } - }, - "required": [ - "person", - "personenkontexte" - ] - }, - "PersonIdResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - }, - "PersonenkontextdatensatzResponse": { - "type": "object", - "properties": { - "person": { - "$ref": "#/components/schemas/PersonIdResponse" - }, - "personenkontexte": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonenkontextResponse" - } - } - }, - "required": [ - "person", - "personenkontexte" - ] - }, - "SystemrechtResponse": { - "type": "object", - "properties": { - "ROLLEN_VERWALTEN": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - }, - "KLASSEN_VERWALTEN": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - }, - "SCHULEN_VERWALTEN": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - }, - "PERSONEN_VERWALTEN": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - }, - "SCHULTRAEGER_VERWALTEN": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - } - }, - "required": [ - "ROLLEN_VERWALTEN", - "KLASSEN_VERWALTEN", - "SCHULEN_VERWALTEN", - "PERSONEN_VERWALTEN", - "SCHULTRAEGER_VERWALTEN" - ] - }, - "DeleteRevisionBodyParams": { - "type": "object", - "properties": { - "revision": { - "type": "string", - "description": "The revision of a personenkontext.", - "nullable": false - } - }, - "required": [ - "revision" - ] - }, - "DBiamPersonenkontextResponse": { - "type": "object", - "properties": { - "personId": { - "type": "string" - }, - "organisationId": { - "type": "string" - }, - "rolleId": { - "type": "string" - }, - "befristung": { - "type": "string" - } - }, - "required": [ - "personId", - "organisationId", - "rolleId", - "befristung" - ] - }, - "PersonenkontextMigrationRuntype": { - "type": "string", - "enum": [ - "ITSLEARNING", - "STANDARD" - ] - }, - "DbiamPersonenkontextMigrationBodyParams": { - "type": "object", - "properties": { - "personId": { - "type": "string" - }, - "username": { - "type": "string" - }, - "organisationId": { - "type": "string" - }, - "rolleId": { - "type": "string" - }, - "befristung": { - "format": "date-time", - "type": "string" - }, - "email": { - "type": "string" - }, - "migrationRunType": { - "$ref": "#/components/schemas/PersonenkontextMigrationRuntype" - } - }, - "required": [ - "personId", - "organisationId", - "rolleId", - "migrationRunType" - ] - }, - "DbiamPersonenkontextError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "PERSONENKONTEXT_SPECIFICATION_ERROR", - "NUR_LEHR_UND_LERN_AN_KLASSE", - "GLEICHE_ROLLE_AN_KLASSE_WIE_SCHULE", - "ORGANISATION_MATCHES_ROLLENART", - "PERSONENKONTEXT_ANLAGE_ERROR", - "ROLLE_NUR_AN_PASSENDE_ORGANISATION", - "PERSONALNUMMER_NICHT_EINDEUTIG" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": [ - "i18nKey", - "code" - ] - }, - "PersonenkontextWorkflowResponse": { - "type": "object", - "properties": { - "organisations": { - "description": "List of available organisations.", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - }, - "rollen": { - "description": "List of available roles.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RolleResponse" - } - }, - "selectedOrganisation": { - "type": "string", - "description": "Selected organisation.", - "nullable": true - }, - "selectedRolle": { - "type": "string", - "description": "Selected rolle.", - "nullable": true - }, - "canCommit": { - "type": "boolean", - "description": "Indicates whether the commit action can be performed." - } - }, - "required": [ - "organisations", - "rollen", - "selectedOrganisation", - "selectedRolle", - "canCommit" - ] - }, - "DbiamPersonenkontextBodyParams": { - "type": "object", - "properties": { - "personId": { - "type": "string" - }, - "organisationId": { - "type": "string" - }, - "rolleId": { - "type": "string" - }, - "befristung": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "personId", - "organisationId", - "rolleId" - ] - }, - "DbiamUpdatePersonenkontexteBodyParams": { - "type": "object", - "properties": { - "lastModified": { - "format": "date-time", - "type": "string", - "nullable": true, - "description": "Date of the most recent changed personenkontext" - }, - "count": { - "type": "number", - "nullable": false, - "description": "The amount of personenkontexte" - }, - "personenkontexte": { - "nullable": false, - "type": "array", - "items": { - "$ref": "#/components/schemas/DbiamPersonenkontextBodyParams" - } - } - }, - "required": [ - "count", - "personenkontexte" - ] - }, - "PersonenkontexteUpdateResponse": { - "type": "object", - "properties": { - "dBiamPersonenkontextResponses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DBiamPersonenkontextResponse" - } - } - }, - "required": [ - "dBiamPersonenkontextResponses" - ] - }, - "DbiamPersonenkontexteUpdateError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "PERSONENKONTEXTE_UPDATE_ERROR", - "PERSONENKONTEXT_NOT_FOUND", - "COUNT_MISMATCHING", - "NEWER_VERSION_OF_PERSONENKONTEXTE_AVAILABLE", - "INVALID_LAST_MODIFIED_VALUE", - "PERSON_ID_MISMATCH", - "PERSON_NOT_FOUND", - "INVALID_PERSONENKONTEXT_FOR_PERSON_WITH_ROLLENART_LERN", - " BEFRISTUNG_REQUIRED_FOR_PERSONENKONTEXT" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": [ - "i18nKey", - "code" - ] - }, - "FindSchulstrukturknotenResponse": { - "type": "object", - "properties": { - "moeglicheSsks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - }, - "total": { - "type": "number" - } - }, - "required": [ - "moeglicheSsks", - "total" - ] - }, - "DbiamCreatePersonenkontextBodyParams": { - "type": "object", - "properties": { - "organisationId": { - "type": "string" - }, - "rolleId": { - "type": "string" - } - }, - "required": [ - "organisationId", - "rolleId" - ] - }, - "DbiamCreatePersonWithPersonenkontexteBodyParams": { - "type": "object", - "properties": { - "familienname": { - "type": "string" - }, - "vorname": { - "type": "string" - }, - "personalnummer": { - "type": "string" - }, - "befristung": { - "format": "date-time", - "type": "string" - }, - "createPersonenkontexte": { - "nullable": false, - "type": "array", - "items": { - "$ref": "#/components/schemas/DbiamCreatePersonenkontextBodyParams" - } - } - }, - "required": [ - "familienname", - "vorname", - "createPersonenkontexte" - ] - }, - "DBiamPersonResponse": { - "type": "object", - "properties": { - "person": { - "$ref": "#/components/schemas/PersonResponse" - }, - "dBiamPersonenkontextResponses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DBiamPersonenkontextResponse" - } - } - }, - "required": [ - "person", - "dBiamPersonenkontextResponses" - ] - }, - "FindRollenResponse": { - "type": "object", - "properties": { - "moeglicheRollen": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RolleResponse" - } - }, - "total": { - "type": "number" - } - }, - "required": [ - "moeglicheRollen", - "total" - ] - }, - "TokenInitBodyParams": { - "type": "object", - "properties": { - "personId": { - "type": "string" - } - }, - "required": [ - "personId" - ] - }, - "TokenStateResponse": { - "type": "object", - "properties": { - "hasToken": { - "type": "boolean" - }, - "tokenKind": { - "type": "string" - }, - "serial": { - "type": "string" - } - }, - "required": [ - "hasToken", - "tokenKind", - "serial" - ] - }, - "AssignHardwareTokenBodyParams": { - "type": "object", - "properties": { - "serial": { - "type": "string" - }, - "otp": { - "type": "string" - }, - "referrer": { - "type": "string" - }, - "userId": { - "type": "string" - } - }, - "required": [ - "serial", - "otp", - "referrer", - "userId" - ] - }, - "AssignHardwareTokenResponse": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "jsonrpc": { - "type": "string" - }, - "time": { - "type": "number" - }, - "version": { - "type": "string" - }, - "versionnumber": { - "type": "string" - }, - "signature": { - "type": "string" - }, - "dialogText": { - "type": "string" - } - }, - "required": [ - "id", - "jsonrpc", - "time", - "version", - "versionnumber", - "signature", - "dialogText" - ] - }, - "TokenVerifyBodyParams": { - "type": "object", - "properties": { - "personId": { - "type": "string" - }, - "otp": { - "type": "string" - } - }, - "required": [ - "personId", - "otp" - ] - }, - "TokenRequiredResponse": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "required": [ - "required" - ] - }, - "DbiamPersonenkontextImportBodyParams": { - "type": "object", - "properties": { - "organisationId": { - "type": "string" - }, - "rolleId": { - "type": "string" - }, - "file": { - "type": "string", - "format": "binary" - } - }, - "required": [ - "organisationId", - "rolleId", - "file" - ] - }, - "ImportDataItemResponse": { - "type": "object", - "properties": { - "nachname": { - "type": "string" - }, - "vorname": { - "type": "string" - }, - "klasse": { - "type": "string", - "nullable": true - }, - "validationErrors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "nachname", - "vorname", - "klasse", - "validationErrors" - ] - }, - "ImportUploadResponse": { - "type": "object", - "properties": { - "importvorgangId": { - "type": "string", - "description": "The import transaction number. it will be needed to execute the import and download the result" - }, - "isValid": { - "type": "boolean", - "description": "It states if the import transaction contain errors." - }, - "totalImportDataItems": { - "type": "number", - "description": "The total number of data items in the CSV file." - }, - "totalInvalidImportDataItems": { - "type": "number", - "description": "The total number of data items in the CSV file that are invalid." - }, - "invalidImportDataItems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportDataItemResponse" - } - } - }, - "required": [ - "importvorgangId", - "isValid", - "totalImportDataItems", - "totalInvalidImportDataItems", - "invalidImportDataItems" - ] - }, - "ImportvorgangByIdBodyParams": { - "type": "object", - "properties": { - "importvorgangId": { - "type": "string", - "description": "The id of an import transaction", - "nullable": false - } - }, - "required": [ - "importvorgangId" - ] - }, - "DbiamImportError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "IMPORT_ERROR", - "CSV_PARSING_ERROR", - "CSV_FILE_EMPTY_ERROR", - "IMPORT_TEXT_FILE_CREATION_ERROR", - "IMPORT_NUR_LERN_AN_SCHULE_ERROR", - "CSV_FILE_INVALID_HEADER_ERROR", - "IMPORT_MAX_USERS_LIMIT_ERROR", - "CSV_FILE_NO_USERS_ERROR" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": [ - "i18nKey", - "code" - ] - }, - "ImportStatus": { - "type": "string", - "enum": [ - "CANCELLED", - "COMPLETED", - "FAILED", - "FINISHED", - "INPROGRESS", - "INVALID", - "STARTED", - "VALID" - ] - }, - "ImportVorgangResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "createdAt": { - "format": "date-time", - "type": "string" - }, - "updatedAt": { - "format": "date-time", - "type": "string" - }, - "rollenname": { - "type": "string" - }, - "organisationsname": { - "type": "string" - }, - "dataItemCount": { - "type": "number" - }, - "status": { - "$ref": "#/components/schemas/ImportStatus" - } - }, - "required": [ - "id", - "createdAt", - "updatedAt", - "rollenname", - "organisationsname", - "dataItemCount", - "status" - ] - }, - "ImportVorgangStatusResponse": { - "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/ImportStatus" - } - }, - "required": [ - "status" - ] - }, - "FeatureFlagResponse": { - "type": "object", - "properties": { - "rolleBearbeitenEnabled": { - "type": "boolean" - }, - "befristungBearbeitenEnabled": { - "type": "boolean" - } - }, - "required": [ - "rolleBearbeitenEnabled", - "befristungBearbeitenEnabled" - ] - } + "responses": { + "201": { + "description": "Personenkontext was successfully created.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/DBiamPersonenkontextResponse" } } + } + }, + "400": { + "description": "The personenkontext could not be created, may due to unsatisfied specifications.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/DbiamPersonenkontextError" } } + } + }, + "401": { "description": "Not authorized to create personenkontext." }, + "403": { "description": "Insufficient permission to create personenkontext." }, + "500": { "description": "Internal server error while creating personenkontext." } + }, + "tags": ["dbiam-personenkontexte"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personenkontext-workflow/step": { + "get": { + "operationId": "DbiamPersonenkontextWorkflowController_processStep", + "parameters": [ + { + "name": "organisationId", + "required": false, + "in": "query", + "description": "ID of the organisation to filter the rollen later", + "schema": { "nullable": true, "type": "string" } + }, + { + "name": "rolleId", + "required": false, + "in": "query", + "description": "ID of the rolle.", + "schema": { "nullable": true, "type": "string" } + }, + { + "name": "rolleName", + "required": false, + "in": "query", + "description": "Rolle name used to filter for rollen in personenkontext.", + "schema": { "nullable": true, "type": "string" } + }, + { + "name": "organisationName", + "required": false, + "in": "query", + "description": "Organisation/SSK name used to filter for schulstrukturknoten in personenkontext.", + "schema": { "nullable": true, "type": "string" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The limit of items for the request.", + "schema": { "nullable": false, "type": "number" } + } + ], + "responses": { + "200": { + "description": "Initialize or process data from the person creation form.\n Valid combinations:\n - Both organisationId and rolleId are undefined: Fetch all possible organisations.\n - organisationId is provided, but rolleId is undefined: Fetch Rollen for the given organisation.\n - Both organisationId and rolleId are provided: Check if the Rolle can be committed for the organisation.\n Note: Providing rolleId without organisationId is invalid.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/PersonenkontextWorkflowResponse" } } + } + }, + "401": { "description": "Not authorized to get available data for personenkontext." }, + "403": { "description": "Insufficient permission to get data for personenkontext." }, + "500": { "description": "Internal server error while getting data for personenkontext." } + }, + "tags": ["personenkontext"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personenkontext-workflow/{personId}": { + "put": { + "operationId": "DbiamPersonenkontextWorkflowController_commit", + "parameters": [ + { + "name": "personId", + "required": true, + "in": "path", + "description": "The ID for the person.", + "schema": { "type": "string" } + }, + { "name": "personalnummer", "required": false, "in": "query", "schema": { "type": "string" } } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/DbiamUpdatePersonenkontexteBodyParams" } } + } + }, + "responses": { + "200": { + "description": "Add or remove personenkontexte as one operation. Returns the Personenkontexte existing after update.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/PersonenkontexteUpdateResponse" } } + } + }, + "400": { + "description": "The personenkontexte could not be updated, may due to unsatisfied specifications.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/DbiamPersonenkontexteUpdateError" } } + } + }, + "401": { "description": "Not authorized to update personenkontexte." }, + "403": { "description": "Insufficient permission to update personenkontexte." }, + "409": { "description": "Changes are conflicting with current state of personenkontexte." }, + "500": { "description": "Internal server error while updating personenkontexte." } + }, + "tags": ["personenkontext"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personenkontext-workflow/schulstrukturknoten": { + "get": { + "operationId": "DbiamPersonenkontextWorkflowController_findSchulstrukturknoten", + "parameters": [ + { + "name": "rolleId", + "required": true, + "in": "query", + "description": "RolleId used to filter for schulstrukturknoten in personenkontext.", + "schema": { "nullable": false, "type": "string" } + }, + { + "name": "sskName", + "required": false, + "in": "query", + "description": "Organisation/SSK name used to filter for schulstrukturknoten in personenkontext.", + "schema": { "nullable": true, "type": "string" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The limit of items for the request.", + "schema": { "nullable": false, "type": "number" } + } + ], + "responses": { + "200": { + "description": "The schulstrukturknoten for a personenkontext were successfully returned.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/FindSchulstrukturknotenResponse" } } + } + }, + "401": { "description": "Not authorized to get available schulstrukturknoten for personenkontexte." }, + "403": { "description": "Insufficient permission to get schulstrukturknoten for personenkontext." }, + "500": { "description": "Internal server error while getting schulstrukturknoten for personenkontexte." } + }, + "tags": ["personenkontext"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/personenkontext-workflow": { + "post": { + "operationId": "DbiamPersonenkontextWorkflowController_createPersonWithPersonenkontexte", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/DbiamCreatePersonWithPersonenkontexteBodyParams" } + } + } + }, + "responses": { + "201": { + "description": "Person with Personenkontext was successfully created.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DBiamPersonResponse" } } } + }, + "400": { + "description": "The person and the personenkontext could not be created, may due to unsatisfied specifications.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/DbiamPersonenkontextError" } } + } + }, + "401": { "description": "Not authorized to create person with personenkontext." }, + "403": { "description": "Insufficient permission to create person with personenkontext." }, + "500": { "description": "Internal server error while creating person with personenkontext." } + }, + "tags": ["personenkontext"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/person-administration/rollen": { + "get": { + "operationId": "PersonAdministrationController_findRollen", + "parameters": [ + { + "name": "rolleName", + "required": false, + "in": "query", + "description": "Rolle name used to filter for rollen in personenkontext.", + "schema": { "nullable": false, "type": "string" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The limit of items for the request.", + "schema": { "nullable": false, "type": "number" } + } + ], + "responses": { + "200": { + "description": "The rollen for the logged-in user were successfully returned.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FindRollenResponse" } } } + }, + "401": { "description": "Not authorized to get available rollen for the logged-in user." }, + "403": { "description": "Insufficient permission to get rollen for the logged-in user." }, + "500": { "description": "Internal server error while getting rollen for the logged-in user." } + }, + "tags": ["person-administration"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/2fa-token/init": { + "post": { + "operationId": "PrivacyIdeaAdministrationController_initializeSoftwareToken", + "parameters": [], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenInitBodyParams" } } } + }, + "responses": { + "201": { + "description": "The token was successfully created.", + "content": { "application/json": { "schema": { "type": "string" } } } + }, + "400": { "description": "A username was not given or not found." }, + "401": { "description": "Not authorized to create token." }, + "403": { "description": "Insufficient permissions to create token." }, + "404": { "description": "Insufficient permissions to create token." }, + "500": { "description": "Internal server error while creating a token." } + }, + "tags": ["2FA"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/2fa-token/state": { + "get": { + "operationId": "PrivacyIdeaAdministrationController_getTwoAuthState", + "parameters": [{ "name": "personId", "required": true, "in": "query", "schema": { "type": "string" } }], + "responses": { + "201": { + "description": "The token state was successfully returned.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenStateResponse" } } } + }, + "400": { "description": "A username was not given or not found." }, + "401": { "description": "Not authorized to get token state." }, + "403": { "description": "Insufficient permissions to get token state." }, + "404": { "description": "Insufficient permissions to get token state." }, + "500": { "description": "Internal server error while retrieving token state." } + }, + "tags": ["2FA"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/2fa-token/reset": { + "put": { + "operationId": "PrivacyIdeaAdministrationController_resetToken", + "parameters": [{ "name": "personId", "required": true, "in": "query", "schema": { "type": "string" } }], + "responses": { + "201": { + "description": "The token was successfully reset.", + "content": { "application/json": { "schema": { "type": "boolean" } } } + }, + "400": { "description": "A username was not given or not found." }, + "401": { "description": "Not authorized to reset token." }, + "403": { "description": "Insufficient permissions to reset token." }, + "404": { "description": "Insufficient permissions to reset token." }, + "500": { "description": "Internal server error while reseting a token." } + }, + "tags": ["2FA"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/2fa-token/assign/hardwareToken": { + "post": { + "operationId": "PrivacyIdeaAdministrationController_assignHardwareToken", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/AssignHardwareTokenBodyParams" } } + } + }, + "responses": { + "201": { + "description": "The hardware token was successfully assigned.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/AssignHardwareTokenResponse" } } + } + }, + "400": { "description": "Not found." }, + "401": { "description": "Not authorized to assign hardware token." }, + "403": { "description": "Insufficient permissions to reset token." }, + "404": { "description": "Insufficient permissions to assign hardware token." }, + "500": { "description": "Internal server error while assigning a hardware token." } + }, + "tags": ["2FA"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/2fa-token/verify": { + "post": { + "operationId": "PrivacyIdeaAdministrationController_verifyToken", + "parameters": [], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenVerifyBodyParams" } } } + }, + "responses": { + "201": { "description": "The token was successfully verified." }, + "400": { "description": "A username was not given or not found." }, + "401": { "description": "Not authorized to verify token." }, + "403": { "description": "Insufficient permissions to verify token." }, + "404": { "description": "Insufficient permissions to verify token." }, + "500": { "description": "Internal server error while verifying a token." } + }, + "tags": ["2FA"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/2fa-token/required": { + "get": { + "operationId": "PrivacyIdeaAdministrationController_requiresTwoFactorAuthentication", + "parameters": [{ "name": "personId", "required": true, "in": "query", "schema": { "type": "string" } }], + "responses": { + "200": { + "description": "The requirement was successfully returned.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenRequiredResponse" } } } + }, + "400": { "description": "A username was not given or not found." }, + "401": { "description": "Not authorized to get requirement information." }, + "403": { "description": "Insufficient permissions to get requirement information." }, + "404": { "description": "Insufficient permissions to get requirement information." }, + "500": { "description": "Internal server error while getting requirement information." } + }, + "tags": ["2FA"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/cron/kopers-lock": { + "put": { + "operationId": "CronController_koPersUserLock", + "parameters": [], + "responses": { + "201": { + "description": "User were successfully locked.", + "content": { "application/json": { "schema": { "type": "boolean" } } } + }, + "400": { "description": "User are not given or not found" }, + "401": { "description": "Not authorized to lock user." }, + "403": { "description": "Insufficient permissions to lock user." }, + "404": { "description": "Insufficient permissions to lock user." }, + "500": { "description": "Internal server error while trying to lock user." } + }, + "tags": ["cron"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/cron/kontext-expired": { + "put": { + "operationId": "CronController_removePersonenKontexteWithExpiredBefristungFromUsers", + "parameters": [], + "responses": { + "201": { + "description": "Personenkontexte were successfully removed from users.", + "content": { "application/json": { "schema": { "type": "boolean" } } } + }, + "400": { "description": "Personenkontexte are not given or not found." }, + "401": { "description": "Not authorized to remove personenkontexte from users." }, + "403": { "description": "Insufficient permissions to remove personenkontexte from users." }, + "404": { "description": "Insufficient permissions to remove personenkontexte from users." }, + "500": { "description": "Internal server error while trying to remove personenkontexte from users." } + }, + "tags": ["cron"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/cron/person-without-org": { + "put": { + "operationId": "CronController_personWithoutOrgDelete", + "parameters": [], + "responses": { + "201": { + "description": "User were successfully removed.", + "content": { "application/json": { "schema": { "type": "boolean" } } } + }, + "400": { "description": "User are not given or not found" }, + "401": { "description": "Not authorized to remove user." }, + "403": { "description": "Insufficient permissions to delete user." }, + "404": { "description": "Insufficient permissions to delete user." }, + "500": { "description": "Internal server error while trying to remove user." } + }, + "tags": ["cron"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/cron/unlock": { + "put": { + "operationId": "CronController_unlockUsersWithExpiredLocks", + "parameters": [], + "responses": { + "200": { + "description": "The users were successfully unlocked.", + "content": { "application/json": { "schema": { "type": "boolean" } } } + }, + "401": { "description": "Not authorized to unlock users." }, + "403": { "description": "Insufficient permissions to unlock users." }, + "404": { "description": "Insufficient permissions to unlock users." }, + "500": { "description": "Internal server error while trying to unlock users." } + }, + "tags": ["cron"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/cron/vidis-angebote": { + "put": { + "operationId": "CronController_updateServiceProvidersForVidisAngebote", + "parameters": [], + "responses": { + "201": { + "description": "VIDIS Angebote were successfully updated.", + "content": { "application/json": { "schema": { "type": "boolean" } } } + }, + "400": { "description": "VIDIS Angebote were not successfully updated." }, + "401": { "description": "Not authorized to update VIDIS Angebote." }, + "403": { "description": "Insufficient permissions to update VIDIS Angebote." }, + "404": { "description": "Insufficient permissions to update VIDIS Angebote." }, + "500": { "description": "Internal server error while trying to update VIDIS Angebote." } + }, + "tags": ["cron"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/import/upload": { + "post": { + "operationId": "ImportController_uploadFile", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "multipart/form-data": { "schema": { "$ref": "#/components/schemas/DbiamPersonenkontextImportBodyParams" } } + } + }, + "responses": { + "200": { + "description": "Returns an import upload response object.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportUploadResponse" } } } + }, + "400": { "description": "The CSV file was not valid." }, + "401": { "description": "Not authorized to import data with a CSV file." }, + "403": { "description": "Insufficient permissions to import data with a CSV file." }, + "500": { "description": "Internal server error while importing data with a CSV file." } + }, + "tags": ["import"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/import/execute": { + "post": { + "operationId": "ImportController_executeImport", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/ImportvorgangByIdBodyParams" } } + } + }, + "responses": { + "204": { "description": "The execution of the import transaction was initiated successfully." }, + "400": { + "description": "Something went wrong with the found import transaction.", + "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/DbiamImportError" } } } + }, + "401": { "description": "Not authorized to execute the import transaction." }, + "403": { "description": "Insufficient permissions to execute the import transaction." }, + "404": { "description": "The import transaction does not exist." }, + "500": { "description": "Internal server error while executing the import transaction." } + }, + "tags": ["import"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/import/{importvorgangId}": { + "delete": { + "operationId": "ImportController_deleteImportTransaction", + "summary": "", + "description": "Delete a role by id.", + "parameters": [ + { + "name": "importvorgangId", + "required": true, + "in": "path", + "description": "The id of an import transaction", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "204": { "description": "Import transaction was deleted successfully." }, + "400": { + "description": "Something went wrong with the found import transaction.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DbiamImportError" } } } + }, + "401": { "description": "Not authorized to delete the import transaction." }, + "404": { "description": "The import transaction that should be deleted does not exist." } + }, + "tags": ["import"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/import/history": { + "get": { + "operationId": "ImportController_findImportTransactions", + "summary": "", + "description": "Get the history of import.", + "parameters": [ + { + "name": "offset", + "required": false, + "in": "query", + "description": "The offset of the paginated list.", + "schema": { "type": "number" } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "The requested limit for the page size.", + "schema": { "type": "number" } + }, + { + "name": "status", + "required": false, + "in": "query", + "schema": { "$ref": "#/components/schemas/ImportStatus" } + }, + { + "name": "rolleIds", + "required": false, + "in": "query", + "schema": { "type": "array", "items": { "type": "string" } } + }, + { + "name": "organisationIds", + "required": false, + "in": "query", + "description": "Liefert Importvorgänge mit den angegebenen IDs, selbst wenn andere Filterkriterien nicht zutreffen (ODER-verknüpft mit anderen Kriterien).", + "schema": { "type": "array", "items": { "type": "string" } } + } + ], + "responses": { + "200": { + "description": "The import transactions were successfully returned", + "headers": { + "X-Paging-Offset": { + "description": "The offset of the first item from the list. List starts with index 0." + }, + "X-Paging-Limit": { "description": "The maximum amount of items returned in one request." }, + "X-Paging-Total": { "description": "The total amount of items in the list." }, + "X-Paging-pageTotal": { "description": "The total amount of items in the paginated list." } + }, + "content": { + "application/json": { + "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ImportVorgangResponse" } } + } + } + }, + "401": { "description": "Not authorized to get import transactions." }, + "403": { "description": "Insufficient permissions to get import transactions." }, + "500": { "description": "Internal server error while getting import transactions." } + }, + "tags": ["import"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/import/{importvorgangId}/download": { + "get": { + "operationId": "ImportController_downloadFile", + "parameters": [ + { + "name": "importvorgangId", + "required": true, + "in": "path", + "description": "The id of an import transaction", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "The import result file was generated and downloaded successfully.", + "content": { "text/plain": { "schema": { "type": "string", "format": "binary" } } } + }, + "400": { + "description": "Something went wrong with the found import transaction.", + "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/DbiamImportError" } } } + }, + "401": { "description": "Not authorized to download the import result." }, + "403": { "description": "Insufficient permissions to download the import result." }, + "404": { "description": "The import transaction does not exist." }, + "500": { "description": "Internal server error while generating the import result file." } + }, + "tags": ["import"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/api/import/{importvorgangId}/status": { + "get": { + "operationId": "ImportController_getImportStatus", + "summary": "", + "description": "Get status for the import transaction by id.", + "parameters": [ + { + "name": "importvorgangId", + "required": true, + "in": "path", + "description": "The id of an import transaction", + "schema": { "nullable": false, "type": "string" } + } + ], + "responses": { + "200": { + "description": "The status for the import transaction was successfully returned.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/ImportVorgangStatusResponse" } } + } + }, + "401": { "description": "Not authorized to get the status for the import transaction by id." }, + "403": { "description": "Insufficient permission to get status for the import transaction by id." }, + "500": { "description": "Internal server error while getting status for the import transaction by id." } + }, + "tags": ["import"], + "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] + } + }, + "/metrics": { + "get": { + "operationId": "MetricsController_getMetrics", + "summary": "Get Prometheus metrics", + "parameters": [], + "responses": { "200": { "description": "Prometheus metrics." } }, + "tags": ["Metrics"] + } + }, + "/api/status": { + "get": { + "operationId": "StatusController_getStatus", + "parameters": [], + "responses": { "200": { "description": "" } }, + "tags": ["status"] + } + }, + "/api/config": { + "get": { + "operationId": "ConfigController_getFeatureFlags", + "parameters": [], + "responses": { + "200": { + "description": "The feature flag config was successfully returned.", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeatureFlagResponse" } } } + }, + "500": { "description": "Internal server error while getting the config." } + }, + "tags": ["config"] + } + } + }, + "info": { + "title": "dBildungs IAM", + "description": "The dBildungs IAM server API description", + "version": "1.0", + "contact": {} + }, + "tags": [], + "servers": [], + "components": { + "securitySchemes": { + "oauth2": { + "type": "oauth2", + "flows": { + "authorizationCode": { + "authorizationUrl": "http://localhost:8080/realms/SPSH/protocol/openid-connect/auth", + "tokenUrl": "http://localhost:8080/realms/SPSH/protocol/openid-connect/token", + "refreshUrl": "http://localhost:8080/realms/SPSH/protocol/openid-connect/token", + "scopes": {} + } } + }, + "bearer": { "scheme": "bearer", "bearerFormat": "JWT", "type": "http" } + }, + "schemas": { + "RollenSystemRechtServiceProviderIDResponse": { + "type": "object", + "properties": { + "systemrechte": { "type": "array", "items": { "type": "string" } }, + "serviceProviderIds": { "type": "array", "items": { "type": "string" } } + }, + "required": ["systemrechte", "serviceProviderIds"] + }, + "PersonenkontextRolleFieldsResponse": { + "type": "object", + "properties": { + "organisationsId": { "type": "string" }, + "rolle": { "$ref": "#/components/schemas/RollenSystemRechtServiceProviderIDResponse" } + }, + "required": ["organisationsId", "rolle"] + }, + "PersonTimeLimitInfoResponse": { + "type": "object", + "properties": { "occasion": { "type": "string" }, "deadline": { "type": "string" } }, + "required": ["occasion", "deadline"] + }, + "UserinfoResponse": { + "type": "object", + "properties": { + "sub": { "type": "string" }, + "personId": { "type": "string", "nullable": true }, + "name": { "type": "string", "nullable": true }, + "given_name": { "type": "string", "nullable": true }, + "family_name": { "type": "string", "nullable": true }, + "middle_name": { "type": "string", "nullable": true }, + "nickname": { "type": "string", "nullable": true }, + "preferred_username": { "type": "string", "nullable": true }, + "profile": { "type": "string", "nullable": true }, + "picture": { "type": "string", "nullable": true }, + "website": { "type": "string", "nullable": true }, + "email": { "type": "string", "nullable": true }, + "email_verified": { "type": "boolean", "nullable": true }, + "gender": { "type": "string", "nullable": true }, + "birthdate": { "type": "string", "nullable": true }, + "zoneinfo": { "type": "string", "nullable": true }, + "locale": { "type": "string", "nullable": true }, + "phone_number": { "type": "string", "nullable": true }, + "updated_at": { "type": "string", "nullable": true }, + "password_updated_at": { "type": "string", "nullable": true }, + "personenkontexte": { + "type": "array", + "items": { "$ref": "#/components/schemas/PersonenkontextRolleFieldsResponse" } + }, + "acr": { "type": "string", "nullable": false }, + "timeLimits": { "type": "array", "items": { "$ref": "#/components/schemas/PersonTimeLimitInfoResponse" } } + }, + "required": [ + "sub", + "personId", + "name", + "given_name", + "family_name", + "middle_name", + "nickname", + "preferred_username", + "profile", + "picture", + "website", + "email", + "email_verified", + "gender", + "birthdate", + "zoneinfo", + "locale", + "phone_number", + "updated_at", + "password_updated_at", + "personenkontexte", + "acr", + "timeLimits" + ] + }, + "CreatePersonMigrationBodyParams": { + "type": "object", + "properties": { + "personId": { "type": "string" }, + "familienname": { "type": "string" }, + "vorname": { "type": "string" }, + "hashedPassword": { "type": "string" }, + "username": { "type": "string" }, + "personalnummer": { "type": "string" } + }, + "required": ["personId", "familienname", "vorname"] + }, + "PersonNameParams": { + "type": "object", + "properties": { + "familienname": { "type": "string" }, + "vorname": { "type": "string" }, + "initialenfamilienname": { "type": "string" }, + "initialenvorname": { "type": "string" }, + "rufname": { "type": "string" }, + "titel": { "type": "string" }, + "anrede": { "type": "array", "items": { "type": "string" } }, + "namenssuffix": { "type": "array", "items": { "type": "string" } }, + "namenspraefix": { "type": "array", "items": { "type": "string" } }, + "sortierindex": { "type": "string" } + }, + "required": ["familienname", "vorname"] + }, + "PersonBirthParams": { + "type": "object", + "properties": { "datum": { "format": "date-time", "type": "string" }, "geburtsort": { "type": "string" } } + }, + "Vertrauensstufe": { "type": "string", "enum": ["KEIN", "UNBE", "TEIL", "VOLL"] }, + "UserLockParams": { + "type": "object", + "properties": { + "personId": { "type": "string", "nullable": true }, + "locked_by": { "type": "string", "nullable": true }, + "created_at": { "type": "string", "nullable": true }, + "locked_until": { "type": "string", "nullable": true }, + "lock_occasion": { "type": "string", "nullable": true } + }, + "required": ["personId", "locked_by", "created_at", "locked_until", "lock_occasion"] + }, + "EmailAddressStatus": { "type": "string", "enum": ["ENABLED", "DISABLED", "REQUESTED", "FAILED"] }, + "PersonEmailResponse": { + "type": "object", + "properties": { + "status": { "$ref": "#/components/schemas/EmailAddressStatus" }, + "address": { "type": "string" } + }, + "required": ["status", "address"] + }, + "PersonResponse": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "referrer": { "type": "string", "nullable": true }, + "mandant": { "type": "string" }, + "name": { "$ref": "#/components/schemas/PersonNameParams" }, + "geburt": { "nullable": true, "allOf": [{ "$ref": "#/components/schemas/PersonBirthParams" }] }, + "stammorganisation": { "type": "string", "nullable": true }, + "geschlecht": { "type": "string", "nullable": true }, + "lokalisierung": { "type": "string", "nullable": true }, + "vertrauensstufe": { "nullable": true, "$ref": "#/components/schemas/Vertrauensstufe" }, + "revision": { "type": "string" }, + "startpasswort": { + "type": "string", + "description": "Initiales Benutzerpasswort, muss nach der ersten Anmeldung geändert werden" + }, + "personalnummer": { "type": "string", "nullable": true }, + "isLocked": { "type": "boolean", "nullable": true }, + "userLock": { "nullable": true, "type": "array", "items": { "$ref": "#/components/schemas/UserLockParams" } }, + "lastModified": { + "format": "date-time", + "type": "string", + "description": "Date of the most recent changes for the person" + }, + "email": { + "nullable": true, + "description": "Contains status and address. Returns email-address verified by OX (enabled) if available, otherwise returns most recently updated one (no prioritized status)", + "allOf": [{ "$ref": "#/components/schemas/PersonEmailResponse" }] + } + }, + "required": [ + "id", + "referrer", + "mandant", + "name", + "geburt", + "stammorganisation", + "geschlecht", + "lokalisierung", + "vertrauensstufe", + "revision", + "startpasswort", + "personalnummer", + "isLocked", + "userLock", + "lastModified", + "email" + ] + }, + "PersonendatensatzResponse": { + "type": "object", + "properties": { "person": { "$ref": "#/components/schemas/PersonResponse" } }, + "required": ["person"] + }, + "RawPagedResponse": { + "type": "object", + "properties": { + "total": { "type": "number" }, + "offset": { "type": "number" }, + "limit": { "type": "number" }, + "items": { "type": "array", "items": { "type": "string" } } + }, + "required": ["total", "offset", "limit", "items"] + }, + "CreatedPersonenkontextOrganisation": { "type": "object", "properties": {} }, + "LoeschungResponse": { + "type": "object", + "properties": { "zeitpunkt": { "format": "date-time", "type": "string" } }, + "required": ["zeitpunkt"] + }, + "PersonenkontextResponse": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "referrer": { "type": "string", "nullable": true }, + "mandant": { "type": "string" }, + "organisation": { "$ref": "#/components/schemas/CreatedPersonenkontextOrganisation" }, + "rollenart": { "type": "string", "nullable": true }, + "rollenname": { "type": "string", "nullable": true }, + "personenstatus": { "type": "string", "enum": ["AKTIV"], "nullable": true }, + "jahrgangsstufe": { + "type": "string", + "enum": ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10"], + "nullable": true + }, + "sichtfreigabe": { "type": "string", "enum": ["ja", "nein"], "nullable": true }, + "loeschung": { "nullable": true, "allOf": [{ "$ref": "#/components/schemas/LoeschungResponse" }] }, + "revision": { "type": "string" } + }, + "required": [ + "id", + "referrer", + "mandant", + "organisation", + "rollenart", + "rollenname", + "personenstatus", + "jahrgangsstufe", + "sichtfreigabe", + "loeschung", + "revision" + ] + }, + "Personenstatus": { "type": "string", "enum": ["AKTIV"] }, + "Sichtfreigabe": { "type": "string", "enum": ["ja", "nein"] }, + "Geschlecht": { "type": "string", "enum": ["m", "w", "d", "x"] }, + "UpdatePersonBodyParams": { + "type": "object", + "properties": { + "referrer": { "type": "string" }, + "stammorganisation": { "type": "string" }, + "name": { "$ref": "#/components/schemas/PersonNameParams" }, + "geburt": { "$ref": "#/components/schemas/PersonBirthParams" }, + "geschlecht": { "$ref": "#/components/schemas/Geschlecht" }, + "lokalisierung": { "type": "string" }, + "vertrauensstufe": { "$ref": "#/components/schemas/Vertrauensstufe" }, + "auskunftssperre": { "type": "boolean" }, + "revision": { "type": "string" } + }, + "required": ["name", "revision"] + }, + "LockUserBodyParams": { + "type": "object", + "properties": { + "lock": { "type": "boolean", "nullable": false }, + "locked_by": { "type": "string", "nullable": false }, + "locked_until": { "format": "date-time", "type": "string", "description": "Required if Befristung is set" } + }, + "required": ["lock", "locked_by"] + }, + "PersonLockResponse": { + "type": "object", + "properties": { "message": { "type": "string" } }, + "required": ["message"] + }, + "PersonMetadataBodyParams": { + "type": "object", + "properties": { + "familienname": { "type": "string" }, + "vorname": { "type": "string" }, + "personalnummer": { "type": "string" }, + "lastModified": { + "format": "date-time", + "type": "string", + "description": "Date of the most recent changed Personalnummer" + }, + "revision": { "type": "string" } + }, + "required": ["familienname", "vorname", "lastModified", "revision"] + }, + "DbiamPersonError": { + "type": "object", + "properties": { + "i18nKey": { + "type": "string", + "enum": [ + "PERSON_ERROR", + "VORNAME_ENTHAELT_LEERZEICHEN", + "FAMILIENNAME_ENTHAELT_LEERZEICHEN", + "PERSON_NOT_FOUND", + "DOWNSTREAM_UNREACHABLE", + "PERSONALNUMMER_REQUIRED", + "NEWER_VERSION_OF_PERSON_AVAILABLE", + "PERSONALNUMMER_NICHT_EINDEUTIG", + "PERSON_UEM_PASSWORD_MODIFICATION_ERROR" + ] + }, + "code": { "type": "number", "description": "Corresponds to HTTP Status code like 200, 404, 500" } + }, + "required": ["i18nKey", "code"] + }, + "RollenArt": { "type": "string", "enum": ["LERN", "LEHR", "EXTERN", "ORGADMIN", "LEIT", "SYSADMIN"] }, + "OrganisationsTyp": { + "type": "string", + "enum": [ + "ROOT", + "LAND", + "TRAEGER", + "SCHULE", + "KLASSE", + "ANBIETER", + "SONSTIGE ORGANISATION / EINRICHTUNG", + "UNBESTAETIGT" + ] + }, + "RollenMerkmal": { "type": "string", "enum": ["BEFRISTUNG_PFLICHT", "KOPERS_PFLICHT"] }, + "DBiamPersonenzuordnungResponse": { + "type": "object", + "properties": { + "sskId": { "type": "string" }, + "rolleId": { "type": "string" }, + "sskName": { "type": "string" }, + "sskDstNr": { "type": "string" }, + "rolle": { "type": "string" }, + "rollenArt": { "nullable": false, "$ref": "#/components/schemas/RollenArt" }, + "administriertVon": { "type": "string" }, + "typ": { "nullable": true, "$ref": "#/components/schemas/OrganisationsTyp" }, + "editable": { "type": "boolean" }, + "befristung": { "format": "date-time", "type": "string" }, + "merkmale": { "nullable": true, "$ref": "#/components/schemas/RollenMerkmal" }, + "admins": { "type": "array", "items": { "type": "string" } } + }, + "required": [ + "sskId", + "rolleId", + "sskName", + "sskDstNr", + "rolle", + "rollenArt", + "administriertVon", + "typ", + "editable", + "befristung", + "merkmale", + "admins" + ] + }, + "DBiamPersonenuebersichtResponse": { + "type": "object", + "properties": { + "personId": { "type": "string" }, + "vorname": { "type": "string" }, + "nachname": { "type": "string" }, + "benutzername": { "type": "string" }, + "lastModifiedZuordnungen": { + "format": "date-time", + "type": "string", + "nullable": true, + "description": "Date of the most recent changed personenkontext in the Zuordnungen" + }, + "zuordnungen": { "type": "array", "items": { "$ref": "#/components/schemas/DBiamPersonenzuordnungResponse" } } + }, + "required": ["personId", "vorname", "nachname", "benutzername", "lastModifiedZuordnungen", "zuordnungen"] + }, + "PersonenuebersichtBodyParams": { + "type": "object", + "properties": { + "personIds": { + "description": "An array of IDs for the persons.", + "type": "array", + "items": { "type": "string" } + } + }, + "required": ["personIds"] + }, + "PersonNameResponse": { + "type": "object", + "properties": { + "familiennamen": { "type": "string" }, + "vorname": { "type": "string" }, + "initialenfamilienname": { "type": "string", "nullable": true }, + "initialenvorname": { "type": "string", "nullable": true }, + "rufname": { "type": "string", "nullable": true }, + "titel": { "type": "string", "nullable": true }, + "anrede": { "nullable": true, "type": "array", "items": { "type": "string" } }, + "namenspraefix": { "nullable": true, "type": "array", "items": { "type": "string" } }, + "namenssuffix": { "nullable": true, "type": "array", "items": { "type": "string" } }, + "sortierindex": { "type": "string", "nullable": true } + }, + "required": [ + "familiennamen", + "vorname", + "initialenfamilienname", + "initialenvorname", + "rufname", + "titel", + "anrede", + "namenspraefix", + "namenssuffix", + "sortierindex" + ] + }, + "PersonBirthResponse": { + "type": "object", + "properties": { + "datum": { "format": "date-time", "type": "string", "nullable": true }, + "geburtsort": { "type": "string", "nullable": true } + }, + "required": ["datum", "geburtsort"] + }, + "Person": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "referrer": { "type": "string", "nullable": true }, + "mandant": { "type": "string" }, + "name": { "$ref": "#/components/schemas/PersonNameResponse" }, + "geburt": { "nullable": true, "allOf": [{ "$ref": "#/components/schemas/PersonBirthResponse" }] }, + "stammorganisation": { "type": "string", "nullable": true }, + "geschlecht": { "type": "string", "nullable": true }, + "lokalisierung": { "type": "string", "nullable": true }, + "vertrauensstufe": { "nullable": true, "$ref": "#/components/schemas/Vertrauensstufe" }, + "revision": { "type": "string" }, + "personalnummer": { "type": "string", "nullable": true }, + "dienststellen": { "nullable": true, "type": "array", "items": { "type": "string" } } + }, + "required": [ + "id", + "referrer", + "mandant", + "name", + "geburt", + "stammorganisation", + "geschlecht", + "lokalisierung", + "vertrauensstufe", + "revision", + "personalnummer", + "dienststellen" + ] + }, + "PersonInfoResponse": { + "type": "object", + "properties": { + "pid": { "type": "string" }, + "person": { "$ref": "#/components/schemas/Person" }, + "personenkontexte": { "type": "array", "items": { "$ref": "#/components/schemas/PersonenkontextResponse" } }, + "gruppen": { "type": "array", "items": { "type": "string" } }, + "email": { + "nullable": true, + "description": "Contains status and address. Returns email-address verified by OX (enabled) if available, otherwise returns most recently updated one (no prioritized status)", + "allOf": [{ "$ref": "#/components/schemas/PersonEmailResponse" }] + } + }, + "required": ["pid", "person", "personenkontexte", "gruppen", "email"] + }, + "TraegerschaftTyp": { "type": "string", "enum": ["01", "02", "03", "04", "05", "06"] }, + "CreateOrganisationBodyParams": { + "type": "object", + "properties": { + "administriertVon": { "type": "string" }, + "zugehoerigZu": { "type": "string" }, + "kennung": { "type": "string", "description": "Required, if `typ` is equal to `SCHULE`" }, + "name": { "type": "string" }, + "namensergaenzung": { "type": "string" }, + "kuerzel": { "type": "string" }, + "typ": { "$ref": "#/components/schemas/OrganisationsTyp" }, + "traegerschaft": { "$ref": "#/components/schemas/TraegerschaftTyp" }, + "emailAdress": { "type": "string" } + }, + "required": ["name", "typ"] + }, + "OrganisationResponse": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "administriertVon": { "type": "string", "nullable": true }, + "kennung": { "type": "string", "nullable": true }, + "name": { "type": "string" }, + "namensergaenzung": { "type": "string", "nullable": true }, + "kuerzel": { "type": "string" }, + "typ": { "$ref": "#/components/schemas/OrganisationsTyp" }, + "traegerschaft": { "$ref": "#/components/schemas/TraegerschaftTyp" }, + "itslearningEnabled": { "type": "boolean" }, + "version": { "type": "number" } + }, + "required": [ + "id", + "administriertVon", + "kennung", + "name", + "namensergaenzung", + "kuerzel", + "typ", + "traegerschaft", + "itslearningEnabled", + "version" + ] + }, + "DbiamOrganisationError": { + "type": "object", + "properties": { + "i18nKey": { + "type": "string", + "enum": [ + "ORGANISATION_SPECIFICATION_ERROR", + "KENNUNG_REQUIRED_FOR_SCHULE", + "NAME_REQUIRED_FOR_SCHULE", + "SCHULE_KENNUNG_EINDEUTIG", + "SCHULE_UNTER_TRAEGER", + "TRAEGER_IN_TRAEGER", + "NUR_KLASSE_UNTER_SCHULE", + "ZYKLUS_IN_ORGANISATION", + "ROOT_ORGANISATION_IMMUTABLE", + "KLASSE_NUR_VON_SCHULE_ADMINISTRIERT", + "KLASSENNAME_AN_SCHULE_EINDEUTIG", + "ORGANISATION_IST_BEREITS_ZUGEWIESEN_ERROR", + "NAME_REQUIRED_FOR_KLASSE", + "NAME_ENTHAELT_LEERZEICHEN", + "KENNUNG_ENTHAELT_LEERZEICHEN", + "EMAIL_ADRESS_ON_ORGANISATION_TYP", + "NEWER_VERSION_ORGANISATION" + ] + }, + "code": { "type": "number", "description": "Corresponds to HTTP Status code like 200, 404, 500" } + }, + "required": ["i18nKey", "code"] + }, + "UpdateOrganisationBodyParams": { + "type": "object", + "properties": { + "administriertVon": { "type": "string" }, + "zugehoerigZu": { "type": "string" }, + "kennung": { "type": "string", "description": "Required, if `typ` is equal to `SCHULE`" }, + "name": { "type": "string" }, + "namensergaenzung": { "type": "string" }, + "kuerzel": { "type": "string" }, + "typ": { "$ref": "#/components/schemas/OrganisationsTyp" }, + "traegerschaft": { "$ref": "#/components/schemas/TraegerschaftTyp" }, + "emailAdress": { "type": "string" } + }, + "required": ["name", "typ"] + }, + "OrganisationRootChildrenResponse": { + "type": "object", + "properties": { + "oeffentlich": { "$ref": "#/components/schemas/OrganisationResponse" }, + "ersatz": { "$ref": "#/components/schemas/OrganisationResponse" } + }, + "required": ["oeffentlich", "ersatz"] + }, + "ParentOrganisationsByIdsBodyParams": { + "type": "object", + "properties": { + "organisationIds": { + "description": "The ids of organizations", + "nullable": false, + "type": "array", + "items": { "type": "string" } + } + }, + "required": ["organisationIds"] + }, + "ParentOrganisationenResponse": { + "type": "object", + "properties": { + "parents": { "type": "array", "items": { "$ref": "#/components/schemas/OrganisationResponse" } } + }, + "required": ["parents"] + }, + "RollenSystemRecht": { + "type": "string", + "enum": [ + "ROLLEN_VERWALTEN", + "PERSONEN_SOFORT_LOESCHEN", + "PERSONEN_VERWALTEN", + "SCHULEN_VERWALTEN", + "KLASSEN_VERWALTEN", + "SCHULTRAEGER_VERWALTEN", + "MIGRATION_DURCHFUEHREN", + "PERSON_SYNCHRONISIEREN", + "CRON_DURCHFUEHREN", + "PERSONEN_ANLEGEN", + "IMPORT_DURCHFUEHREN", + "PERSONEN_LESEN" + ] + }, + "OrganisationByIdBodyParams": { + "type": "object", + "properties": { + "organisationId": { "type": "string", "description": "The id of an organization", "nullable": false } + }, + "required": ["organisationId"] + }, + "OrganisationByNameBodyParams": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "version": { "type": "number", "description": "The version for the organisation." } + }, + "required": ["name", "version"] + }, + "OrganisationResponseLegacy": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "administriertVon": { "type": "string", "nullable": true }, + "kennung": { "type": "string", "nullable": true }, + "name": { "type": "string" }, + "namensergaenzung": { "type": "string", "nullable": true }, + "kuerzel": { "type": "string" }, + "typ": { "$ref": "#/components/schemas/OrganisationsTyp" } + }, + "required": ["id", "administriertVon", "kennung", "name", "namensergaenzung", "kuerzel", "typ"] + }, + "ServiceProviderIdNameResponse": { + "type": "object", + "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, + "required": ["id", "name"] + }, + "RolleWithServiceProvidersResponse": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "createdAt": { "format": "date-time", "type": "string" }, + "updatedAt": { "format": "date-time", "type": "string" }, + "name": { "type": "string" }, + "administeredBySchulstrukturknoten": { "type": "string" }, + "rollenart": { "$ref": "#/components/schemas/RollenArt" }, + "merkmale": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/components/schemas/RollenMerkmal" } + }, + "systemrechte": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/components/schemas/RollenSystemRecht" } + }, + "administeredBySchulstrukturknotenName": { "type": "string", "nullable": true }, + "administeredBySchulstrukturknotenKennung": { "type": "string", "nullable": true }, + "version": { "type": "number" }, + "serviceProviders": { + "type": "array", + "items": { "$ref": "#/components/schemas/ServiceProviderIdNameResponse" } + } + }, + "required": [ + "id", + "createdAt", + "updatedAt", + "name", + "administeredBySchulstrukturknoten", + "rollenart", + "merkmale", + "systemrechte", + "administeredBySchulstrukturknotenName", + "administeredBySchulstrukturknotenKennung", + "version", + "serviceProviders" + ] + }, + "CreateRolleBodyParams": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "administeredBySchulstrukturknoten": { "type": "string" }, + "rollenart": { "$ref": "#/components/schemas/RollenArt" }, + "merkmale": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/components/schemas/RollenMerkmal" } + }, + "systemrechte": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/components/schemas/RollenSystemRecht" } + } + }, + "required": ["name", "administeredBySchulstrukturknoten", "rollenart", "merkmale", "systemrechte"] + }, + "RolleResponse": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "createdAt": { "format": "date-time", "type": "string" }, + "updatedAt": { "format": "date-time", "type": "string" }, + "name": { "type": "string" }, + "administeredBySchulstrukturknoten": { "type": "string" }, + "rollenart": { "$ref": "#/components/schemas/RollenArt" }, + "merkmale": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/components/schemas/RollenMerkmal" } + }, + "systemrechte": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/components/schemas/RollenSystemRecht" } + }, + "administeredBySchulstrukturknotenName": { "type": "string", "nullable": true }, + "administeredBySchulstrukturknotenKennung": { "type": "string", "nullable": true }, + "version": { "type": "number" } + }, + "required": [ + "id", + "createdAt", + "updatedAt", + "name", + "administeredBySchulstrukturknoten", + "rollenart", + "merkmale", + "systemrechte", + "administeredBySchulstrukturknotenName", + "administeredBySchulstrukturknotenKennung", + "version" + ] + }, + "DbiamRolleError": { + "type": "object", + "properties": { + "i18nKey": { + "type": "string", + "enum": [ + "ROLLE_ERROR", + "ADD_SYSTEMRECHT_ERROR", + "ROLLE_HAT_PERSONENKONTEXTE_ERROR", + "UPDATE_MERKMALE_ERROR", + "ROLLENNAME_ENTHAELT_LEERZEICHEN", + "NEWER_VERSION_OF_ROLLE_AVAILABLE", + "ROLLE_NAME_UNIQUE_ON_SSK" + ] + }, + "code": { "type": "number", "description": "Corresponds to HTTP Status code like 200, 404, 500" } + }, + "required": ["i18nKey", "code"] + }, + "AddSystemrechtBodyParams": { + "type": "object", + "properties": { "systemRecht": { "$ref": "#/components/schemas/RollenSystemRecht" } }, + "required": ["systemRecht"] + }, + "RolleServiceProviderResponse": { + "type": "object", + "properties": { "serviceProviderIds": { "type": "array", "items": { "type": "string" } } }, + "required": ["serviceProviderIds"] + }, + "RolleServiceProviderBodyParams": { + "type": "object", + "properties": { + "serviceProviderIds": { + "description": "An array of ids for the service providers.", + "nullable": false, + "type": "array", + "items": { "type": "string" } + }, + "version": { "type": "number", "description": "The version for the rolle." } + }, + "required": ["serviceProviderIds", "version"] + }, + "ServiceProviderTarget": { "type": "string", "enum": ["URL", "EMAIL", "SCHULPORTAL_ADMINISTRATION"] }, + "ServiceProviderKategorie": { + "type": "string", + "enum": ["EMAIL", "UNTERRICHT", "VERWALTUNG", "HINWEISE", "ANGEBOTE"] + }, + "ServiceProviderResponse": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "name": { "type": "string" }, + "target": { "$ref": "#/components/schemas/ServiceProviderTarget" }, + "url": { "type": "string", "description": "Can be undefined, if `target` is not equal to `URL`" }, + "kategorie": { "$ref": "#/components/schemas/ServiceProviderKategorie" }, + "hasLogo": { "type": "boolean" }, + "requires2fa": { "type": "boolean" } + }, + "required": ["id", "name", "target", "url", "kategorie", "hasLogo", "requires2fa"] + }, + "UpdateRolleBodyParams": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "merkmale": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/components/schemas/RollenMerkmal" } + }, + "systemrechte": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/components/schemas/RollenSystemRecht" } + }, + "serviceProviderIds": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, + "version": { "type": "number" } + }, + "required": ["name", "merkmale", "systemrechte", "serviceProviderIds", "version"] + }, + "PersonResponseAutomapper": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "referrer": { "type": "string" }, + "mandant": { "type": "string" }, + "name": { "$ref": "#/components/schemas/PersonNameParams" }, + "geburt": { "$ref": "#/components/schemas/PersonBirthParams" }, + "stammorganisation": { "type": "string" }, + "geschlecht": { "type": "string" }, + "lokalisierung": { "type": "string" }, + "vertrauensstufe": { "$ref": "#/components/schemas/Vertrauensstufe" }, + "revision": { "type": "string" }, + "startpasswort": { + "type": "string", + "description": "Initiales Benutzerpasswort, muss nach der ersten Anmeldung geändert werden" + }, + "personalnummer": { "type": "string" } + }, + "required": [ + "id", + "referrer", + "mandant", + "name", + "geburt", + "stammorganisation", + "geschlecht", + "lokalisierung", + "vertrauensstufe", + "revision", + "startpasswort", + "personalnummer" + ] + }, + "PersonendatensatzResponseAutomapper": { + "type": "object", + "properties": { + "person": { "$ref": "#/components/schemas/PersonResponseAutomapper" }, + "personenkontexte": { "type": "array", "items": { "$ref": "#/components/schemas/PersonenkontextResponse" } } + }, + "required": ["person", "personenkontexte"] + }, + "PersonIdResponse": { "type": "object", "properties": { "id": { "type": "string" } }, "required": ["id"] }, + "PersonenkontextdatensatzResponse": { + "type": "object", + "properties": { + "person": { "$ref": "#/components/schemas/PersonIdResponse" }, + "personenkontexte": { "type": "array", "items": { "$ref": "#/components/schemas/PersonenkontextResponse" } } + }, + "required": ["person", "personenkontexte"] + }, + "SystemrechtResponse": { + "type": "object", + "properties": { + "ROLLEN_VERWALTEN": { + "type": "array", + "items": { "$ref": "#/components/schemas/OrganisationResponseLegacy" } + }, + "KLASSEN_VERWALTEN": { + "type": "array", + "items": { "$ref": "#/components/schemas/OrganisationResponseLegacy" } + }, + "SCHULEN_VERWALTEN": { + "type": "array", + "items": { "$ref": "#/components/schemas/OrganisationResponseLegacy" } + }, + "PERSONEN_VERWALTEN": { + "type": "array", + "items": { "$ref": "#/components/schemas/OrganisationResponseLegacy" } + }, + "SCHULTRAEGER_VERWALTEN": { + "type": "array", + "items": { "$ref": "#/components/schemas/OrganisationResponseLegacy" } + } + }, + "required": [ + "ROLLEN_VERWALTEN", + "KLASSEN_VERWALTEN", + "SCHULEN_VERWALTEN", + "PERSONEN_VERWALTEN", + "SCHULTRAEGER_VERWALTEN" + ] + }, + "DeleteRevisionBodyParams": { + "type": "object", + "properties": { + "revision": { "type": "string", "description": "The revision of a personenkontext.", "nullable": false } + }, + "required": ["revision"] + }, + "DBiamPersonenkontextResponse": { + "type": "object", + "properties": { + "personId": { "type": "string" }, + "organisationId": { "type": "string" }, + "rolleId": { "type": "string" }, + "befristung": { "type": "string" } + }, + "required": ["personId", "organisationId", "rolleId", "befristung"] + }, + "PersonenkontextMigrationRuntype": { "type": "string", "enum": ["ITSLEARNING", "STANDARD"] }, + "DbiamPersonenkontextMigrationBodyParams": { + "type": "object", + "properties": { + "personId": { "type": "string" }, + "username": { "type": "string" }, + "organisationId": { "type": "string" }, + "rolleId": { "type": "string" }, + "befristung": { "format": "date-time", "type": "string" }, + "email": { "type": "string" }, + "migrationRunType": { "$ref": "#/components/schemas/PersonenkontextMigrationRuntype" } + }, + "required": ["personId", "organisationId", "rolleId", "migrationRunType"] + }, + "DbiamPersonenkontextError": { + "type": "object", + "properties": { + "i18nKey": { + "type": "string", + "enum": [ + "PERSONENKONTEXT_SPECIFICATION_ERROR", + "NUR_LEHR_UND_LERN_AN_KLASSE", + "GLEICHE_ROLLE_AN_KLASSE_WIE_SCHULE", + "ORGANISATION_MATCHES_ROLLENART", + "PERSONENKONTEXT_ANLAGE_ERROR", + "ROLLE_NUR_AN_PASSENDE_ORGANISATION", + "PERSONALNUMMER_NICHT_EINDEUTIG" + ] + }, + "code": { "type": "number", "description": "Corresponds to HTTP Status code like 200, 404, 500" } + }, + "required": ["i18nKey", "code"] + }, + "PersonenkontextWorkflowResponse": { + "type": "object", + "properties": { + "organisations": { + "description": "List of available organisations.", + "type": "array", + "items": { "$ref": "#/components/schemas/OrganisationResponseLegacy" } + }, + "rollen": { + "description": "List of available roles.", + "type": "array", + "items": { "$ref": "#/components/schemas/RolleResponse" } + }, + "selectedOrganisation": { "type": "string", "description": "Selected organisation.", "nullable": true }, + "selectedRolle": { "type": "string", "description": "Selected rolle.", "nullable": true }, + "canCommit": { "type": "boolean", "description": "Indicates whether the commit action can be performed." } + }, + "required": ["organisations", "rollen", "selectedOrganisation", "selectedRolle", "canCommit"] + }, + "DbiamPersonenkontextBodyParams": { + "type": "object", + "properties": { + "personId": { "type": "string" }, + "organisationId": { "type": "string" }, + "rolleId": { "type": "string" }, + "befristung": { "format": "date-time", "type": "string" } + }, + "required": ["personId", "organisationId", "rolleId"] + }, + "DbiamUpdatePersonenkontexteBodyParams": { + "type": "object", + "properties": { + "lastModified": { + "format": "date-time", + "type": "string", + "nullable": true, + "description": "Date of the most recent changed personenkontext" + }, + "count": { "type": "number", "nullable": false, "description": "The amount of personenkontexte" }, + "personenkontexte": { + "nullable": false, + "type": "array", + "items": { "$ref": "#/components/schemas/DbiamPersonenkontextBodyParams" } + } + }, + "required": ["count", "personenkontexte"] + }, + "PersonenkontexteUpdateResponse": { + "type": "object", + "properties": { + "dBiamPersonenkontextResponses": { + "type": "array", + "items": { "$ref": "#/components/schemas/DBiamPersonenkontextResponse" } + } + }, + "required": ["dBiamPersonenkontextResponses"] + }, + "DbiamPersonenkontexteUpdateError": { + "type": "object", + "properties": { + "i18nKey": { + "type": "string", + "enum": [ + "PERSONENKONTEXTE_UPDATE_ERROR", + "PERSONENKONTEXT_NOT_FOUND", + "COUNT_MISMATCHING", + "NEWER_VERSION_OF_PERSONENKONTEXTE_AVAILABLE", + "INVALID_LAST_MODIFIED_VALUE", + "PERSON_ID_MISMATCH", + "PERSON_NOT_FOUND", + "INVALID_PERSONENKONTEXT_FOR_PERSON_WITH_ROLLENART_LERN", + " BEFRISTUNG_REQUIRED_FOR_PERSONENKONTEXT" + ] + }, + "code": { "type": "number", "description": "Corresponds to HTTP Status code like 200, 404, 500" } + }, + "required": ["i18nKey", "code"] + }, + "FindSchulstrukturknotenResponse": { + "type": "object", + "properties": { + "moeglicheSsks": { "type": "array", "items": { "$ref": "#/components/schemas/OrganisationResponseLegacy" } }, + "total": { "type": "number" } + }, + "required": ["moeglicheSsks", "total"] + }, + "DbiamCreatePersonenkontextBodyParams": { + "type": "object", + "properties": { "organisationId": { "type": "string" }, "rolleId": { "type": "string" } }, + "required": ["organisationId", "rolleId"] + }, + "DbiamCreatePersonWithPersonenkontexteBodyParams": { + "type": "object", + "properties": { + "familienname": { "type": "string" }, + "vorname": { "type": "string" }, + "personalnummer": { "type": "string" }, + "befristung": { "format": "date-time", "type": "string" }, + "createPersonenkontexte": { + "nullable": false, + "type": "array", + "items": { "$ref": "#/components/schemas/DbiamCreatePersonenkontextBodyParams" } + } + }, + "required": ["familienname", "vorname", "createPersonenkontexte"] + }, + "DBiamPersonResponse": { + "type": "object", + "properties": { + "person": { "$ref": "#/components/schemas/PersonResponse" }, + "dBiamPersonenkontextResponses": { + "type": "array", + "items": { "$ref": "#/components/schemas/DBiamPersonenkontextResponse" } + } + }, + "required": ["person", "dBiamPersonenkontextResponses"] + }, + "FindRollenResponse": { + "type": "object", + "properties": { + "moeglicheRollen": { "type": "array", "items": { "$ref": "#/components/schemas/RolleResponse" } }, + "total": { "type": "number" } + }, + "required": ["moeglicheRollen", "total"] + }, + "TokenInitBodyParams": { + "type": "object", + "properties": { "personId": { "type": "string" } }, + "required": ["personId"] + }, + "TokenStateResponse": { + "type": "object", + "properties": { + "hasToken": { "type": "boolean" }, + "tokenKind": { "type": "string" }, + "serial": { "type": "string" } + }, + "required": ["hasToken", "tokenKind", "serial"] + }, + "AssignHardwareTokenBodyParams": { + "type": "object", + "properties": { + "serial": { "type": "string" }, + "otp": { "type": "string" }, + "referrer": { "type": "string" }, + "userId": { "type": "string" } + }, + "required": ["serial", "otp", "referrer", "userId"] + }, + "AssignHardwareTokenResponse": { + "type": "object", + "properties": { + "id": { "type": "number" }, + "jsonrpc": { "type": "string" }, + "time": { "type": "number" }, + "version": { "type": "string" }, + "versionnumber": { "type": "string" }, + "signature": { "type": "string" }, + "dialogText": { "type": "string" } + }, + "required": ["id", "jsonrpc", "time", "version", "versionnumber", "signature", "dialogText"] + }, + "TokenVerifyBodyParams": { + "type": "object", + "properties": { "personId": { "type": "string" }, "otp": { "type": "string" } }, + "required": ["personId", "otp"] + }, + "TokenRequiredResponse": { + "type": "object", + "properties": { "required": { "type": "boolean" } }, + "required": ["required"] + }, + "DbiamPersonenkontextImportBodyParams": { + "type": "object", + "properties": { + "organisationId": { "type": "string" }, + "rolleId": { "type": "string" }, + "file": { "type": "string", "format": "binary" } + }, + "required": ["organisationId", "rolleId", "file"] + }, + "ImportDataItemResponse": { + "type": "object", + "properties": { + "nachname": { "type": "string" }, + "vorname": { "type": "string" }, + "klasse": { "type": "string", "nullable": true }, + "validationErrors": { "type": "array", "items": { "type": "string" } } + }, + "required": ["nachname", "vorname", "klasse", "validationErrors"] + }, + "ImportUploadResponse": { + "type": "object", + "properties": { + "importvorgangId": { + "type": "string", + "description": "The import transaction number. it will be needed to execute the import and download the result" + }, + "isValid": { "type": "boolean", "description": "It states if the import transaction contain errors." }, + "totalImportDataItems": { + "type": "number", + "description": "The total number of data items in the CSV file." + }, + "totalInvalidImportDataItems": { + "type": "number", + "description": "The total number of data items in the CSV file that are invalid." + }, + "invalidImportDataItems": { + "type": "array", + "items": { "$ref": "#/components/schemas/ImportDataItemResponse" } + } + }, + "required": [ + "importvorgangId", + "isValid", + "totalImportDataItems", + "totalInvalidImportDataItems", + "invalidImportDataItems" + ] + }, + "ImportvorgangByIdBodyParams": { + "type": "object", + "properties": { + "importvorgangId": { "type": "string", "description": "The id of an import transaction", "nullable": false } + }, + "required": ["importvorgangId"] + }, + "DbiamImportError": { + "type": "object", + "properties": { + "i18nKey": { + "type": "string", + "enum": [ + "IMPORT_ERROR", + "CSV_PARSING_ERROR", + "CSV_FILE_EMPTY_ERROR", + "IMPORT_TEXT_FILE_CREATION_ERROR", + "IMPORT_NUR_LERN_AN_SCHULE_ERROR", + "CSV_FILE_INVALID_HEADER_ERROR", + "IMPORT_MAX_USERS_LIMIT_ERROR", + "CSV_FILE_NO_USERS_ERROR" + ] + }, + "code": { "type": "number", "description": "Corresponds to HTTP Status code like 200, 404, 500" } + }, + "required": ["i18nKey", "code"] + }, + "ImportStatus": { + "type": "string", + "enum": ["CANCELLED", "COMPLETED", "FAILED", "FINISHED", "INPROGRESS", "INVALID", "STARTED", "VALID"] + }, + "ImportVorgangResponse": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "createdAt": { "format": "date-time", "type": "string" }, + "updatedAt": { "format": "date-time", "type": "string" }, + "rollenname": { "type": "string" }, + "organisationsname": { "type": "string" }, + "dataItemCount": { "type": "number" }, + "status": { "$ref": "#/components/schemas/ImportStatus" } + }, + "required": ["id", "createdAt", "updatedAt", "rollenname", "organisationsname", "dataItemCount", "status"] + }, + "ImportVorgangStatusResponse": { + "type": "object", + "properties": { "status": { "$ref": "#/components/schemas/ImportStatus" } }, + "required": ["status"] + }, + "FeatureFlagResponse": { + "type": "object", + "properties": { + "rolleBearbeitenEnabled": { "type": "boolean" }, + "befristungBearbeitenEnabled": { "type": "boolean" } + }, + "required": ["rolleBearbeitenEnabled", "befristungBearbeitenEnabled"] + } } -} \ No newline at end of file + } +} diff --git a/src/components/admin/personen/PersonLock.vue b/src/components/admin/personen/PersonLock.vue index 8f961a518..15ac25e70 100644 --- a/src/components/admin/personen/PersonLock.vue +++ b/src/components/admin/personen/PersonLock.vue @@ -247,7 +247,7 @@ {{ - !isManuallyLocked || isManuallyLocked && isEditMode + !isManuallyLocked || (isManuallyLocked && isEditMode) ? $t('person.lockUserInfoText') : $t('person.unLockUserInfoText') }} @@ -370,7 +370,7 @@ {{ $t('admin.person.editLock') }} { const mockInterval: NodeJS.Timeout = setInterval(() => {}, 1000); importStore.pollingInterval = mockInterval; - importStore.stopImportStatusPolling(); expect(vi.mocked(clearInterval)).toHaveBeenCalledWith(mockInterval); diff --git a/src/stores/PersonStore.spec.ts b/src/stores/PersonStore.spec.ts index 4560abf15..27fbaacc5 100644 --- a/src/stores/PersonStore.spec.ts +++ b/src/stores/PersonStore.spec.ts @@ -592,7 +592,7 @@ describe('PersonStore', () => { }); describe('resetDevicePassword', () => { - it('should reset and return device password', async () => { + it('should reset and return device password when given a personId', async () => { const userId: string = '2345'; const mockResponse: string = 'fakePassword'; @@ -604,6 +604,17 @@ describe('PersonStore', () => { expect(personStore.loading).toBe(false); }); + it('should reset and return device password without a personId', async () => { + const mockResponse: string = 'fakePassword'; + + mockadapter.onPatch(`/api/personen/uem-password`).replyOnce(202, mockResponse); + const resetDevicePasswordPromise: Promise = personStore.resetDevicePassword(); + expect(personStore.loading).toBe(true); + await resetDevicePasswordPromise; + expect(personStore.newDevicePassword).toEqual(mockResponse); + expect(personStore.loading).toBe(false); + }); + it('should handle string error', async () => { const userId: string = '2345'; diff --git a/src/stores/PersonStore.ts b/src/stores/PersonStore.ts index 95269a8ed..b1ffd7f8b 100644 --- a/src/stores/PersonStore.ts +++ b/src/stores/PersonStore.ts @@ -219,7 +219,7 @@ type PersonActions = { getAllPersons: (filter: PersonFilter) => Promise; getPersonById: (personId: string) => Promise; resetPassword: (personId: string) => Promise; - resetDevicePassword: (personId: string) => Promise; + resetDevicePassword: (personId?: string) => Promise; deletePersonById: (personId: string) => Promise; lockPerson: (personId: string, bodyParams: LockUserBodyParams) => Promise; syncPersonById: (personId: string) => Promise; @@ -388,10 +388,12 @@ export const usePersonStore: StoreDefinition<'personStore', PersonState, PersonG } }, - async resetDevicePassword(personId: string): Promise { + async resetDevicePassword(personId?: string): Promise { this.loading = true; try { - const { data }: { data: string } = await personenApi.personControllerResetUEMPasswordByPersonId(personId); + let data: string; + if (personId) data = (await personenApi.personControllerResetUEMPasswordByPersonId(personId)).data; + else data = (await personenApi.personControllerResetUEMPassword()).data; this.newDevicePassword = data; } catch (error: unknown) { this.errorCode = 'UNSPECIFIED_ERROR'; diff --git a/src/styles/components/button.scss b/src/styles/components/button.scss index f14d15d7e..9313a7a9e 100644 --- a/src/styles/components/button.scss +++ b/src/styles/components/button.scss @@ -55,7 +55,7 @@ /* small screen */ @media only screen and (max-width: 600px) { - font-size: $smallButtonFontSize; + font-size: $smallButtonFontSize; } /* medium screen */ diff --git a/src/styles/main.scss b/src/styles/main.scss index dbe907f46..e7ca2a4cd 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -131,7 +131,7 @@ label.v-label { } } -@media only screen and (min-width: 960px){ +@media only screen and (min-width: 960px) { .edit-container { position: absolute; display: flex; diff --git a/src/styles/typography.scss b/src/styles/typography.scss index b2fc47727..e1c898472 100644 --- a/src/styles/typography.scss +++ b/src/styles/typography.scss @@ -20,7 +20,9 @@ } } -p, b, div { +p, +b, +div { &.white-space-pre-wrap { white-space: pre-wrap !important; } diff --git a/src/views/ProfileView.vue b/src/views/ProfileView.vue index e71a8c11a..d596fdd53 100644 --- a/src/views/ProfileView.vue +++ b/src/views/ProfileView.vue @@ -221,8 +221,8 @@ return message; }); - async function resetDevicePassword(personId: string): Promise { - await personStore.resetDevicePassword(personId); + async function resetDevicePassword(): Promise { + await personStore.resetDevicePassword(); devicePassword.value = personStore.newDevicePassword || ''; } @@ -752,7 +752,7 @@ :errorMessage="devicePasswordErrorMessage" :isLoading="personStore.loading" @onClearPassword="devicePassword = ''" - @onResetPassword="resetDevicePassword(personInfoStore.personInfo?.person.id as string)" + @onResetPassword="resetDevicePassword()" :password="devicePassword" :testId="'device-password'" > diff --git a/src/views/StartView.spec.ts b/src/views/StartView.spec.ts index 2d297424c..33e7bcdf8 100644 --- a/src/views/StartView.spec.ts +++ b/src/views/StartView.spec.ts @@ -91,7 +91,7 @@ const mockPersonenUebersicht: PersonWithUebersicht = { merkmale: ['KOPERS_PFLICHT'] as unknown as RollenMerkmal, befristung: '2024-05-06', rollenArt: RollenArt.Lehr, - admins: [] + admins: [], }, { sskId: '2', @@ -105,7 +105,7 @@ const mockPersonenUebersicht: PersonWithUebersicht = { merkmale: ['KOPERS_PFLICHT'] as unknown as RollenMerkmal, befristung: '2024-05-06', rollenArt: RollenArt.Lehr, - admins: [] + admins: [], }, ], }; diff --git a/src/views/admin/PersonDetailsView.spec.ts b/src/views/admin/PersonDetailsView.spec.ts index 2f63f3257..d767a1524 100644 --- a/src/views/admin/PersonDetailsView.spec.ts +++ b/src/views/admin/PersonDetailsView.spec.ts @@ -156,7 +156,7 @@ const mockPersonenuebersichtLehr: PersonWithUebersicht = { editable: true, merkmale: [] as unknown as RollenMerkmal, befristung: '2099-08-12', - admins: [] + admins: [], }, ], };