From ad7553639447c6643f327fa32d7e4abeaaf8205b Mon Sep 17 00:00:00 2001 From: godtierbatuhan Date: Fri, 30 Aug 2024 14:37:00 +0200 Subject: [PATCH] Array of PersonIds instead of all of them --- src/api-client/generated/api.ts | 27 +- src/api-client/openapispec.json | 5396 +++++++++++++++++++++- src/stores/PersonenkontextStore.spec.ts | 6 +- src/stores/PersonenkontextStore.ts | 6 +- src/views/admin/PersonManagementView.vue | 19 +- 5 files changed, 5434 insertions(+), 20 deletions(-) diff --git a/src/api-client/generated/api.ts b/src/api-client/generated/api.ts index 52eaf3c6..4e1c2103 100644 --- a/src/api-client/generated/api.ts +++ b/src/api-client/generated/api.ts @@ -3293,12 +3293,15 @@ export const DbiamPersonenuebersichtApiAxiosParamCreator = function (configurati return { /** * + * @param {Array} personIds An array of IDs for the persons. * @param {number} [offset] The offset of the paginated list. * @param {number} [limit] The requested limit for the page size. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dBiamPersonenuebersichtControllerFindPersonenuebersichten: async (offset?: number, limit?: number, options: AxiosRequestConfig = {}): Promise => { + dBiamPersonenuebersichtControllerFindPersonenuebersichten: async (personIds: Array, offset?: number, limit?: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'personIds' is not null or undefined + assertParamExists('dBiamPersonenuebersichtControllerFindPersonenuebersichten', 'personIds', personIds) const localVarPath = `/api/dbiam/personenuebersicht`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -3327,6 +3330,10 @@ export const DbiamPersonenuebersichtApiAxiosParamCreator = function (configurati localVarQueryParameter['limit'] = limit; } + if (personIds) { + localVarQueryParameter['personIds'] = personIds; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -3391,13 +3398,14 @@ export const DbiamPersonenuebersichtApiFp = function(configuration?: Configurati return { /** * + * @param {Array} personIds An array of IDs for the persons. * @param {number} [offset] The offset of the paginated list. * @param {number} [limit] The requested limit for the page size. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dBiamPersonenuebersichtControllerFindPersonenuebersichten(offset?: number, limit?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dBiamPersonenuebersichtControllerFindPersonenuebersichten(offset, limit, options); + async dBiamPersonenuebersichtControllerFindPersonenuebersichten(personIds: Array, offset?: number, limit?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dBiamPersonenuebersichtControllerFindPersonenuebersichten(personIds, offset, limit, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -3422,13 +3430,14 @@ export const DbiamPersonenuebersichtApiFactory = function (configuration?: Confi return { /** * + * @param {Array} personIds An array of IDs for the persons. * @param {number} [offset] The offset of the paginated list. * @param {number} [limit] The requested limit for the page size. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dBiamPersonenuebersichtControllerFindPersonenuebersichten(offset?: number, limit?: number, options?: any): AxiosPromise { - return localVarFp.dBiamPersonenuebersichtControllerFindPersonenuebersichten(offset, limit, options).then((request) => request(axios, basePath)); + dBiamPersonenuebersichtControllerFindPersonenuebersichten(personIds: Array, offset?: number, limit?: number, options?: any): AxiosPromise { + return localVarFp.dBiamPersonenuebersichtControllerFindPersonenuebersichten(personIds, offset, limit, options).then((request) => request(axios, basePath)); }, /** * @@ -3450,13 +3459,14 @@ export const DbiamPersonenuebersichtApiFactory = function (configuration?: Confi export interface DbiamPersonenuebersichtApiInterface { /** * + * @param {Array} personIds An array of IDs for the persons. * @param {number} [offset] The offset of the paginated list. * @param {number} [limit] The requested limit for the page size. * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DbiamPersonenuebersichtApiInterface */ - dBiamPersonenuebersichtControllerFindPersonenuebersichten(offset?: number, limit?: number, options?: AxiosRequestConfig): AxiosPromise; + dBiamPersonenuebersichtControllerFindPersonenuebersichten(personIds: Array, offset?: number, limit?: number, options?: AxiosRequestConfig): AxiosPromise; /** * @@ -3478,14 +3488,15 @@ export interface DbiamPersonenuebersichtApiInterface { export class DbiamPersonenuebersichtApi extends BaseAPI implements DbiamPersonenuebersichtApiInterface { /** * + * @param {Array} personIds An array of IDs for the persons. * @param {number} [offset] The offset of the paginated list. * @param {number} [limit] The requested limit for the page size. * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DbiamPersonenuebersichtApi */ - public dBiamPersonenuebersichtControllerFindPersonenuebersichten(offset?: number, limit?: number, options?: AxiosRequestConfig) { - return DbiamPersonenuebersichtApiFp(this.configuration).dBiamPersonenuebersichtControllerFindPersonenuebersichten(offset, limit, options).then((request) => request(this.axios, this.basePath)); + public dBiamPersonenuebersichtControllerFindPersonenuebersichten(personIds: Array, offset?: number, limit?: number, options?: AxiosRequestConfig) { + return DbiamPersonenuebersichtApiFp(this.configuration).dBiamPersonenuebersichtControllerFindPersonenuebersichten(personIds, offset, limit, options).then((request) => request(this.axios, this.basePath)); } /** diff --git a/src/api-client/openapispec.json b/src/api-client/openapispec.json index 300e8c1f..74174d26 100644 --- a/src/api-client/openapispec.json +++ b/src/api-client/openapispec.json @@ -1 +1,5395 @@ -{"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."}},"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."}},"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_createPerson","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePersonBodyParams"}}}},"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"}}],"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."}},"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":[]}]}},"/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":[]}]}},"/api/personen/{personId}/personenkontexte":{"post":{"operationId":"PersonController_createPersonenkontext","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/CreatePersonenkontextBodyParams"}}}},"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":"rolle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Rolle"}},{"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."}},"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":[]}]}},"/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":[]}]}},"/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"}}],"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":[]}]}},"/api/dbiam/personenuebersicht":{"get":{"operationId":"DBiamPersonenuebersichtController_findPersonenuebersichten","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"}}],"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."}},"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":[]}]}},"/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."}},"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."}},"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"}}}},"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"}}}],"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."}},"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":[]}]}},"/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":[]}]}},"/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":[]}]}},"/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":[]}]}},"/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."}},"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":[]}]}},"/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."}},"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":[]}]}},"/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":[]}]}},"/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."}},"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":[]}]}},"/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."}},"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."},"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":[]}]}},"/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":[]}]}},"/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":[]}]},"post":{"operationId":"RolleController_addServiceProviderById","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/RolleServiceProviderQueryParams"}}}},"responses":{"200":{"description":"Adding service-provider finished successfully.","content":{"application/json":{"schema":{"$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"}},{"name":"serviceProviderId","required":true,"in":"query","description":"The id for the rolle.","schema":{"nullable":false,"type":"string"}}],"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":[]}]}},"/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"]}]}},"/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"]}]}},"/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"]}]}},"/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","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/UpdatePersonenkontextBodyParams"}}}},"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":[]}]}},"/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":"rolle","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Rolle"}},{"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."}},"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":[]}]}},"/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":[]}]}},"/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":[]}]}},"/api/dbiam/personenkontext":{"post":{"operationId":"DBiamPersonenkontextController_createPersonenkontext","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamPersonenkontextBodyParams"}}}},"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"}}],"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_createPersonWithKontext","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamCreatePersonWithContextBodyParams"}}}},"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 was successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenStateResponse"}}}},"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":[]}]}}},"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"]},"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":"number","nullable":true},"personenkontexte":{"type":"array","items":{"$ref":"#/components/schemas/PersonenkontextRolleFieldsResponse"}}},"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","personenkontexte"]},"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"}}},"Geschlecht":{"type":"string","enum":["m","w","d","x"]},"Vertrauensstufe":{"type":"string","enum":["KEIN","UNBE","TEIL","VOLL"]},"CreatePersonBodyParams":{"type":"object","properties":{"email":{"type":"string"},"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"},"hashedPassword":{"type":"string"},"username":{"type":"string"},"personalnummer":{"type":"string"}},"required":["name"]},"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}},"required":["id","referrer","mandant","name","geburt","stammorganisation","geschlecht","lokalisierung","vertrauensstufe","revision","startpasswort","personalnummer"]},"PersonendatensatzResponse":{"type":"object","properties":{"person":{"$ref":"#/components/schemas/PersonResponse"}},"required":["person"]},"Rolle":{"type":"string","enum":["LERN","LEHR","EXTERN","ORGADMIN","LEIT","SYSADMIN"]},"Personenstatus":{"type":"string","description":"The new personenstatus of the personenkontext.","enum":["AKTIV"]},"Jahrgangsstufe":{"type":"string","description":"The new jahrgangsstufe of the personenkontext.","enum":["01","02","03","04","05","06","07","08","09","10"]},"CreatePersonenkontextBodyParams":{"type":"object","properties":{"referrer":{"type":"string"},"rolle":{"$ref":"#/components/schemas/Rolle"},"personenstatus":{"$ref":"#/components/schemas/Personenstatus"},"jahrgangsstufe":{"$ref":"#/components/schemas/Jahrgangsstufe"}},"required":["rolle"]},"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"},"roleName":{"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","roleName","personenstatus","jahrgangsstufe","sichtfreigabe","loeschung","revision"]},"Sichtfreigabe":{"type":"string","enum":["ja","nein"]},"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"]},"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"},"administriertVon":{"type":"string"},"typ":{"nullable":true,"$ref":"#/components/schemas/OrganisationsTyp"},"editable":{"type":"boolean"},"merkmale":{"nullable":true,"$ref":"#/components/schemas/RollenMerkmal"}},"required":["sskId","rolleId","sskName","sskDstNr","rolle","administriertVon","typ","editable","merkmale"]},"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"]},"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}},"required":["id","referrer","mandant","name","geburt","stammorganisation","geschlecht","lokalisierung","vertrauensstufe","revision","personalnummer"]},"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"}}},"required":["pid","person","personenkontexte","gruppen"]},"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"}},"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"}},"required":["id","administriertVon","kennung","name","namensergaenzung","kuerzel","typ","traegerschaft"]},"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"]},"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"}},"required":["name","typ"]},"OrganisationRootChildrenResponse":{"type":"object","properties":{"oeffentlich":{"$ref":"#/components/schemas/OrganisationResponse"},"ersatz":{"$ref":"#/components/schemas/OrganisationResponse"}},"required":["oeffentlich","ersatz"]},"RollenSystemRecht":{"type":"string","enum":["ROLLEN_VERWALTEN","PERSONEN_SOFORT_LOESCHEN","PERSONEN_VERWALTEN","SCHULEN_VERWALTEN","KLASSEN_VERWALTEN","SCHULTRAEGER_VERWALTEN","MIGRATION_DURCHFUEHREN"]},"OrganisationByIdBodyParams":{"type":"object","properties":{"organisationId":{"type":"string","description":"The id of an organization","nullable":false}},"required":["organisationId"]},"OrganisationByNameBodyParams":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"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"]},"RollenArt":{"type":"string","enum":["LERN","LEHR","EXTERN","ORGADMIN","LEIT","SYSADMIN"]},"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"}},"serviceProviders":{"type":"array","items":{"$ref":"#/components/schemas/ServiceProviderIdNameResponse"}}},"required":["id","createdAt","updatedAt","name","administeredBySchulstrukturknoten","rollenart","merkmale","systemrechte","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"}}},"required":["id","createdAt","updatedAt","name","administeredBySchulstrukturknoten","rollenart","merkmale","systemrechte"]},"AddSystemrechtBodyParams":{"type":"object","properties":{"systemRecht":{"$ref":"#/components/schemas/RollenSystemRecht"}},"required":["systemRecht"]},"RolleServiceProviderResponse":{"type":"object","properties":{"serviceProviderIds":{"type":"array","items":{"type":"string"}}},"required":["serviceProviderIds"]},"RolleServiceProviderQueryParams":{"type":"object","properties":{"serviceProviderId":{"type":"string","description":"The id for the rolle.","nullable":false}},"required":["serviceProviderId"]},"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"}},"required":["id","name","target","url","kategorie","hasLogo"]},"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"}}},"required":["name","merkmale","systemrechte","serviceProviderIds"]},"DbiamRolleError":{"type":"object","properties":{"i18nKey":{"type":"string","enum":["ROLLE_ERROR","ADD_SYSTEMRECHT_ERROR","ROLLE_HAT_PERSONENKONTEXTE_ERROR","UPDATE_MERKMALE_ERROR","ROLLENNAME_ENTHAELT_LEERZEICHEN"]},"code":{"type":"number","description":"Corresponds to HTTP Status code like 200, 404, 500"}},"required":["i18nKey","code"]},"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"]},"UpdatePersonenkontextBodyParams":{"type":"object","properties":{"referrer":{"type":"string","description":"The new referrer of the personenkontext."},"personenstatus":{"$ref":"#/components/schemas/Personenstatus"},"jahrgangsstufe":{"$ref":"#/components/schemas/Jahrgangsstufe"},"revision":{"type":"string","description":"The revision of the personenkontext."}},"required":["revision"]},"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"}},"required":["personId","organisationId","rolleId"]},"DbiamPersonenkontextBodyParams":{"type":"object","properties":{"personId":{"type":"string"},"organisationId":{"type":"string"},"rolleId":{"type":"string"}},"required":["personId","organisationId","rolleId"]},"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"]},"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"]},"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"]},"DbiamCreatePersonWithContextBodyParams":{"type":"object","properties":{"familienname":{"type":"string"},"vorname":{"type":"string"},"personalnummer":{"type":"string"},"organisationId":{"type":"string"},"rolleId":{"type":"string"}},"required":["familienname","vorname","organisationId","rolleId"]},"DBiamPersonResponse":{"type":"object","properties":{"person":{"$ref":"#/components/schemas/PersonResponse"},"DBiamPersonenkontextResponse":{"$ref":"#/components/schemas/DBiamPersonenkontextResponse"}},"required":["person","DBiamPersonenkontextResponse"]},"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"}},"required":["hasToken","tokenKind"]}}}} \ No newline at end of file +{ + "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." + } + }, + "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." + } + }, + "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_createPerson", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatePersonBodyParams" + } + } + } + }, + "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" + } + } + ], + "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." + } + }, + "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": [] + } + ] + } + }, + "/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": [] + } + ] + } + }, + "/api/personen/{personId}/personenkontexte": { + "post": { + "operationId": "PersonController_createPersonenkontext", + "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/CreatePersonenkontextBodyParams" + } + } + } + }, + "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": "rolle", + "required": false, + "in": "query", + "schema": { + "$ref": "#/components/schemas/Rolle" + } + }, + { + "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." + } + }, + "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": [] + } + ] + } + }, + "/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": [] + } + ] + } + }, + "/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" + } + } + ], + "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": [] + } + ] + } + }, + "/api/dbiam/personenuebersicht": { + "get": { + "operationId": "DBiamPersonenuebersichtController_findPersonenuebersichten", + "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": "personIds", + "required": true, + "in": "query", + "description": "An array of IDs for the persons.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "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." + } + }, + "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": [] + } + ] + } + }, + "/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." + } + }, + "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." + } + }, + "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" + } + } + } + }, + "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" + } + } + } + ], + "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." + } + }, + "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": [] + } + ] + } + }, + "/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": [] + } + ] + } + }, + "/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": [] + } + ] + } + }, + "/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": [] + } + ] + } + }, + "/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." + } + }, + "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": [] + } + ] + } + }, + "/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." + } + }, + "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": [] + } + ] + } + }, + "/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": [] + } + ] + } + }, + "/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." + } + }, + "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": [] + } + ] + } + }, + "/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." + } + }, + "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." + }, + "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": [] + } + ] + } + }, + "/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": [] + } + ] + } + }, + "/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": [] + } + ] + }, + "post": { + "operationId": "RolleController_addServiceProviderById", + "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/RolleServiceProviderQueryParams" + } + } + } + }, + "responses": { + "200": { + "description": "Adding service-provider finished successfully.", + "content": { + "application/json": { + "schema": { + "$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" + } + }, + { + "name": "serviceProviderId", + "required": true, + "in": "query", + "description": "The id for the rolle.", + "schema": { + "nullable": false, + "type": "string" + } + } + ], + "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": [] + } + ] + } + }, + "/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" + ] + } + ] + } + }, + "/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" + ] + } + ] + } + }, + "/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" + ] + } + ] + } + }, + "/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", + "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/UpdatePersonenkontextBodyParams" + } + } + } + }, + "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": [] + } + ] + } + }, + "/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": "rolle", + "required": false, + "in": "query", + "schema": { + "$ref": "#/components/schemas/Rolle" + } + }, + { + "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." + } + }, + "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": [] + } + ] + } + }, + "/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": [] + } + ] + } + }, + "/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": [] + } + ] + } + }, + "/api/dbiam/personenkontext": { + "post": { + "operationId": "DBiamPersonenkontextController_createPersonenkontext", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DbiamPersonenkontextBodyParams" + } + } + } + }, + "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" + } + } + ], + "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_createPersonWithKontext", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DbiamCreatePersonWithContextBodyParams" + } + } + } + }, + "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 was successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenStateResponse" + } + } + } + }, + "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": [] + } + ] + } + } + }, + "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" + ] + }, + "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": "number", + "nullable": true + }, + "personenkontexte": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonenkontextRolleFieldsResponse" + } + } + }, + "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", + "personenkontexte" + ] + }, + "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" + } + } + }, + "Geschlecht": { + "type": "string", + "enum": [ + "m", + "w", + "d", + "x" + ] + }, + "Vertrauensstufe": { + "type": "string", + "enum": [ + "KEIN", + "UNBE", + "TEIL", + "VOLL" + ] + }, + "CreatePersonBodyParams": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "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" + }, + "hashedPassword": { + "type": "string" + }, + "username": { + "type": "string" + }, + "personalnummer": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "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 + } + }, + "required": [ + "id", + "referrer", + "mandant", + "name", + "geburt", + "stammorganisation", + "geschlecht", + "lokalisierung", + "vertrauensstufe", + "revision", + "startpasswort", + "personalnummer" + ] + }, + "PersonendatensatzResponse": { + "type": "object", + "properties": { + "person": { + "$ref": "#/components/schemas/PersonResponse" + } + }, + "required": [ + "person" + ] + }, + "Rolle": { + "type": "string", + "enum": [ + "LERN", + "LEHR", + "EXTERN", + "ORGADMIN", + "LEIT", + "SYSADMIN" + ] + }, + "Personenstatus": { + "type": "string", + "description": "The new personenstatus of the personenkontext.", + "enum": [ + "AKTIV" + ] + }, + "Jahrgangsstufe": { + "type": "string", + "description": "The new jahrgangsstufe of the personenkontext.", + "enum": [ + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "10" + ] + }, + "CreatePersonenkontextBodyParams": { + "type": "object", + "properties": { + "referrer": { + "type": "string" + }, + "rolle": { + "$ref": "#/components/schemas/Rolle" + }, + "personenstatus": { + "$ref": "#/components/schemas/Personenstatus" + }, + "jahrgangsstufe": { + "$ref": "#/components/schemas/Jahrgangsstufe" + } + }, + "required": [ + "rolle" + ] + }, + "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" + }, + "roleName": { + "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", + "roleName", + "personenstatus", + "jahrgangsstufe", + "sichtfreigabe", + "loeschung", + "revision" + ] + }, + "Sichtfreigabe": { + "type": "string", + "enum": [ + "ja", + "nein" + ] + }, + "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" + ] + }, + "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" + }, + "administriertVon": { + "type": "string" + }, + "typ": { + "nullable": true, + "$ref": "#/components/schemas/OrganisationsTyp" + }, + "editable": { + "type": "boolean" + }, + "merkmale": { + "nullable": true, + "$ref": "#/components/schemas/RollenMerkmal" + } + }, + "required": [ + "sskId", + "rolleId", + "sskName", + "sskDstNr", + "rolle", + "administriertVon", + "typ", + "editable", + "merkmale" + ] + }, + "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" + ] + }, + "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 + } + }, + "required": [ + "id", + "referrer", + "mandant", + "name", + "geburt", + "stammorganisation", + "geschlecht", + "lokalisierung", + "vertrauensstufe", + "revision", + "personalnummer" + ] + }, + "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" + } + } + }, + "required": [ + "pid", + "person", + "personenkontexte", + "gruppen" + ] + }, + "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" + } + }, + "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" + } + }, + "required": [ + "id", + "administriertVon", + "kennung", + "name", + "namensergaenzung", + "kuerzel", + "typ", + "traegerschaft" + ] + }, + "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" + ] + }, + "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" + } + }, + "required": [ + "name", + "typ" + ] + }, + "OrganisationRootChildrenResponse": { + "type": "object", + "properties": { + "oeffentlich": { + "$ref": "#/components/schemas/OrganisationResponse" + }, + "ersatz": { + "$ref": "#/components/schemas/OrganisationResponse" + } + }, + "required": [ + "oeffentlich", + "ersatz" + ] + }, + "RollenSystemRecht": { + "type": "string", + "enum": [ + "ROLLEN_VERWALTEN", + "PERSONEN_SOFORT_LOESCHEN", + "PERSONEN_VERWALTEN", + "SCHULEN_VERWALTEN", + "KLASSEN_VERWALTEN", + "SCHULTRAEGER_VERWALTEN", + "MIGRATION_DURCHFUEHREN" + ] + }, + "OrganisationByIdBodyParams": { + "type": "object", + "properties": { + "organisationId": { + "type": "string", + "description": "The id of an organization", + "nullable": false + } + }, + "required": [ + "organisationId" + ] + }, + "OrganisationByNameBodyParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "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" + ] + }, + "RollenArt": { + "type": "string", + "enum": [ + "LERN", + "LEHR", + "EXTERN", + "ORGADMIN", + "LEIT", + "SYSADMIN" + ] + }, + "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" + } + }, + "serviceProviders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceProviderIdNameResponse" + } + } + }, + "required": [ + "id", + "createdAt", + "updatedAt", + "name", + "administeredBySchulstrukturknoten", + "rollenart", + "merkmale", + "systemrechte", + "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" + } + } + }, + "required": [ + "id", + "createdAt", + "updatedAt", + "name", + "administeredBySchulstrukturknoten", + "rollenart", + "merkmale", + "systemrechte" + ] + }, + "AddSystemrechtBodyParams": { + "type": "object", + "properties": { + "systemRecht": { + "$ref": "#/components/schemas/RollenSystemRecht" + } + }, + "required": [ + "systemRecht" + ] + }, + "RolleServiceProviderResponse": { + "type": "object", + "properties": { + "serviceProviderIds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "serviceProviderIds" + ] + }, + "RolleServiceProviderQueryParams": { + "type": "object", + "properties": { + "serviceProviderId": { + "type": "string", + "description": "The id for the rolle.", + "nullable": false + } + }, + "required": [ + "serviceProviderId" + ] + }, + "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" + } + }, + "required": [ + "id", + "name", + "target", + "url", + "kategorie", + "hasLogo" + ] + }, + "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" + } + } + }, + "required": [ + "name", + "merkmale", + "systemrechte", + "serviceProviderIds" + ] + }, + "DbiamRolleError": { + "type": "object", + "properties": { + "i18nKey": { + "type": "string", + "enum": [ + "ROLLE_ERROR", + "ADD_SYSTEMRECHT_ERROR", + "ROLLE_HAT_PERSONENKONTEXTE_ERROR", + "UPDATE_MERKMALE_ERROR", + "ROLLENNAME_ENTHAELT_LEERZEICHEN" + ] + }, + "code": { + "type": "number", + "description": "Corresponds to HTTP Status code like 200, 404, 500" + } + }, + "required": [ + "i18nKey", + "code" + ] + }, + "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" + ] + }, + "UpdatePersonenkontextBodyParams": { + "type": "object", + "properties": { + "referrer": { + "type": "string", + "description": "The new referrer of the personenkontext." + }, + "personenstatus": { + "$ref": "#/components/schemas/Personenstatus" + }, + "jahrgangsstufe": { + "$ref": "#/components/schemas/Jahrgangsstufe" + }, + "revision": { + "type": "string", + "description": "The revision of the personenkontext." + } + }, + "required": [ + "revision" + ] + }, + "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" + } + }, + "required": [ + "personId", + "organisationId", + "rolleId" + ] + }, + "DbiamPersonenkontextBodyParams": { + "type": "object", + "properties": { + "personId": { + "type": "string" + }, + "organisationId": { + "type": "string" + }, + "rolleId": { + "type": "string" + } + }, + "required": [ + "personId", + "organisationId", + "rolleId" + ] + }, + "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" + ] + }, + "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" + ] + }, + "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" + ] + }, + "DbiamCreatePersonWithContextBodyParams": { + "type": "object", + "properties": { + "familienname": { + "type": "string" + }, + "vorname": { + "type": "string" + }, + "personalnummer": { + "type": "string" + }, + "organisationId": { + "type": "string" + }, + "rolleId": { + "type": "string" + } + }, + "required": [ + "familienname", + "vorname", + "organisationId", + "rolleId" + ] + }, + "DBiamPersonResponse": { + "type": "object", + "properties": { + "person": { + "$ref": "#/components/schemas/PersonResponse" + }, + "DBiamPersonenkontextResponse": { + "$ref": "#/components/schemas/DBiamPersonenkontextResponse" + } + }, + "required": [ + "person", + "DBiamPersonenkontextResponse" + ] + }, + "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" + } + }, + "required": [ + "hasToken", + "tokenKind" + ] + } + } + } +} \ No newline at end of file diff --git a/src/stores/PersonenkontextStore.spec.ts b/src/stores/PersonenkontextStore.spec.ts index 66ec89e9..6d08f0d2 100644 --- a/src/stores/PersonenkontextStore.spec.ts +++ b/src/stores/PersonenkontextStore.spec.ts @@ -596,7 +596,7 @@ describe('PersonenkontextStore', () => { ], }; mockadapter.onGet('/api/dbiam/personenuebersicht').replyOnce(200, mockResponse); - const getAllPersonenuebersichtenPromise: Promise = personenkontextStore.getAllPersonenuebersichten(); + const getAllPersonenuebersichtenPromise: Promise = personenkontextStore.getAllPersonenuebersichten([]); expect(personenkontextStore.loading).toBe(true); await getAllPersonenuebersichtenPromise; expect(personenkontextStore.allUebersichten).toEqual(mockResponse); @@ -605,7 +605,7 @@ describe('PersonenkontextStore', () => { it('should handle string error', async () => { mockadapter.onGet('/api/dbiam/personenuebersicht').replyOnce(500, 'some error'); - const getAllPersonenuebersichtenPromise: Promise = personenkontextStore.getAllPersonenuebersichten(); + const getAllPersonenuebersichtenPromise: Promise = personenkontextStore.getAllPersonenuebersichten([]); expect(personenkontextStore.loading).toBe(true); await getAllPersonenuebersichtenPromise; expect(personenkontextStore.errorCode).toEqual('UNSPECIFIED_ERROR'); @@ -614,7 +614,7 @@ describe('PersonenkontextStore', () => { it('should handle error code', async () => { mockadapter.onGet('/api/dbiam/personenuebersicht').replyOnce(500, { code: 'some mock server error' }); - const getAllPersonenuebersichtenPromise: Promise = personenkontextStore.getAllPersonenuebersichten(); + const getAllPersonenuebersichtenPromise: Promise = personenkontextStore.getAllPersonenuebersichten([]); expect(personenkontextStore.loading).toBe(true); await getAllPersonenuebersichtenPromise; expect(personenkontextStore.errorCode).toEqual('some mock server error'); diff --git a/src/stores/PersonenkontextStore.ts b/src/stores/PersonenkontextStore.ts index be46a86a..16c0e819 100644 --- a/src/stores/PersonenkontextStore.ts +++ b/src/stores/PersonenkontextStore.ts @@ -123,7 +123,7 @@ type PersonenkontextActions = { personenKontextTyp: PersonenKontextTyp, ) => Promise; getPersonenuebersichtById: (personId: string) => Promise; - getAllPersonenuebersichten: () => Promise; + getAllPersonenuebersichten: (personIds: string[]) => Promise; createPersonWithKontext: (params: DbiamCreatePersonWithContextBodyParams) => Promise; }; @@ -322,11 +322,11 @@ export const usePersonenkontextStore: StoreDefinition< this.loading = false; } }, - async getAllPersonenuebersichten(): Promise { + async getAllPersonenuebersichten(personIds: string[]): Promise { this.loading = true; try { const { data }: { data: DBiamPersonenuebersichtControllerFindPersonenuebersichten200Response } = - await personenuebersichtApi.dBiamPersonenuebersichtControllerFindPersonenuebersichten(); + await personenuebersichtApi.dBiamPersonenuebersichtControllerFindPersonenuebersichten(personIds); this.allUebersichten = data; } catch (error: unknown) { this.errorCode = 'UNSPECIFIED_ERROR'; diff --git a/src/views/admin/PersonManagementView.vue b/src/views/admin/PersonManagementView.vue index 84829baa..56ca42da 100644 --- a/src/views/admin/PersonManagementView.vue +++ b/src/views/admin/PersonManagementView.vue @@ -110,31 +110,37 @@ const statuses: Array = ['Aktiv', 'Inaktiv']; - function getPaginatedPersonen(page: number): void { + async function getPaginatedPersonen(page: number): Promise { searchFilterStore.personenPage = page; - personStore.getAllPersons({ + await personStore.getAllPersons({ offset: (searchFilterStore.personenPage - 1) * searchFilterStore.personenPerPage, limit: searchFilterStore.personenPerPage, organisationIDs: searchFilterStore.selectedSchulen || selectedSchulen.value, rolleIDs: searchFilterStore.selectedRollen || selectedRollen.value, searchFilter: searchFilterStore.searchFilter || searchFilter.value, }); + await personenkontextStore.getAllPersonenuebersichten( + personStore.allPersons.map((person: Personendatensatz) => person.person.id), + ); } - function getPaginatedPersonenWithLimit(limit: number): void { + async function getPaginatedPersonenWithLimit(limit: number): Promise { /* reset page to 1 if entries are equal to or less than selected limit */ if (personStore.totalPersons <= limit) { searchFilterStore.personenPage = 1; } searchFilterStore.personenPerPage = limit; - personStore.getAllPersons({ + await personStore.getAllPersons({ offset: (searchFilterStore.personenPage - 1) * searchFilterStore.personenPerPage, limit: searchFilterStore.personenPerPage, organisationIDs: searchFilterStore.selectedSchulen || selectedSchulen.value, rolleIDs: searchFilterStore.selectedRollen || selectedRollen.value, searchFilter: searchFilterStore.searchFilter || searchFilter.value, }); + await personenkontextStore.getAllPersonenuebersichten( + personStore.allPersons.map((person: Personendatensatz) => person.person.id), + ); } function autoSelectSchule(): void { @@ -300,7 +306,10 @@ includeTyp: OrganisationsTyp.Klasse, systemrechte: ['KLASSEN_VERWALTEN'], }); - await personenkontextStore.getAllPersonenuebersichten(); + await getPaginatedPersonen(searchFilterStore.personenPage); + await personenkontextStore.getAllPersonenuebersichten( + personStore.allPersons.map((person: Personendatensatz) => person.person.id), + ); await personenkontextStore.getPersonenkontextRolleWithFilter(''); autoSelectSchule();