From eb7649cea17a0cf808bccba6d4ebca4a99c54309 Mon Sep 17 00:00:00 2001 From: Yannick Clausen Date: Tue, 19 Nov 2024 16:54:49 +0100 Subject: [PATCH] clean up + updates --- loadtest/api-client/openapispec.json | 4495 +------------------------ loadtest/pages/user-list.ts | 4 +- loadtest/usecases/1_login.ts | 4 +- loadtest/usecases/1_show-start.ts | 6 +- loadtest/usecases/1_show-user-list.ts | 4 +- loadtest/util/api.ts | 3 +- loadtest/util/config.ts | 2 +- loadtest/util/users.ts | 4 +- 8 files changed, 14 insertions(+), 4508 deletions(-) diff --git a/loadtest/api-client/openapispec.json b/loadtest/api-client/openapispec.json index 7235f36..9826715 100644 --- a/loadtest/api-client/openapispec.json +++ b/loadtest/api-client/openapispec.json @@ -1,4494 +1 @@ -{ - "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_createPersonMigration", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePersonMigrationBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The person was successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonendatensatzResponse" - } - } - } - }, - "400": { - "description": "A username was given. Creation with username is not supported." - }, - "401": { "description": "Not authorized to create the person." }, - "403": { - "description": "Insufficient permissions to create the person." - }, - "404": { - "description": "Insufficient permissions to create the person." - }, - "500": { - "description": "Internal server error while creating the person." - } - }, - "tags": ["personen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - }, - "get": { - "operationId": "PersonController_findPersons", - "parameters": [ - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { "type": "number" } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { "type": "number" } - }, - { - "name": "referrer", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "familienname", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "vorname", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "sichtfreigabe", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "default": "nein", - "enum": ["ja", "nein"], - "type": "string" - } - }, - { - "name": "organisationIDs", - "required": false, - "in": "query", - "description": "List of Organisation ID used to filter for Persons.", - "schema": { "type": "array", "items": { "type": "string" } } - }, - { - "name": "rolleIDs", - "required": false, - "in": "query", - "description": "List of Role ID used to filter for Persons.", - "schema": { "type": "array", "items": { "type": "string" } } - }, - { - "name": "suchFilter", - "required": false, - "in": "query", - "description": "Search filter used to filter for Persons. It could be the vorname, familienname, referrer or the personalnummer.", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "sortOrder", - "required": false, - "in": "query", - "description": "Order to sort by.", - "schema": { - "nullable": true, - "enum": ["asc", "desc"], - "type": "string" - } - }, - { - "name": "sortField", - "required": false, - "in": "query", - "description": "Field to sort by.", - "schema": { - "nullable": true, - "enum": ["familienname", "vorname", "personalnummer", "referrer"], - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The persons were successfully returned. WARNING: This endpoint returns all persons as default when no paging parameters were set.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonendatensatzResponse" - } - } - } - } - }, - "401": { "description": "Not authorized to get persons." }, - "403": { "description": "Insufficient permissions to get persons." }, - "500": { - "description": "Internal server error while getting all persons." - } - }, - "tags": ["personen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/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", - "summary": "", - "deprecated": true, - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "schema": { "type": "string" } - } - ], - "responses": { - "200": { - "description": "The personenkontext was successfully created." - }, - "400": { "description": "The personenkontext already exists." }, - "401": { - "description": "Not authorized to create the personenkontext." - }, - "403": { - "description": "Not permitted to create the personenkontext." - }, - "404": { - "description": "Insufficient permissions to create personenkontext for person." - }, - "500": { - "description": "Internal server error while creating the personenkontext." - } - }, - "tags": ["personen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - }, - "get": { - "operationId": "PersonController_findPersonenkontexte", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The id for the account.", - "schema": { "nullable": false, "type": "string" } - }, - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { "type": "number" } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { "type": "number" } - }, - { - "name": "personId", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "referrer", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "personenstatus", - "required": false, - "in": "query", - "schema": { "$ref": "#/components/schemas/Personenstatus" } - }, - { - "name": "sichtfreigabe", - "required": false, - "in": "query", - "schema": { "$ref": "#/components/schemas/Sichtfreigabe" } - } - ], - "responses": { - "200": { - "description": "The personenkontexte were successfully pulled.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "allOf": [ - { "$ref": "#/components/schemas/RawPagedResponse" }, - { - "required": ["items"], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonenkontextResponse" - } - } - } - } - ] - } - } - } - }, - "401": { "description": "Not authorized to get personenkontexte." }, - "403": { - "description": "Insufficient permissions to get personenkontexte." - }, - "404": { "description": "No personenkontexte were found." }, - "500": { - "description": "Internal server error while getting all personenkontexte." - } - }, - "tags": ["personen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/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/{personId}/lock-user": { - "put": { - "operationId": "PersonController_lockPerson", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LockUserBodyParams" } - } - } - }, - "responses": { - "200": { - "description": "User has been successfully updated.", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/PersonLockResponse" } - } - } - }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { "description": "The person was not found." }, - "500": { "description": "An internal server error occurred." }, - "502": { "description": "A downstream server returned an error." } - }, - "tags": ["personen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/personen/{personId}/sync": { - "post": { - "operationId": "PersonController_syncPerson", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "schema": { "type": "string" } - } - ], - "responses": { - "200": { "description": "User will be synced." }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { "description": "The person was not found." }, - "500": { "description": "An internal server error occurred." }, - "502": { "description": "A downstream server returned an error." } - }, - "tags": ["personen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/personen/{personId}/metadata": { - "patch": { - "operationId": "PersonController_updateMetadata", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The id for the account.", - "schema": { "nullable": false, "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonMetadataBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The metadata for user was successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonendatensatzResponse" - } - } - } - }, - "400": { - "description": "Request has a wrong format.", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/DbiamPersonError" } - } - } - }, - "401": { "description": "Not authorized to update the metadata." }, - "403": { "description": "Not permitted to update the metadata." }, - "500": { - "description": "Internal server error while updating the metadata for user." - } - }, - "tags": ["personen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/personen-frontend": { - "get": { - "operationId": "PersonFrontendController_findPersons", - "parameters": [ - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { "type": "number" } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { "type": "number" } - }, - { - "name": "referrer", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "familienname", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "vorname", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "sichtfreigabe", - "required": false, - "in": "query", - "schema": { - "nullable": true, - "default": "nein", - "enum": ["ja", "nein"], - "type": "string" - } - }, - { - "name": "organisationIDs", - "required": false, - "in": "query", - "description": "List of Organisation ID used to filter for Persons.", - "schema": { "type": "array", "items": { "type": "string" } } - }, - { - "name": "rolleIDs", - "required": false, - "in": "query", - "description": "List of Role ID used to filter for Persons.", - "schema": { "type": "array", "items": { "type": "string" } } - }, - { - "name": "suchFilter", - "required": false, - "in": "query", - "description": "Search filter used to filter for Persons. It could be the vorname, familienname, referrer or the personalnummer.", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "sortOrder", - "required": false, - "in": "query", - "description": "Order to sort by.", - "schema": { - "nullable": true, - "enum": ["asc", "desc"], - "type": "string" - } - }, - { - "name": "sortField", - "required": false, - "in": "query", - "description": "Field to sort by.", - "schema": { - "nullable": true, - "enum": ["familienname", "vorname", "personalnummer", "referrer"], - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The persons were successfully returned. WARNING: This endpoint returns all persons as default when no paging parameters were set.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { "$ref": "#/components/schemas/RawPagedResponse" }, - { - "required": ["items"], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonendatensatzResponse" - } - } - } - } - ] - } - } - } - }, - "401": { "description": "Not authorized to get persons." }, - "403": { "description": "Insufficient permissions to get persons." }, - "500": { - "description": "Internal server error while getting all persons." - } - }, - "tags": ["personen-frontend"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/dbiam/personenuebersicht": { - "post": { - "operationId": "DBiamPersonenuebersichtController_findPersonenuebersichten", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonenuebersichtBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The personenuebersichten were successfully returned.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "allOf": [ - { "$ref": "#/components/schemas/RawPagedResponse" }, - { - "required": ["items"], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DBiamPersonenuebersichtResponse" - } - } - } - } - ] - } - } - } - }, - "401": { - "description": "Not authorized to get personenuebersichten." - }, - "403": { - "description": "Insufficient permission to get personenuebersichten." - }, - "500": { - "description": "Internal server error while getting personenuebersichten." - } - }, - "tags": ["dbiam-personenuebersicht"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/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" } } - }, - { - "name": "organisationIds", - "required": false, - "in": "query", - "description": "Liefert Organisationen mit den angegebenen IDs, selbst wenn andere Filterkriterien nicht zutreffen (ODER-verknüpft mit anderen Kriterien).", - "schema": { "type": "array", "items": { "type": "string" } } - } - ], - "responses": { - "200": { - "description": "The organizations were successfully returned.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - } - } - }, - "401": { "description": "Not authorized to get organizations." }, - "403": { - "description": "Insufficient permissions to get organizations." - }, - "500": { - "description": "Internal server error while getting all organizations." - } - }, - "tags": ["organisationen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/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/parents-by-ids": { - "post": { - "operationId": "OrganisationController_getParentsByIds", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ParentOrganisationsByIdsBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "The parent organizations were successfully pulled.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ParentOrganisationenResponse" - } - } - } - }, - "401": { "description": "Not authorized to get the organizations." }, - "403": { - "description": "Insufficient permissions to get the organizations." - }, - "500": { - "description": "Internal server error while getting the organization." - } - }, - "tags": ["organisationen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/organisationen/{organisationId}/administriert": { - "get": { - "operationId": "OrganisationController_getAdministrierteOrganisationen", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { "nullable": false, "type": "string" } - }, - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { "type": "number" } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { "type": "number" } - }, - { - "name": "searchFilter", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - } - ], - "responses": { - "200": { - "description": "The organizations were successfully returned.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - } - } - }, - "401": { "description": "Not authorized to get organizations." }, - "403": { - "description": "Insufficient permissions to get organizations." - }, - "500": { - "description": "Internal server error while getting all organizations." - } - }, - "tags": ["organisationen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - }, - "post": { - "operationId": "OrganisationController_addAdministrierteOrganisation", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { "nullable": false, "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationByIdBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The organisation was successfully updated." - }, - "400": { - "description": "The organisation could not be modified.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamOrganisationError" - } - } - } - }, - "401": { - "description": "Not authorized to modify the organisation." - }, - "403": { "description": "Not permitted to modify the organisation." }, - "500": { - "description": "Internal server error while modifying the organisation." - } - }, - "tags": ["organisationen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/organisationen/{organisationId}/zugehoerig": { - "get": { - "operationId": "OrganisationController_getZugehoerigeOrganisationen", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { "nullable": false, "type": "string" } - } - ], - "responses": { - "200": { - "description": "The organizations were successfully returned.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponse" - } - } - } - } - }, - "401": { "description": "Not authorized to get organizations." }, - "403": { - "description": "Insufficient permissions to get organizations." - }, - "500": { - "description": "Internal server error while getting all organizations." - } - }, - "tags": ["organisationen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - }, - "post": { - "operationId": "OrganisationController_addZugehoerigeOrganisation", - "parameters": [ - { - "name": "organisationId", - "required": true, - "in": "path", - "description": "The id of an organization", - "schema": { "nullable": false, "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationByIdBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The organisation was successfully updated." - }, - "400": { - "description": "The organisation could not be modified.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamOrganisationError" - } - } - } - }, - "401": { - "description": "Not authorized to modify the organisation." - }, - "403": { "description": "Not permitted to modify the organisation." }, - "500": { - "description": "Internal server error while modifying the organisation." - } - }, - "tags": ["organisationen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/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." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - } - } - }, - "400": { - "description": "The organisation could not be modified.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamOrganisationError" - } - } - } - }, - "401": { - "description": "Not authorized to modify the organisation." - }, - "403": { "description": "Not permitted to modify the organisation." }, - "500": { - "description": "Internal server error while modifying the organisation." - } - }, - "tags": ["organisationen"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/rolle": { - "get": { - "operationId": "RolleController_findRollen", - "summary": "", - "description": "List all rollen.", - "parameters": [ - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { "type": "number" } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { "type": "number" } - }, - { - "name": "searchStr", - "required": false, - "in": "query", - "description": "The name for the role.", - "schema": { "nullable": false, "type": "string" } - } - ], - "responses": { - "200": { - "description": "The rollen were successfully returned", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RolleWithServiceProvidersResponse" - } - } - } - } - }, - "401": { "description": "Not authorized to get rollen." }, - "403": { "description": "Insufficient permissions to get rollen." }, - "500": { - "description": "Internal server error while getting all rollen." - } - }, - "tags": ["rolle"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - }, - "post": { - "operationId": "RolleController_createRolle", - "summary": "", - "description": "Create a new rolle.", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/CreateRolleBodyParams" } - } - } - }, - "responses": { - "201": { - "description": "The rolle was successfully created.", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/RolleResponse" } - } - } - }, - "400": { "description": "The input was not valid." }, - "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": [] }] - }, - "put": { - "operationId": "RolleController_updateServiceProvidersById", - "summary": "", - "description": "Add a service-provider to a rolle by id.", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "path", - "description": "The id for the rolle.", - "schema": { "nullable": false, "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolleServiceProviderBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "Adding service-provider finished successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProviderResponse" - } - } - } - } - }, - "400": { - "description": "The service-provider is already attached to rolle." - }, - "401": { - "description": "Not authorized to retrieve service-providers for rolle." - }, - "404": { - "description": "The rolle or the service-provider to add does not exist." - }, - "500": { - "description": "Internal server error, the service-provider may could not be found after attaching to rolle." - } - }, - "tags": ["rolle"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - }, - "delete": { - "operationId": "RolleController_removeServiceProviderById", - "summary": "", - "description": "Remove a service-provider from a rolle by id.", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "path", - "description": "The id for the rolle.", - "schema": { "nullable": false, "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolleServiceProviderBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "Removing service-provider finished successfully." - }, - "401": { - "description": "Not authorized to retrieve service-providers for rolle." - }, - "404": { - "description": "The rolle or the service-provider that should be removed does not exist." - } - }, - "tags": ["rolle"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/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", - "summary": "", - "deprecated": true, - "parameters": [ - { - "name": "personenkontextId", - "required": true, - "in": "path", - "schema": { "type": "string" } - } - ], - "responses": { - "200": { - "description": "The personenkontext was successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonenkontextResponse" - } - } - } - }, - "400": { "description": "Request has wrong format." }, - "401": { "description": "Request is not authorized." }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { "description": "The personenkontext was not found." }, - "500": { "description": "An internal server error occurred." } - }, - "tags": ["personenkontexte"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - }, - "delete": { - "operationId": "PersonenkontextController_deletePersonenkontextById", - "parameters": [ - { - "name": "personenkontextId", - "required": true, - "in": "path", - "description": "The id for the personenkontext.", - "schema": { "nullable": false, "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteRevisionBodyParams" - } - } - } - }, - "responses": { - "204": { - "description": "The personenkontext was successfully deleted." - }, - "400": { "description": "Request has wrong format." }, - "401": { "description": "Request is not authorized." }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { "description": "The personenkontext was not found." }, - "500": { "description": "An internal server error occurred." } - }, - "tags": ["personenkontexte"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/personenkontexte": { - "get": { - "operationId": "PersonenkontextController_findPersonenkontexte", - "parameters": [ - { - "name": "offset", - "required": false, - "in": "query", - "description": "The offset of the paginated list.", - "schema": { "type": "number" } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The requested limit for the page size.", - "schema": { "type": "number" } - }, - { - "name": "personId", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "referrer", - "required": false, - "in": "query", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "personenstatus", - "required": false, - "in": "query", - "schema": { "$ref": "#/components/schemas/Personenstatus" } - }, - { - "name": "sichtfreigabe", - "required": false, - "in": "query", - "schema": { "$ref": "#/components/schemas/Sichtfreigabe" } - } - ], - "responses": { - "200": { - "description": "The personenkontexte were successfully returned.", - "headers": { - "X-Paging-Offset": { - "description": "The offset of the first item from the list. List starts with index 0." - }, - "X-Paging-Limit": { - "description": "The maximum amount of items returned in one request." - }, - "X-Paging-Total": { - "description": "The total amount of items in the list." - }, - "X-Paging-pageTotal": { - "description": "The total amount of items in the paginated list." - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonenkontextdatensatzResponse" - } - } - } - } - }, - "400": { "description": "Request has wrong format." }, - "401": { "description": "Request is not authorized." }, - "403": { - "description": "Insufficient permissions to perform operation." - }, - "404": { "description": "The personenkontexte were not found." }, - "500": { "description": "An internal server error occurred." } - }, - "tags": ["personenkontexte"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/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_createPersonenkontextMigration", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonenkontextMigrationBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "Personenkontext was successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBiamPersonenkontextResponse" - } - } - } - }, - "400": { - "description": "The personenkontext could not be created, may due to unsatisfied specifications.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonenkontextError" - } - } - } - }, - "401": { "description": "Not authorized to create personenkontext." }, - "403": { - "description": "Insufficient permission to create personenkontext." - }, - "500": { - "description": "Internal server error while creating personenkontext." - } - }, - "tags": ["dbiam-personenkontexte"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/personenkontext-workflow/step": { - "get": { - "operationId": "DbiamPersonenkontextWorkflowController_processStep", - "parameters": [ - { - "name": "organisationId", - "required": false, - "in": "query", - "description": "ID of the organisation to filter the rollen later", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "rolleId", - "required": false, - "in": "query", - "description": "ID of the rolle.", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "rolleName", - "required": false, - "in": "query", - "description": "Rolle name used to filter for rollen in personenkontext.", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "organisationName", - "required": false, - "in": "query", - "description": "Organisation/SSK name used to filter for schulstrukturknoten in personenkontext.", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The limit of items for the request.", - "schema": { "nullable": false, "type": "number" } - } - ], - "responses": { - "200": { - "description": "Initialize or process data from the person creation form.\n Valid combinations:\n - Both organisationId and rolleId are undefined: Fetch all possible organisations.\n - organisationId is provided, but rolleId is undefined: Fetch Rollen for the given organisation.\n - Both organisationId and rolleId are provided: Check if the Rolle can be committed for the organisation.\n Note: Providing rolleId without organisationId is invalid.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonenkontextWorkflowResponse" - } - } - } - }, - "401": { - "description": "Not authorized to get available data for personenkontext." - }, - "403": { - "description": "Insufficient permission to get data for personenkontext." - }, - "500": { - "description": "Internal server error while getting data for personenkontext." - } - }, - "tags": ["personenkontext"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/personenkontext-workflow/{personId}": { - "put": { - "operationId": "DbiamPersonenkontextWorkflowController_commit", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "path", - "description": "The ID for the person.", - "schema": { "type": "string" } - }, - { - "name": "personalnummer", - "required": false, - "in": "query", - "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamUpdatePersonenkontexteBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "Add or remove personenkontexte as one operation. Returns the Personenkontexte existing after update.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonenkontexteUpdateResponse" - } - } - } - }, - "400": { - "description": "The personenkontexte could not be updated, may due to unsatisfied specifications.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonenkontexteUpdateError" - } - } - } - }, - "401": { - "description": "Not authorized to update personenkontexte." - }, - "403": { - "description": "Insufficient permission to update personenkontexte." - }, - "409": { - "description": "Changes are conflicting with current state of personenkontexte." - }, - "500": { - "description": "Internal server error while updating personenkontexte." - } - }, - "tags": ["personenkontext"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/personenkontext-workflow/schulstrukturknoten": { - "get": { - "operationId": "DbiamPersonenkontextWorkflowController_findSchulstrukturknoten", - "parameters": [ - { - "name": "rolleId", - "required": true, - "in": "query", - "description": "RolleId used to filter for schulstrukturknoten in personenkontext.", - "schema": { "nullable": false, "type": "string" } - }, - { - "name": "sskName", - "required": false, - "in": "query", - "description": "Organisation/SSK name used to filter for schulstrukturknoten in personenkontext.", - "schema": { "nullable": true, "type": "string" } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The limit of items for the request.", - "schema": { "nullable": false, "type": "number" } - } - ], - "responses": { - "200": { - "description": "The schulstrukturknoten for a personenkontext were successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FindSchulstrukturknotenResponse" - } - } - } - }, - "401": { - "description": "Not authorized to get available schulstrukturknoten for personenkontexte." - }, - "403": { - "description": "Insufficient permission to get schulstrukturknoten for personenkontext." - }, - "500": { - "description": "Internal server error while getting schulstrukturknoten for personenkontexte." - } - }, - "tags": ["personenkontext"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/personenkontext-workflow": { - "post": { - "operationId": "DbiamPersonenkontextWorkflowController_createPersonWithPersonenkontexte", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamCreatePersonWithPersonenkontexteBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "Person with Personenkontext was successfully created.", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/DBiamPersonResponse" } - } - } - }, - "400": { - "description": "The person and the personenkontext could not be created, may due to unsatisfied specifications.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonenkontextError" - } - } - } - }, - "401": { - "description": "Not authorized to create person with personenkontext." - }, - "403": { - "description": "Insufficient permission to create person with personenkontext." - }, - "500": { - "description": "Internal server error while creating person with personenkontext." - } - }, - "tags": ["personenkontext"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/person-administration/rollen": { - "get": { - "operationId": "PersonAdministrationController_findRollen", - "parameters": [ - { - "name": "rolleName", - "required": false, - "in": "query", - "description": "Rolle name used to filter for rollen in personenkontext.", - "schema": { "nullable": false, "type": "string" } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "The limit of items for the request.", - "schema": { "nullable": false, "type": "number" } - } - ], - "responses": { - "200": { - "description": "The rollen for the logged-in user were successfully returned.", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/FindRollenResponse" } - } - } - }, - "401": { - "description": "Not authorized to get available rollen for the logged-in user." - }, - "403": { - "description": "Insufficient permission to get rollen for the logged-in user." - }, - "500": { - "description": "Internal server error while getting rollen for the logged-in user." - } - }, - "tags": ["person-administration"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/2fa-token/init": { - "post": { - "operationId": "PrivacyIdeaAdministrationController_initializeSoftwareToken", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/TokenInitBodyParams" } - } - } - }, - "responses": { - "201": { - "description": "The token was successfully created.", - "content": { - "application/json": { "schema": { "type": "string" } } - } - }, - "400": { "description": "A username was not given or not found." }, - "401": { "description": "Not authorized to create token." }, - "403": { "description": "Insufficient permissions to create token." }, - "404": { "description": "Insufficient permissions to create token." }, - "500": { - "description": "Internal server error while creating a token." - } - }, - "tags": ["2FA"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/2fa-token/state": { - "get": { - "operationId": "PrivacyIdeaAdministrationController_getTwoAuthState", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "query", - "schema": { "type": "string" } - } - ], - "responses": { - "201": { - "description": "The token state was successfully returned.", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/TokenStateResponse" } - } - } - }, - "400": { "description": "A username was not given or not found." }, - "401": { "description": "Not authorized to get token state." }, - "403": { - "description": "Insufficient permissions to get token state." - }, - "404": { - "description": "Insufficient permissions to get token state." - }, - "500": { - "description": "Internal server error while retrieving token state." - } - }, - "tags": ["2FA"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/2fa-token/reset": { - "put": { - "operationId": "PrivacyIdeaAdministrationController_resetToken", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "query", - "schema": { "type": "string" } - } - ], - "responses": { - "201": { - "description": "The token was successfully reset.", - "content": { - "application/json": { "schema": { "type": "boolean" } } - } - }, - "400": { "description": "A username was not given or not found." }, - "401": { "description": "Not authorized to reset token." }, - "403": { "description": "Insufficient permissions to reset token." }, - "404": { "description": "Insufficient permissions to reset token." }, - "500": { - "description": "Internal server error while reseting a token." - } - }, - "tags": ["2FA"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/2fa-token/assign/hardwareToken": { - "post": { - "operationId": "PrivacyIdeaAdministrationController_assignHardwareToken", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AssignHardwareTokenBodyParams" - } - } - } - }, - "responses": { - "201": { - "description": "The hardware token was successfully assigned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AssignHardwareTokenResponse" - } - } - } - }, - "400": { "description": "Not found." }, - "401": { "description": "Not authorized to assign hardware token." }, - "403": { "description": "Insufficient permissions to reset token." }, - "404": { - "description": "Insufficient permissions to assign hardware token." - }, - "500": { - "description": "Internal server error while assigning a hardware token." - } - }, - "tags": ["2FA"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/2fa-token/verify": { - "post": { - "operationId": "PrivacyIdeaAdministrationController_verifyToken", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/TokenVerifyBodyParams" } - } - } - }, - "responses": { - "201": { "description": "The token was successfully verified." }, - "400": { "description": "A username was not given or not found." }, - "401": { "description": "Not authorized to verify token." }, - "403": { "description": "Insufficient permissions to verify token." }, - "404": { "description": "Insufficient permissions to verify token." }, - "500": { - "description": "Internal server error while verifying a token." - } - }, - "tags": ["2FA"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/2fa-token/required": { - "get": { - "operationId": "PrivacyIdeaAdministrationController_requiresTwoFactorAuthentication", - "parameters": [ - { - "name": "personId", - "required": true, - "in": "query", - "schema": { "type": "string" } - } - ], - "responses": { - "200": { - "description": "The requirement was successfully returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenRequiredResponse" - } - } - } - }, - "400": { "description": "A username was not given or not found." }, - "401": { - "description": "Not authorized to get requirement information." - }, - "403": { - "description": "Insufficient permissions to get requirement information." - }, - "404": { - "description": "Insufficient permissions to get requirement information." - }, - "500": { - "description": "Internal server error while getting requirement information." - } - }, - "tags": ["2FA"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/cron/kopers-lock": { - "put": { - "operationId": "CronController_koPersUserLock", - "parameters": [], - "responses": { - "201": { - "description": "User were successfully locked.", - "content": { - "application/json": { "schema": { "type": "boolean" } } - } - }, - "400": { "description": "User are not given or not found" }, - "401": { "description": "Not authorized to lock user." }, - "403": { "description": "Insufficient permissions to lock user." }, - "404": { "description": "Insufficient permissions to lock user." }, - "500": { - "description": "Internal server error while trying to lock user." - } - }, - "tags": ["cron"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/cron/kontext-expired": { - "put": { - "operationId": "CronController_removePersonenKontexteWithExpiredBefristungFromUsers", - "parameters": [], - "responses": { - "201": { - "description": "Personenkontexte were successfully removed from users.", - "content": { - "application/json": { "schema": { "type": "boolean" } } - } - }, - "400": { - "description": "Personenkontexte are not given or not found." - }, - "401": { - "description": "Not authorized to remove personenkontexte from users." - }, - "403": { - "description": "Insufficient permissions to remove personenkontexte from users." - }, - "404": { - "description": "Insufficient permissions to remove personenkontexte from users." - }, - "500": { - "description": "Internal server error while trying to remove personenkontexte from users." - } - }, - "tags": ["cron"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/cron/person-without-org": { - "put": { - "operationId": "CronController_personWithoutOrgDelete", - "parameters": [], - "responses": { - "201": { - "description": "User were successfully removed.", - "content": { - "application/json": { "schema": { "type": "boolean" } } - } - }, - "400": { "description": "User are not given or not found" }, - "401": { "description": "Not authorized to remove user." }, - "403": { "description": "Insufficient permissions to delete user." }, - "404": { "description": "Insufficient permissions to delete user." }, - "500": { - "description": "Internal server error while trying to remove user." - } - }, - "tags": ["cron"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/import/upload": { - "post": { - "operationId": "ImportController_uploadFile", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/DbiamPersonenkontextImportBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "Returns an import upload response object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUploadResponse" - } - } - } - }, - "400": { "description": "The CSV file was not valid." }, - "401": { - "description": "Not authorized to import data with a CSV file." - }, - "403": { - "description": "Insufficient permissions to import data with a CSV file." - }, - "500": { - "description": "Internal server error while importing data with a CSV file." - } - }, - "tags": ["import"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/import/execute": { - "post": { - "operationId": "ImportController_executeImport", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportvorgangByIdBodyParams" - } - } - } - }, - "responses": { - "200": { - "description": "Import transaction was executed successfully. The text file can be downloaded", - "content": { - "text/plain": { - "schema": { "type": "string", "format": "binary" } - } - } - }, - "400": { - "description": "Something went wrong with the found import transaction.", - "content": { - "text/plain": { - "schema": { "$ref": "#/components/schemas/DbiamImportError" } - } - } - }, - "401": { - "description": "Not authorized to execute the import transaction." - }, - "403": { - "description": "Insufficient permissions to execute the import transaction." - }, - "404": { "description": "The import transaction does not exist." }, - "500": { - "description": "Internal server error while executing the import transaction." - } - }, - "tags": ["import"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - }, - "/api/import/{importvorgangId}": { - "delete": { - "operationId": "ImportController_deleteImportTransaction", - "summary": "", - "description": "Delete a role by id.", - "parameters": [ - { - "name": "importvorgangId", - "required": true, - "in": "path", - "description": "The id of an import transaction", - "schema": { "nullable": false, "type": "string" } - } - ], - "responses": { - "204": { - "description": "Import transaction was deleted successfully." - }, - "400": { - "description": "Something went wrong with the found import transaction.", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/DbiamImportError" } - } - } - }, - "401": { - "description": "Not authorized to delete the import transaction." - }, - "404": { - "description": "The import transaction that should be deleted does not exist." - } - }, - "tags": ["import"], - "security": [{ "oauth2": ["openid"] }, { "bearer": [] }] - } - } - }, - "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": "string", "nullable": true }, - "password_updated_at": { "type": "string", "nullable": true }, - "personenkontexte": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonenkontextRolleFieldsResponse" - } - }, - "acr": { "type": "string", "nullable": false } - }, - "required": [ - "sub", - "personId", - "name", - "given_name", - "family_name", - "middle_name", - "nickname", - "preferred_username", - "profile", - "picture", - "website", - "email", - "email_verified", - "gender", - "birthdate", - "zoneinfo", - "locale", - "phone_number", - "updated_at", - "password_updated_at", - "personenkontexte", - "acr" - ] - }, - "CreatePersonMigrationBodyParams": { - "type": "object", - "properties": { - "personId": { "type": "string" }, - "familienname": { "type": "string" }, - "vorname": { "type": "string" }, - "hashedPassword": { "type": "string" }, - "username": { "type": "string" }, - "personalnummer": { "type": "string" } - }, - "required": ["personId", "familienname", "vorname"] - }, - "PersonNameParams": { - "type": "object", - "properties": { - "familienname": { "type": "string" }, - "vorname": { "type": "string" }, - "initialenfamilienname": { "type": "string" }, - "initialenvorname": { "type": "string" }, - "rufname": { "type": "string" }, - "titel": { "type": "string" }, - "anrede": { "type": "array", "items": { "type": "string" } }, - "namenssuffix": { "type": "array", "items": { "type": "string" } }, - "namenspraefix": { "type": "array", "items": { "type": "string" } }, - "sortierindex": { "type": "string" } - }, - "required": ["familienname", "vorname"] - }, - "PersonBirthParams": { - "type": "object", - "properties": { - "datum": { "format": "date-time", "type": "string" }, - "geburtsort": { "type": "string" } - } - }, - "Vertrauensstufe": { - "type": "string", - "enum": ["KEIN", "UNBE", "TEIL", "VOLL"] - }, - "UserLockParams": { - "type": "object", - "properties": { - "personId": { "type": "string", "nullable": true }, - "locked_by": { "type": "string", "nullable": true }, - "created_at": { "type": "string", "nullable": true }, - "locked_until": { "type": "string", "nullable": true } - }, - "required": ["personId", "locked_by", "created_at", "locked_until"] - }, - "EmailAddressStatus": { - "type": "string", - "enum": ["ENABLED", "DISABLED", "REQUESTED", "FAILED"] - }, - "PersonEmailResponse": { - "type": "object", - "properties": { - "status": { "$ref": "#/components/schemas/EmailAddressStatus" }, - "address": { "type": "string" } - }, - "required": ["status", "address"] - }, - "PersonResponse": { - "type": "object", - "properties": { - "id": { "type": "string" }, - "referrer": { "type": "string", "nullable": true }, - "mandant": { "type": "string" }, - "name": { "$ref": "#/components/schemas/PersonNameParams" }, - "geburt": { - "nullable": true, - "allOf": [{ "$ref": "#/components/schemas/PersonBirthParams" }] - }, - "stammorganisation": { "type": "string", "nullable": true }, - "geschlecht": { "type": "string", "nullable": true }, - "lokalisierung": { "type": "string", "nullable": true }, - "vertrauensstufe": { - "nullable": true, - "$ref": "#/components/schemas/Vertrauensstufe" - }, - "revision": { "type": "string" }, - "startpasswort": { - "type": "string", - "description": "Initiales Benutzerpasswort, muss nach der ersten Anmeldung geändert werden" - }, - "personalnummer": { "type": "string", "nullable": true }, - "isLocked": { "type": "boolean", "nullable": true }, - "userLock": { - "nullable": true, - "allOf": [{ "$ref": "#/components/schemas/UserLockParams" }] - }, - "lastModified": { - "format": "date-time", - "type": "string", - "description": "Date of the most recent changes for the person" - }, - "email": { - "nullable": true, - "description": "Contains status and address. Returns email-address verified by OX (enabled) if available, otherwise returns most recently updated one (no prioritized status)", - "allOf": [{ "$ref": "#/components/schemas/PersonEmailResponse" }] - } - }, - "required": [ - "id", - "referrer", - "mandant", - "name", - "geburt", - "stammorganisation", - "geschlecht", - "lokalisierung", - "vertrauensstufe", - "revision", - "startpasswort", - "personalnummer", - "isLocked", - "userLock", - "lastModified", - "email" - ] - }, - "PersonendatensatzResponse": { - "type": "object", - "properties": { - "person": { "$ref": "#/components/schemas/PersonResponse" } - }, - "required": ["person"] - }, - "RawPagedResponse": { - "type": "object", - "properties": { - "total": { "type": "number" }, - "offset": { "type": "number" }, - "limit": { "type": "number" }, - "items": { "type": "array", "items": { "type": "string" } } - }, - "required": ["total", "offset", "limit", "items"] - }, - "CreatedPersonenkontextOrganisation": { - "type": "object", - "properties": {} - }, - "LoeschungResponse": { - "type": "object", - "properties": { - "zeitpunkt": { "format": "date-time", "type": "string" } - }, - "required": ["zeitpunkt"] - }, - "PersonenkontextResponse": { - "type": "object", - "properties": { - "id": { "type": "string" }, - "referrer": { "type": "string", "nullable": true }, - "mandant": { "type": "string" }, - "organisation": { - "$ref": "#/components/schemas/CreatedPersonenkontextOrganisation" - }, - "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" - ] - }, - "Personenstatus": { "type": "string", "enum": ["AKTIV"] }, - "Sichtfreigabe": { "type": "string", "enum": ["ja", "nein"] }, - "Geschlecht": { "type": "string", "enum": ["m", "w", "d", "x"] }, - "UpdatePersonBodyParams": { - "type": "object", - "properties": { - "referrer": { "type": "string" }, - "stammorganisation": { "type": "string" }, - "name": { "$ref": "#/components/schemas/PersonNameParams" }, - "geburt": { "$ref": "#/components/schemas/PersonBirthParams" }, - "geschlecht": { "$ref": "#/components/schemas/Geschlecht" }, - "lokalisierung": { "type": "string" }, - "vertrauensstufe": { "$ref": "#/components/schemas/Vertrauensstufe" }, - "auskunftssperre": { "type": "boolean" }, - "revision": { "type": "string" } - }, - "required": ["name", "revision"] - }, - "LockUserBodyParams": { - "type": "object", - "properties": { - "lock": { "type": "boolean", "nullable": false }, - "locked_by": { "type": "string", "nullable": false }, - "locked_until": { - "format": "date-time", - "type": "string", - "description": "Required if Befristung is set" - } - }, - "required": ["lock", "locked_by"] - }, - "PersonLockResponse": { - "type": "object", - "properties": { "message": { "type": "string" } }, - "required": ["message"] - }, - "PersonMetadataBodyParams": { - "type": "object", - "properties": { - "familienname": { "type": "string" }, - "vorname": { "type": "string" }, - "personalnummer": { "type": "string" }, - "lastModified": { - "format": "date-time", - "type": "string", - "description": "Date of the most recent changed Personalnummer" - }, - "revision": { "type": "string" } - }, - "required": ["familienname", "vorname", "lastModified", "revision"] - }, - "DbiamPersonError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "PERSON_ERROR", - "VORNAME_ENTHAELT_LEERZEICHEN", - "FAMILIENNAME_ENTHAELT_LEERZEICHEN", - "PERSON_NOT_FOUND", - "DOWNSTREAM_UNREACHABLE", - "PERSONALNUMMER_REQUIRED", - "NEWER_VERSION_OF_PERSON_AVAILABLE", - "PERSONALNUMMER_NICHT_EINDEUTIG" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": ["i18nKey", "code"] - }, - "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" }, - "befristung": { "format": "date-time", "type": "string" }, - "merkmale": { - "nullable": true, - "$ref": "#/components/schemas/RollenMerkmal" - } - }, - "required": [ - "sskId", - "rolleId", - "sskName", - "sskDstNr", - "rolle", - "administriertVon", - "typ", - "editable", - "befristung", - "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" - ] - }, - "PersonenuebersichtBodyParams": { - "type": "object", - "properties": { - "personIds": { - "description": "An array of IDs for the persons.", - "type": "array", - "items": { "type": "string" } - } - }, - "required": ["personIds"] - }, - "PersonNameResponse": { - "type": "object", - "properties": { - "familiennamen": { "type": "string" }, - "vorname": { "type": "string" }, - "initialenfamilienname": { "type": "string", "nullable": true }, - "initialenvorname": { "type": "string", "nullable": true }, - "rufname": { "type": "string", "nullable": true }, - "titel": { "type": "string", "nullable": true }, - "anrede": { - "nullable": true, - "type": "array", - "items": { "type": "string" } - }, - "namenspraefix": { - "nullable": true, - "type": "array", - "items": { "type": "string" } - }, - "namenssuffix": { - "nullable": true, - "type": "array", - "items": { "type": "string" } - }, - "sortierindex": { "type": "string", "nullable": true } - }, - "required": [ - "familiennamen", - "vorname", - "initialenfamilienname", - "initialenvorname", - "rufname", - "titel", - "anrede", - "namenspraefix", - "namenssuffix", - "sortierindex" - ] - }, - "PersonBirthResponse": { - "type": "object", - "properties": { - "datum": { - "format": "date-time", - "type": "string", - "nullable": true - }, - "geburtsort": { "type": "string", "nullable": true } - }, - "required": ["datum", "geburtsort"] - }, - "Person": { - "type": "object", - "properties": { - "id": { "type": "string" }, - "referrer": { "type": "string", "nullable": true }, - "mandant": { "type": "string" }, - "name": { "$ref": "#/components/schemas/PersonNameResponse" }, - "geburt": { - "nullable": true, - "allOf": [{ "$ref": "#/components/schemas/PersonBirthResponse" }] - }, - "stammorganisation": { "type": "string", "nullable": true }, - "geschlecht": { "type": "string", "nullable": true }, - "lokalisierung": { "type": "string", "nullable": true }, - "vertrauensstufe": { - "nullable": true, - "$ref": "#/components/schemas/Vertrauensstufe" - }, - "revision": { "type": "string" }, - "personalnummer": { "type": "string", "nullable": true } - }, - "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" }, - "emailAdress": { "type": "string" } - }, - "required": ["name", "typ"] - }, - "OrganisationResponse": { - "type": "object", - "properties": { - "id": { "type": "string" }, - "administriertVon": { "type": "string", "nullable": true }, - "kennung": { "type": "string", "nullable": true }, - "name": { "type": "string" }, - "namensergaenzung": { "type": "string", "nullable": true }, - "kuerzel": { "type": "string" }, - "typ": { "$ref": "#/components/schemas/OrganisationsTyp" }, - "traegerschaft": { "$ref": "#/components/schemas/TraegerschaftTyp" } - }, - "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", - "EMAIL_ADRESS_ON_ORGANISATION_TYP" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": ["i18nKey", "code"] - }, - "UpdateOrganisationBodyParams": { - "type": "object", - "properties": { - "administriertVon": { "type": "string" }, - "zugehoerigZu": { "type": "string" }, - "kennung": { - "type": "string", - "description": "Required, if `typ` is equal to `SCHULE`" - }, - "name": { "type": "string" }, - "namensergaenzung": { "type": "string" }, - "kuerzel": { "type": "string" }, - "typ": { "$ref": "#/components/schemas/OrganisationsTyp" }, - "traegerschaft": { "$ref": "#/components/schemas/TraegerschaftTyp" }, - "emailAdress": { "type": "string" } - }, - "required": ["name", "typ"] - }, - "OrganisationRootChildrenResponse": { - "type": "object", - "properties": { - "oeffentlich": { - "$ref": "#/components/schemas/OrganisationResponse" - }, - "ersatz": { "$ref": "#/components/schemas/OrganisationResponse" } - }, - "required": ["oeffentlich", "ersatz"] - }, - "ParentOrganisationsByIdsBodyParams": { - "type": "object", - "properties": { - "organisationIds": { - "description": "The ids of organizations", - "nullable": false, - "type": "array", - "items": { "type": "string" } - } - }, - "required": ["organisationIds"] - }, - "ParentOrganisationenResponse": { - "type": "object", - "properties": { - "parents": { - "type": "array", - "items": { "$ref": "#/components/schemas/OrganisationResponse" } - } - }, - "required": ["parents"] - }, - "RollenSystemRecht": { - "type": "string", - "enum": [ - "ROLLEN_VERWALTEN", - "PERSONEN_SOFORT_LOESCHEN", - "PERSONEN_VERWALTEN", - "SCHULEN_VERWALTEN", - "KLASSEN_VERWALTEN", - "SCHULTRAEGER_VERWALTEN", - "MIGRATION_DURCHFUEHREN", - "PERSON_SYNCHRONISIEREN", - "CRON_DURCHFUEHREN", - "IMPORT_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" } - }, - "administeredBySchulstrukturknotenName": { - "type": "string", - "nullable": true - }, - "administeredBySchulstrukturknotenKennung": { - "type": "string", - "nullable": true - }, - "version": { "type": "number" }, - "serviceProviders": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProviderIdNameResponse" - } - } - }, - "required": [ - "id", - "createdAt", - "updatedAt", - "name", - "administeredBySchulstrukturknoten", - "rollenart", - "merkmale", - "systemrechte", - "administeredBySchulstrukturknotenName", - "administeredBySchulstrukturknotenKennung", - "version", - "serviceProviders" - ] - }, - "CreateRolleBodyParams": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "administeredBySchulstrukturknoten": { "type": "string" }, - "rollenart": { "$ref": "#/components/schemas/RollenArt" }, - "merkmale": { - "type": "array", - "uniqueItems": true, - "items": { "$ref": "#/components/schemas/RollenMerkmal" } - }, - "systemrechte": { - "type": "array", - "uniqueItems": true, - "items": { "$ref": "#/components/schemas/RollenSystemRecht" } - } - }, - "required": [ - "name", - "administeredBySchulstrukturknoten", - "rollenart", - "merkmale", - "systemrechte" - ] - }, - "RolleResponse": { - "type": "object", - "properties": { - "id": { "type": "string" }, - "createdAt": { "format": "date-time", "type": "string" }, - "updatedAt": { "format": "date-time", "type": "string" }, - "name": { "type": "string" }, - "administeredBySchulstrukturknoten": { "type": "string" }, - "rollenart": { "$ref": "#/components/schemas/RollenArt" }, - "merkmale": { - "type": "array", - "uniqueItems": true, - "items": { "$ref": "#/components/schemas/RollenMerkmal" } - }, - "systemrechte": { - "type": "array", - "uniqueItems": true, - "items": { "$ref": "#/components/schemas/RollenSystemRecht" } - }, - "administeredBySchulstrukturknotenName": { - "type": "string", - "nullable": true - }, - "administeredBySchulstrukturknotenKennung": { - "type": "string", - "nullable": true - }, - "version": { "type": "number" } - }, - "required": [ - "id", - "createdAt", - "updatedAt", - "name", - "administeredBySchulstrukturknoten", - "rollenart", - "merkmale", - "systemrechte", - "administeredBySchulstrukturknotenName", - "administeredBySchulstrukturknotenKennung", - "version" - ] - }, - "AddSystemrechtBodyParams": { - "type": "object", - "properties": { - "systemRecht": { "$ref": "#/components/schemas/RollenSystemRecht" } - }, - "required": ["systemRecht"] - }, - "RolleServiceProviderResponse": { - "type": "object", - "properties": { - "serviceProviderIds": { - "type": "array", - "items": { "type": "string" } - } - }, - "required": ["serviceProviderIds"] - }, - "RolleServiceProviderBodyParams": { - "type": "object", - "properties": { - "serviceProviderIds": { - "description": "An array of ids for the service providers.", - "nullable": false, - "type": "array", - "items": { "type": "string" } - }, - "version": { - "type": "number", - "description": "The version for the rolle." - } - }, - "required": ["serviceProviderIds", "version"] - }, - "ServiceProviderTarget": { - "type": "string", - "enum": ["URL", "EMAIL", "SCHULPORTAL_ADMINISTRATION"] - }, - "ServiceProviderKategorie": { - "type": "string", - "enum": ["EMAIL", "UNTERRICHT", "VERWALTUNG", "HINWEISE", "ANGEBOTE"] - }, - "ServiceProviderResponse": { - "type": "object", - "properties": { - "id": { "type": "string" }, - "name": { "type": "string" }, - "target": { "$ref": "#/components/schemas/ServiceProviderTarget" }, - "url": { - "type": "string", - "description": "Can be undefined, if `target` is not equal to `URL`" - }, - "kategorie": { - "$ref": "#/components/schemas/ServiceProviderKategorie" - }, - "hasLogo": { "type": "boolean" }, - "requires2fa": { "type": "boolean" } - }, - "required": [ - "id", - "name", - "target", - "url", - "kategorie", - "hasLogo", - "requires2fa" - ] - }, - "UpdateRolleBodyParams": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "merkmale": { - "type": "array", - "uniqueItems": true, - "items": { "$ref": "#/components/schemas/RollenMerkmal" } - }, - "systemrechte": { - "type": "array", - "uniqueItems": true, - "items": { "$ref": "#/components/schemas/RollenSystemRecht" } - }, - "serviceProviderIds": { - "uniqueItems": true, - "type": "array", - "items": { "type": "string" } - }, - "version": { "type": "number" } - }, - "required": [ - "name", - "merkmale", - "systemrechte", - "serviceProviderIds", - "version" - ] - }, - "DbiamRolleError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "ROLLE_ERROR", - "ADD_SYSTEMRECHT_ERROR", - "ROLLE_HAT_PERSONENKONTEXTE_ERROR", - "UPDATE_MERKMALE_ERROR", - "ROLLENNAME_ENTHAELT_LEERZEICHEN", - "NEWER_VERSION_OF_ROLLE_AVAILABLE" - ] - }, - "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" - ] - }, - "DeleteRevisionBodyParams": { - "type": "object", - "properties": { - "revision": { - "type": "string", - "description": "The revision of a personenkontext.", - "nullable": false - } - }, - "required": ["revision"] - }, - "DBiamPersonenkontextResponse": { - "type": "object", - "properties": { - "personId": { "type": "string" }, - "organisationId": { "type": "string" }, - "rolleId": { "type": "string" }, - "befristung": { "type": "string" } - }, - "required": ["personId", "organisationId", "rolleId", "befristung"] - }, - "PersonenkontextMigrationRuntype": { - "type": "string", - "enum": ["ITSLEARNING", "STANDARD"] - }, - "DbiamPersonenkontextMigrationBodyParams": { - "type": "object", - "properties": { - "personId": { "type": "string" }, - "username": { "type": "string" }, - "organisationId": { "type": "string" }, - "rolleId": { "type": "string" }, - "befristung": { "format": "date-time", "type": "string" }, - "email": { "type": "string" }, - "migrationRunType": { - "$ref": "#/components/schemas/PersonenkontextMigrationRuntype" - } - }, - "required": [ - "personId", - "organisationId", - "rolleId", - "migrationRunType" - ] - }, - "DbiamPersonenkontextError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "PERSONENKONTEXT_SPECIFICATION_ERROR", - "NUR_LEHR_UND_LERN_AN_KLASSE", - "GLEICHE_ROLLE_AN_KLASSE_WIE_SCHULE", - "ORGANISATION_MATCHES_ROLLENART", - "PERSONENKONTEXT_ANLAGE_ERROR", - "ROLLE_NUR_AN_PASSENDE_ORGANISATION", - "PERSONALNUMMER_NICHT_EINDEUTIG" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": ["i18nKey", "code"] - }, - "PersonenkontextWorkflowResponse": { - "type": "object", - "properties": { - "organisations": { - "description": "List of available organisations.", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - }, - "rollen": { - "description": "List of available roles.", - "type": "array", - "items": { "$ref": "#/components/schemas/RolleResponse" } - }, - "selectedOrganisation": { - "type": "string", - "description": "Selected organisation.", - "nullable": true - }, - "selectedRolle": { - "type": "string", - "description": "Selected rolle.", - "nullable": true - }, - "canCommit": { - "type": "boolean", - "description": "Indicates whether the commit action can be performed." - } - }, - "required": [ - "organisations", - "rollen", - "selectedOrganisation", - "selectedRolle", - "canCommit" - ] - }, - "DbiamPersonenkontextBodyParams": { - "type": "object", - "properties": { - "personId": { "type": "string" }, - "organisationId": { "type": "string" }, - "rolleId": { "type": "string" }, - "befristung": { "format": "date-time", "type": "string" } - }, - "required": ["personId", "organisationId", "rolleId"] - }, - "DbiamUpdatePersonenkontexteBodyParams": { - "type": "object", - "properties": { - "lastModified": { - "format": "date-time", - "type": "string", - "nullable": true, - "description": "Date of the most recent changed personenkontext" - }, - "count": { - "type": "number", - "nullable": false, - "description": "The amount of personenkontexte" - }, - "personenkontexte": { - "nullable": false, - "type": "array", - "items": { - "$ref": "#/components/schemas/DbiamPersonenkontextBodyParams" - } - } - }, - "required": ["count", "personenkontexte"] - }, - "PersonenkontexteUpdateResponse": { - "type": "object", - "properties": { - "dBiamPersonenkontextResponses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DBiamPersonenkontextResponse" - } - } - }, - "required": ["dBiamPersonenkontextResponses"] - }, - "DbiamPersonenkontexteUpdateError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "PERSONENKONTEXTE_UPDATE_ERROR", - "PERSONENKONTEXT_NOT_FOUND", - "COUNT_MISMATCHING", - "NEWER_VERSION_OF_PERSONENKONTEXTE_AVAILABLE", - "INVALID_LAST_MODIFIED_VALUE", - "PERSON_ID_MISMATCH", - "PERSON_NOT_FOUND", - "INVALID_PERSONENKONTEXT_FOR_PERSON_WITH_ROLLENART_LERN", - " BEFRISTUNG_REQUIRED_FOR_PERSONENKONTEXT" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": ["i18nKey", "code"] - }, - "FindSchulstrukturknotenResponse": { - "type": "object", - "properties": { - "moeglicheSsks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganisationResponseLegacy" - } - }, - "total": { "type": "number" } - }, - "required": ["moeglicheSsks", "total"] - }, - "DbiamCreatePersonenkontextBodyParams": { - "type": "object", - "properties": { - "organisationId": { "type": "string" }, - "rolleId": { "type": "string" } - }, - "required": ["organisationId", "rolleId"] - }, - "DbiamCreatePersonWithPersonenkontexteBodyParams": { - "type": "object", - "properties": { - "familienname": { "type": "string" }, - "vorname": { "type": "string" }, - "personalnummer": { "type": "string" }, - "befristung": { "format": "date-time", "type": "string" }, - "createPersonenkontexte": { - "nullable": false, - "type": "array", - "items": { - "$ref": "#/components/schemas/DbiamCreatePersonenkontextBodyParams" - } - } - }, - "required": ["familienname", "vorname", "createPersonenkontexte"] - }, - "DBiamPersonResponse": { - "type": "object", - "properties": { - "person": { "$ref": "#/components/schemas/PersonResponse" }, - "dBiamPersonenkontextResponses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DBiamPersonenkontextResponse" - } - } - }, - "required": ["person", "dBiamPersonenkontextResponses"] - }, - "FindRollenResponse": { - "type": "object", - "properties": { - "moeglicheRollen": { - "type": "array", - "items": { "$ref": "#/components/schemas/RolleResponse" } - }, - "total": { "type": "number" } - }, - "required": ["moeglicheRollen", "total"] - }, - "TokenInitBodyParams": { - "type": "object", - "properties": { "personId": { "type": "string" } }, - "required": ["personId"] - }, - "TokenStateResponse": { - "type": "object", - "properties": { - "hasToken": { "type": "boolean" }, - "tokenKind": { "type": "string" }, - "serial": { "type": "string" } - }, - "required": ["hasToken", "tokenKind", "serial"] - }, - "AssignHardwareTokenBodyParams": { - "type": "object", - "properties": { - "serial": { "type": "string" }, - "otp": { "type": "string" }, - "referrer": { "type": "string" }, - "userId": { "type": "string" } - }, - "required": ["serial", "otp", "referrer", "userId"] - }, - "AssignHardwareTokenResponse": { - "type": "object", - "properties": { - "id": { "type": "number" }, - "jsonrpc": { "type": "string" }, - "time": { "type": "number" }, - "version": { "type": "string" }, - "versionnumber": { "type": "string" }, - "signature": { "type": "string" }, - "dialogText": { "type": "string" } - }, - "required": [ - "id", - "jsonrpc", - "time", - "version", - "versionnumber", - "signature", - "dialogText" - ] - }, - "TokenVerifyBodyParams": { - "type": "object", - "properties": { - "personId": { "type": "string" }, - "otp": { "type": "string" } - }, - "required": ["personId", "otp"] - }, - "TokenRequiredResponse": { - "type": "object", - "properties": { "required": { "type": "boolean" } }, - "required": ["required"] - }, - "DbiamPersonenkontextImportBodyParams": { - "type": "object", - "properties": { - "organisationId": { "type": "string" }, - "rolleId": { "type": "string" }, - "file": { "type": "string", "format": "binary" } - }, - "required": ["organisationId", "rolleId", "file"] - }, - "ImportDataItemResponse": { - "type": "object", - "properties": { - "nachname": { "type": "string" }, - "vorname": { "type": "string" }, - "klasse": { "type": "string", "nullable": true }, - "validationErrors": { "type": "array", "items": { "type": "string" } } - }, - "required": ["nachname", "vorname", "klasse", "validationErrors"] - }, - "ImportUploadResponse": { - "type": "object", - "properties": { - "importvorgangId": { - "type": "string", - "description": "The import transaction number. it will be needed to execute the import and download the result" - }, - "isValid": { - "type": "boolean", - "description": "It states if the import transaction contain errors." - }, - "totalImportDataItems": { - "type": "number", - "description": "The total number of data items in the CSV file." - }, - "totalInvalidImportDataItems": { - "type": "number", - "description": "The total number of data items in the CSV file that are invalid." - }, - "invalidImportDataItems": { - "type": "array", - "items": { "$ref": "#/components/schemas/ImportDataItemResponse" } - } - }, - "required": [ - "importvorgangId", - "isValid", - "totalImportDataItems", - "totalInvalidImportDataItems", - "invalidImportDataItems" - ] - }, - "ImportvorgangByIdBodyParams": { - "type": "object", - "properties": { - "importvorgangId": { - "type": "string", - "description": "The id of an import transaction", - "nullable": false - }, - "organisationId": { "type": "string" }, - "rolleId": { "type": "string" } - }, - "required": ["importvorgangId", "organisationId", "rolleId"] - }, - "DbiamImportError": { - "type": "object", - "properties": { - "i18nKey": { - "type": "string", - "enum": [ - "IMPORT_ERROR", - "CSV_PARSING_ERROR", - "CSV_FILE_EMPTY_ERROR", - "IMPORT_TEXT_FILE_CREATION_ERROR", - "IMPORT_NUR_LERN_AN_SCHULE_ERROR" - ] - }, - "code": { - "type": "number", - "description": "Corresponds to HTTP Status code like 200, 404, 500" - } - }, - "required": ["i18nKey", "code"] - } - } - } -} +{"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_createPersonMigration","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePersonMigrationBodyParams"}}}},"responses":{"201":{"description":"The person was successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonendatensatzResponse"}}}},"400":{"description":"A username was given. Creation with username is not supported."},"401":{"description":"Not authorized to create the person."},"403":{"description":"Insufficient permissions to create the person."},"404":{"description":"Insufficient permissions to create the person."},"500":{"description":"Internal server error while creating the person."}},"tags":["personen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]},"get":{"operationId":"PersonController_findPersons","parameters":[{"name":"offset","required":false,"in":"query","description":"The offset of the paginated list.","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"The requested limit for the page size.","schema":{"type":"number"}},{"name":"referrer","required":false,"in":"query","schema":{"nullable":true,"type":"string"}},{"name":"familienname","required":false,"in":"query","schema":{"nullable":true,"type":"string"}},{"name":"vorname","required":false,"in":"query","schema":{"nullable":true,"type":"string"}},{"name":"sichtfreigabe","required":false,"in":"query","schema":{"nullable":true,"default":"nein","enum":["ja","nein"],"type":"string"}},{"name":"organisationIDs","required":false,"in":"query","description":"List of Organisation ID used to filter for Persons.","schema":{"type":"array","items":{"type":"string"}}},{"name":"rolleIDs","required":false,"in":"query","description":"List of Role ID used to filter for Persons.","schema":{"type":"array","items":{"type":"string"}}},{"name":"suchFilter","required":false,"in":"query","description":"Search filter used to filter for Persons. It could be the vorname, familienname, referrer or the personalnummer.","schema":{"nullable":true,"type":"string"}},{"name":"sortOrder","required":false,"in":"query","description":"Order to sort by.","schema":{"nullable":true,"enum":["asc","desc"],"type":"string"}},{"name":"sortField","required":false,"in":"query","description":"Field to sort by.","schema":{"nullable":true,"enum":["familienname","vorname","personalnummer","referrer"],"type":"string"}}],"responses":{"200":{"description":"The persons were successfully returned. WARNING: This endpoint returns all persons as default when no paging parameters were set.","headers":{"X-Paging-Offset":{"description":"The offset of the first item from the list. List starts with index 0."},"X-Paging-Limit":{"description":"The maximum amount of items returned in one request."},"X-Paging-Total":{"description":"The total amount of items in the list."},"X-Paging-pageTotal":{"description":"The total amount of items in the paginated list."}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonendatensatzResponse"}}}}},"401":{"description":"Not authorized to get persons."},"403":{"description":"Insufficient permissions to get persons."},"500":{"description":"Internal server error while getting all persons."}},"tags":["personen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/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","summary":"","deprecated":true,"parameters":[{"name":"personId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The personenkontext was successfully created."},"400":{"description":"The personenkontext already exists."},"401":{"description":"Not authorized to create the personenkontext."},"403":{"description":"Not permitted to create the personenkontext."},"404":{"description":"Insufficient permissions to create personenkontext for person."},"500":{"description":"Internal server error while creating the personenkontext."}},"tags":["personen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]},"get":{"operationId":"PersonController_findPersonenkontexte","parameters":[{"name":"personId","required":true,"in":"path","description":"The id for the account.","schema":{"nullable":false,"type":"string"}},{"name":"offset","required":false,"in":"query","description":"The offset of the paginated list.","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"The requested limit for the page size.","schema":{"type":"number"}},{"name":"personId","required":false,"in":"query","schema":{"nullable":true,"type":"string"}},{"name":"referrer","required":false,"in":"query","schema":{"nullable":true,"type":"string"}},{"name":"personenstatus","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Personenstatus"}},{"name":"sichtfreigabe","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Sichtfreigabe"}}],"responses":{"200":{"description":"The personenkontexte were successfully pulled.","headers":{"X-Paging-Offset":{"description":"The offset of the first item from the list. List starts with index 0."},"X-Paging-Limit":{"description":"The maximum amount of items returned in one request."},"X-Paging-Total":{"description":"The total amount of items in the list."},"X-Paging-pageTotal":{"description":"The total amount of items in the paginated list."}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RawPagedResponse"},{"required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PersonenkontextResponse"}}}}]}}}},"401":{"description":"Not authorized to get personenkontexte."},"403":{"description":"Insufficient permissions to get personenkontexte."},"404":{"description":"No personenkontexte were found."},"500":{"description":"Internal server error while getting all personenkontexte."}},"tags":["personen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/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/{personId}/lock-user":{"put":{"operationId":"PersonController_lockPerson","parameters":[{"name":"personId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LockUserBodyParams"}}}},"responses":{"200":{"description":"User has been successfully updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonLockResponse"}}}},"403":{"description":"Insufficient permissions to perform operation."},"404":{"description":"The person was not found."},"500":{"description":"An internal server error occurred."},"502":{"description":"A downstream server returned an error."}},"tags":["personen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/personen/{personId}/sync":{"post":{"operationId":"PersonController_syncPerson","parameters":[{"name":"personId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"User will be synced."},"403":{"description":"Insufficient permissions to perform operation."},"404":{"description":"The person was not found."},"500":{"description":"An internal server error occurred."},"502":{"description":"A downstream server returned an error."}},"tags":["personen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/personen/{personId}/metadata":{"patch":{"operationId":"PersonController_updateMetadata","parameters":[{"name":"personId","required":true,"in":"path","description":"The id for the account.","schema":{"nullable":false,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonMetadataBodyParams"}}}},"responses":{"200":{"description":"The metadata for user was successfully updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonendatensatzResponse"}}}},"400":{"description":"Request has a wrong format.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamPersonError"}}}},"401":{"description":"Not authorized to update the metadata."},"403":{"description":"Not permitted to update the metadata."},"500":{"description":"Internal server error while updating the metadata for user."}},"tags":["personen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/personen-frontend":{"get":{"operationId":"PersonFrontendController_findPersons","parameters":[{"name":"offset","required":false,"in":"query","description":"The offset of the paginated list.","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"The requested limit for the page size.","schema":{"type":"number"}},{"name":"referrer","required":false,"in":"query","schema":{"nullable":true,"type":"string"}},{"name":"familienname","required":false,"in":"query","schema":{"nullable":true,"type":"string"}},{"name":"vorname","required":false,"in":"query","schema":{"nullable":true,"type":"string"}},{"name":"sichtfreigabe","required":false,"in":"query","schema":{"nullable":true,"default":"nein","enum":["ja","nein"],"type":"string"}},{"name":"organisationIDs","required":false,"in":"query","description":"List of Organisation ID used to filter for Persons.","schema":{"type":"array","items":{"type":"string"}}},{"name":"rolleIDs","required":false,"in":"query","description":"List of Role ID used to filter for Persons.","schema":{"type":"array","items":{"type":"string"}}},{"name":"suchFilter","required":false,"in":"query","description":"Search filter used to filter for Persons. It could be the vorname, familienname, referrer or the personalnummer.","schema":{"nullable":true,"type":"string"}},{"name":"sortOrder","required":false,"in":"query","description":"Order to sort by.","schema":{"nullable":true,"enum":["asc","desc"],"type":"string"}},{"name":"sortField","required":false,"in":"query","description":"Field to sort by.","schema":{"nullable":true,"enum":["familienname","vorname","personalnummer","referrer"],"type":"string"}}],"responses":{"200":{"description":"The persons were successfully returned. WARNING: This endpoint returns all persons as default when no paging parameters were set.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RawPagedResponse"},{"required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PersonendatensatzResponse"}}}}]}}}},"401":{"description":"Not authorized to get persons."},"403":{"description":"Insufficient permissions to get persons."},"500":{"description":"Internal server error while getting all persons."}},"tags":["personen-frontend"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/dbiam/personenuebersicht":{"post":{"operationId":"DBiamPersonenuebersichtController_findPersonenuebersichten","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonenuebersichtBodyParams"}}}},"responses":{"200":{"description":"The personenuebersichten were successfully returned.","headers":{"X-Paging-Offset":{"description":"The offset of the first item from the list. List starts with index 0."},"X-Paging-Limit":{"description":"The maximum amount of items returned in one request."},"X-Paging-Total":{"description":"The total amount of items in the list."},"X-Paging-pageTotal":{"description":"The total amount of items in the paginated list."}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RawPagedResponse"},{"required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DBiamPersonenuebersichtResponse"}}}}]}}}},"401":{"description":"Not authorized to get personenuebersichten."},"403":{"description":"Insufficient permission to get personenuebersichten."},"500":{"description":"Internal server error while getting personenuebersichten."}},"tags":["dbiam-personenuebersicht"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/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"}}},{"name":"organisationIds","required":false,"in":"query","description":"Liefert Organisationen mit den angegebenen IDs, selbst wenn andere Filterkriterien nicht zutreffen (ODER-verknüpft mit anderen Kriterien).","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"The organizations were successfully returned.","headers":{"X-Paging-Offset":{"description":"The offset of the first item from the list. List starts with index 0."},"X-Paging-Limit":{"description":"The maximum amount of items returned in one request."},"X-Paging-Total":{"description":"The total amount of items in the list."},"X-Paging-pageTotal":{"description":"The total amount of items in the paginated list."}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganisationResponse"}}}}},"401":{"description":"Not authorized to get organizations."},"403":{"description":"Insufficient permissions to get organizations."},"500":{"description":"Internal server error while getting all organizations."}},"tags":["organisationen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/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/parents-by-ids":{"post":{"operationId":"OrganisationController_getParentsByIds","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParentOrganisationsByIdsBodyParams"}}}},"responses":{"200":{"description":"The parent organizations were successfully pulled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParentOrganisationenResponse"}}}},"401":{"description":"Not authorized to get the organizations."},"403":{"description":"Insufficient permissions to get the organizations."},"500":{"description":"Internal server error while getting the organization."}},"tags":["organisationen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/organisationen/{organisationId}/administriert":{"get":{"operationId":"OrganisationController_getAdministrierteOrganisationen","parameters":[{"name":"organisationId","required":true,"in":"path","description":"The id of an organization","schema":{"nullable":false,"type":"string"}},{"name":"offset","required":false,"in":"query","description":"The offset of the paginated list.","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"The requested limit for the page size.","schema":{"type":"number"}},{"name":"searchFilter","required":false,"in":"query","schema":{"nullable":true,"type":"string"}}],"responses":{"200":{"description":"The organizations were successfully returned.","headers":{"X-Paging-Offset":{"description":"The offset of the first item from the list. List starts with index 0."},"X-Paging-Limit":{"description":"The maximum amount of items returned in one request."},"X-Paging-Total":{"description":"The total amount of items in the list."},"X-Paging-pageTotal":{"description":"The total amount of items in the paginated list."}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganisationResponse"}}}}},"401":{"description":"Not authorized to get organizations."},"403":{"description":"Insufficient permissions to get organizations."},"500":{"description":"Internal server error while getting all organizations."}},"tags":["organisationen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]},"post":{"operationId":"OrganisationController_addAdministrierteOrganisation","parameters":[{"name":"organisationId","required":true,"in":"path","description":"The id of an organization","schema":{"nullable":false,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganisationByIdBodyParams"}}}},"responses":{"201":{"description":"The organisation was successfully updated."},"400":{"description":"The organisation could not be modified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamOrganisationError"}}}},"401":{"description":"Not authorized to modify the organisation."},"403":{"description":"Not permitted to modify the organisation."},"500":{"description":"Internal server error while modifying the organisation."}},"tags":["organisationen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/organisationen/{organisationId}/zugehoerig":{"get":{"operationId":"OrganisationController_getZugehoerigeOrganisationen","parameters":[{"name":"organisationId","required":true,"in":"path","description":"The id of an organization","schema":{"nullable":false,"type":"string"}}],"responses":{"200":{"description":"The organizations were successfully returned.","headers":{"X-Paging-Offset":{"description":"The offset of the first item from the list. List starts with index 0."},"X-Paging-Limit":{"description":"The maximum amount of items returned in one request."},"X-Paging-Total":{"description":"The total amount of items in the list."},"X-Paging-pageTotal":{"description":"The total amount of items in the paginated list."}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganisationResponse"}}}}},"401":{"description":"Not authorized to get organizations."},"403":{"description":"Insufficient permissions to get organizations."},"500":{"description":"Internal server error while getting all organizations."}},"tags":["organisationen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]},"post":{"operationId":"OrganisationController_addZugehoerigeOrganisation","parameters":[{"name":"organisationId","required":true,"in":"path","description":"The id of an organization","schema":{"nullable":false,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganisationByIdBodyParams"}}}},"responses":{"201":{"description":"The organisation was successfully updated."},"400":{"description":"The organisation could not be modified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamOrganisationError"}}}},"401":{"description":"Not authorized to modify the organisation."},"403":{"description":"Not permitted to modify the organisation."},"500":{"description":"Internal server error while modifying the organisation."}},"tags":["organisationen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/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."},"X-Paging-pageTotal":{"description":"The total amount of items in the paginated list."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganisationResponseLegacy"}}}},"400":{"description":"The organisation could not be modified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamOrganisationError"}}}},"401":{"description":"Not authorized to modify the organisation."},"403":{"description":"Not permitted to modify the organisation."},"500":{"description":"Internal server error while modifying the organisation."}},"tags":["organisationen"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/rolle":{"get":{"operationId":"RolleController_findRollen","summary":"","description":"List all rollen.","parameters":[{"name":"offset","required":false,"in":"query","description":"The offset of the paginated list.","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"The requested limit for the page size.","schema":{"type":"number"}},{"name":"searchStr","required":false,"in":"query","description":"The name for the role.","schema":{"nullable":false,"type":"string"}}],"responses":{"200":{"description":"The rollen were successfully returned","headers":{"X-Paging-Offset":{"description":"The offset of the first item from the list. List starts with index 0."},"X-Paging-Limit":{"description":"The maximum amount of items returned in one request."},"X-Paging-Total":{"description":"The total amount of items in the list."},"X-Paging-pageTotal":{"description":"The total amount of items in the paginated list."}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RolleWithServiceProvidersResponse"}}}}},"401":{"description":"Not authorized to get rollen."},"403":{"description":"Insufficient permissions to get rollen."},"500":{"description":"Internal server error while getting all rollen."}},"tags":["rolle"],"security":[{"oauth2":["openid"]},{"bearer":[]}]},"post":{"operationId":"RolleController_createRolle","summary":"","description":"Create a new rolle.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRolleBodyParams"}}}},"responses":{"201":{"description":"The rolle was successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RolleResponse"}}}},"400":{"description":"The input was not valid."},"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":[]}]},"put":{"operationId":"RolleController_updateServiceProvidersById","summary":"","description":"Add a service-provider to a rolle by id.","parameters":[{"name":"rolleId","required":true,"in":"path","description":"The id for the rolle.","schema":{"nullable":false,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RolleServiceProviderBodyParams"}}}},"responses":{"200":{"description":"Adding service-provider finished successfully.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServiceProviderResponse"}}}}},"400":{"description":"The service-provider is already attached to rolle."},"401":{"description":"Not authorized to retrieve service-providers for rolle."},"404":{"description":"The rolle or the service-provider to add does not exist."},"500":{"description":"Internal server error, the service-provider may could not be found after attaching to rolle."}},"tags":["rolle"],"security":[{"oauth2":["openid"]},{"bearer":[]}]},"delete":{"operationId":"RolleController_removeServiceProviderById","summary":"","description":"Remove a service-provider from a rolle by id.","parameters":[{"name":"rolleId","required":true,"in":"path","description":"The id for the rolle.","schema":{"nullable":false,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RolleServiceProviderBodyParams"}}}},"responses":{"200":{"description":"Removing service-provider finished successfully."},"401":{"description":"Not authorized to retrieve service-providers for rolle."},"404":{"description":"The rolle or the service-provider that should be removed does not exist."}},"tags":["rolle"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/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","summary":"","deprecated":true,"parameters":[{"name":"personenkontextId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The personenkontext was successfully updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonenkontextResponse"}}}},"400":{"description":"Request has wrong format."},"401":{"description":"Request is not authorized."},"403":{"description":"Insufficient permissions to perform operation."},"404":{"description":"The personenkontext was not found."},"500":{"description":"An internal server error occurred."}},"tags":["personenkontexte"],"security":[{"oauth2":["openid"]},{"bearer":[]}]},"delete":{"operationId":"PersonenkontextController_deletePersonenkontextById","parameters":[{"name":"personenkontextId","required":true,"in":"path","description":"The id for the personenkontext.","schema":{"nullable":false,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRevisionBodyParams"}}}},"responses":{"204":{"description":"The personenkontext was successfully deleted."},"400":{"description":"Request has wrong format."},"401":{"description":"Request is not authorized."},"403":{"description":"Insufficient permissions to perform operation."},"404":{"description":"The personenkontext was not found."},"500":{"description":"An internal server error occurred."}},"tags":["personenkontexte"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/personenkontexte":{"get":{"operationId":"PersonenkontextController_findPersonenkontexte","parameters":[{"name":"offset","required":false,"in":"query","description":"The offset of the paginated list.","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"The requested limit for the page size.","schema":{"type":"number"}},{"name":"personId","required":false,"in":"query","schema":{"nullable":true,"type":"string"}},{"name":"referrer","required":false,"in":"query","schema":{"nullable":true,"type":"string"}},{"name":"personenstatus","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Personenstatus"}},{"name":"sichtfreigabe","required":false,"in":"query","schema":{"$ref":"#/components/schemas/Sichtfreigabe"}}],"responses":{"200":{"description":"The personenkontexte were successfully returned.","headers":{"X-Paging-Offset":{"description":"The offset of the first item from the list. List starts with index 0."},"X-Paging-Limit":{"description":"The maximum amount of items returned in one request."},"X-Paging-Total":{"description":"The total amount of items in the list."},"X-Paging-pageTotal":{"description":"The total amount of items in the paginated list."}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonenkontextdatensatzResponse"}}}}},"400":{"description":"Request has wrong format."},"401":{"description":"Request is not authorized."},"403":{"description":"Insufficient permissions to perform operation."},"404":{"description":"The personenkontexte were not found."},"500":{"description":"An internal server error occurred."}},"tags":["personenkontexte"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/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_createPersonenkontextMigration","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamPersonenkontextMigrationBodyParams"}}}},"responses":{"201":{"description":"Personenkontext was successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DBiamPersonenkontextResponse"}}}},"400":{"description":"The personenkontext could not be created, may due to unsatisfied specifications.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamPersonenkontextError"}}}},"401":{"description":"Not authorized to create personenkontext."},"403":{"description":"Insufficient permission to create personenkontext."},"500":{"description":"Internal server error while creating personenkontext."}},"tags":["dbiam-personenkontexte"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/personenkontext-workflow/step":{"get":{"operationId":"DbiamPersonenkontextWorkflowController_processStep","parameters":[{"name":"organisationId","required":false,"in":"query","description":"ID of the organisation to filter the rollen later","schema":{"nullable":true,"type":"string"}},{"name":"rolleId","required":false,"in":"query","description":"ID of the rolle.","schema":{"nullable":true,"type":"string"}},{"name":"rolleName","required":false,"in":"query","description":"Rolle name used to filter for rollen in personenkontext.","schema":{"nullable":true,"type":"string"}},{"name":"organisationName","required":false,"in":"query","description":"Organisation/SSK name used to filter for schulstrukturknoten in personenkontext.","schema":{"nullable":true,"type":"string"}},{"name":"limit","required":false,"in":"query","description":"The limit of items for the request.","schema":{"nullable":false,"type":"number"}}],"responses":{"200":{"description":"Initialize or process data from the person creation form.\n Valid combinations:\n - Both organisationId and rolleId are undefined: Fetch all possible organisations.\n - organisationId is provided, but rolleId is undefined: Fetch Rollen for the given organisation.\n - Both organisationId and rolleId are provided: Check if the Rolle can be committed for the organisation.\n Note: Providing rolleId without organisationId is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonenkontextWorkflowResponse"}}}},"401":{"description":"Not authorized to get available data for personenkontext."},"403":{"description":"Insufficient permission to get data for personenkontext."},"500":{"description":"Internal server error while getting data for personenkontext."}},"tags":["personenkontext"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/personenkontext-workflow/{personId}":{"put":{"operationId":"DbiamPersonenkontextWorkflowController_commit","parameters":[{"name":"personId","required":true,"in":"path","description":"The ID for the person.","schema":{"type":"string"}},{"name":"personalnummer","required":false,"in":"query","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamUpdatePersonenkontexteBodyParams"}}}},"responses":{"200":{"description":"Add or remove personenkontexte as one operation. Returns the Personenkontexte existing after update.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonenkontexteUpdateResponse"}}}},"400":{"description":"The personenkontexte could not be updated, may due to unsatisfied specifications.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamPersonenkontexteUpdateError"}}}},"401":{"description":"Not authorized to update personenkontexte."},"403":{"description":"Insufficient permission to update personenkontexte."},"409":{"description":"Changes are conflicting with current state of personenkontexte."},"500":{"description":"Internal server error while updating personenkontexte."}},"tags":["personenkontext"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/personenkontext-workflow/schulstrukturknoten":{"get":{"operationId":"DbiamPersonenkontextWorkflowController_findSchulstrukturknoten","parameters":[{"name":"rolleId","required":true,"in":"query","description":"RolleId used to filter for schulstrukturknoten in personenkontext.","schema":{"nullable":false,"type":"string"}},{"name":"sskName","required":false,"in":"query","description":"Organisation/SSK name used to filter for schulstrukturknoten in personenkontext.","schema":{"nullable":true,"type":"string"}},{"name":"limit","required":false,"in":"query","description":"The limit of items for the request.","schema":{"nullable":false,"type":"number"}}],"responses":{"200":{"description":"The schulstrukturknoten for a personenkontext were successfully returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindSchulstrukturknotenResponse"}}}},"401":{"description":"Not authorized to get available schulstrukturknoten for personenkontexte."},"403":{"description":"Insufficient permission to get schulstrukturknoten for personenkontext."},"500":{"description":"Internal server error while getting schulstrukturknoten for personenkontexte."}},"tags":["personenkontext"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/personenkontext-workflow":{"post":{"operationId":"DbiamPersonenkontextWorkflowController_createPersonWithPersonenkontexte","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamCreatePersonWithPersonenkontexteBodyParams"}}}},"responses":{"201":{"description":"Person with Personenkontext was successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DBiamPersonResponse"}}}},"400":{"description":"The person and the personenkontext could not be created, may due to unsatisfied specifications.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamPersonenkontextError"}}}},"401":{"description":"Not authorized to create person with personenkontext."},"403":{"description":"Insufficient permission to create person with personenkontext."},"500":{"description":"Internal server error while creating person with personenkontext."}},"tags":["personenkontext"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/person-administration/rollen":{"get":{"operationId":"PersonAdministrationController_findRollen","parameters":[{"name":"rolleName","required":false,"in":"query","description":"Rolle name used to filter for rollen in personenkontext.","schema":{"nullable":false,"type":"string"}},{"name":"limit","required":false,"in":"query","description":"The limit of items for the request.","schema":{"nullable":false,"type":"number"}}],"responses":{"200":{"description":"The rollen for the logged-in user were successfully returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindRollenResponse"}}}},"401":{"description":"Not authorized to get available rollen for the logged-in user."},"403":{"description":"Insufficient permission to get rollen for the logged-in user."},"500":{"description":"Internal server error while getting rollen for the logged-in user."}},"tags":["person-administration"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/2fa-token/init":{"post":{"operationId":"PrivacyIdeaAdministrationController_initializeSoftwareToken","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenInitBodyParams"}}}},"responses":{"201":{"description":"The token was successfully created.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"A username was not given or not found."},"401":{"description":"Not authorized to create token."},"403":{"description":"Insufficient permissions to create token."},"404":{"description":"Insufficient permissions to create token."},"500":{"description":"Internal server error while creating a token."}},"tags":["2FA"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/2fa-token/state":{"get":{"operationId":"PrivacyIdeaAdministrationController_getTwoAuthState","parameters":[{"name":"personId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"201":{"description":"The token state was successfully returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenStateResponse"}}}},"400":{"description":"A username was not given or not found."},"401":{"description":"Not authorized to get token state."},"403":{"description":"Insufficient permissions to get token state."},"404":{"description":"Insufficient permissions to get token state."},"500":{"description":"Internal server error while retrieving token state."}},"tags":["2FA"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/2fa-token/reset":{"put":{"operationId":"PrivacyIdeaAdministrationController_resetToken","parameters":[{"name":"personId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"201":{"description":"The token was successfully reset.","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"A username was not given or not found."},"401":{"description":"Not authorized to reset token."},"403":{"description":"Insufficient permissions to reset token."},"404":{"description":"Insufficient permissions to reset token."},"500":{"description":"Internal server error while reseting a token."}},"tags":["2FA"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/2fa-token/assign/hardwareToken":{"post":{"operationId":"PrivacyIdeaAdministrationController_assignHardwareToken","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignHardwareTokenBodyParams"}}}},"responses":{"201":{"description":"The hardware token was successfully assigned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignHardwareTokenResponse"}}}},"400":{"description":"Not found."},"401":{"description":"Not authorized to assign hardware token."},"403":{"description":"Insufficient permissions to reset token."},"404":{"description":"Insufficient permissions to assign hardware token."},"500":{"description":"Internal server error while assigning a hardware token."}},"tags":["2FA"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/2fa-token/verify":{"post":{"operationId":"PrivacyIdeaAdministrationController_verifyToken","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenVerifyBodyParams"}}}},"responses":{"201":{"description":"The token was successfully verified."},"400":{"description":"A username was not given or not found."},"401":{"description":"Not authorized to verify token."},"403":{"description":"Insufficient permissions to verify token."},"404":{"description":"Insufficient permissions to verify token."},"500":{"description":"Internal server error while verifying a token."}},"tags":["2FA"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/2fa-token/required":{"get":{"operationId":"PrivacyIdeaAdministrationController_requiresTwoFactorAuthentication","parameters":[{"name":"personId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"The requirement was successfully returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRequiredResponse"}}}},"400":{"description":"A username was not given or not found."},"401":{"description":"Not authorized to get requirement information."},"403":{"description":"Insufficient permissions to get requirement information."},"404":{"description":"Insufficient permissions to get requirement information."},"500":{"description":"Internal server error while getting requirement information."}},"tags":["2FA"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/cron/kopers-lock":{"put":{"operationId":"CronController_koPersUserLock","parameters":[],"responses":{"201":{"description":"User were successfully locked.","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"User are not given or not found"},"401":{"description":"Not authorized to lock user."},"403":{"description":"Insufficient permissions to lock user."},"404":{"description":"Insufficient permissions to lock user."},"500":{"description":"Internal server error while trying to lock user."}},"tags":["cron"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/cron/kontext-expired":{"put":{"operationId":"CronController_removePersonenKontexteWithExpiredBefristungFromUsers","parameters":[],"responses":{"201":{"description":"Personenkontexte were successfully removed from users.","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Personenkontexte are not given or not found."},"401":{"description":"Not authorized to remove personenkontexte from users."},"403":{"description":"Insufficient permissions to remove personenkontexte from users."},"404":{"description":"Insufficient permissions to remove personenkontexte from users."},"500":{"description":"Internal server error while trying to remove personenkontexte from users."}},"tags":["cron"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/cron/person-without-org":{"put":{"operationId":"CronController_personWithoutOrgDelete","parameters":[],"responses":{"201":{"description":"User were successfully removed.","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"User are not given or not found"},"401":{"description":"Not authorized to remove user."},"403":{"description":"Insufficient permissions to delete user."},"404":{"description":"Insufficient permissions to delete user."},"500":{"description":"Internal server error while trying to remove user."}},"tags":["cron"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/import/upload":{"post":{"operationId":"ImportController_uploadFile","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/DbiamPersonenkontextImportBodyParams"}}}},"responses":{"200":{"description":"Returns an import upload response object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportUploadResponse"}}}},"400":{"description":"The CSV file was not valid."},"401":{"description":"Not authorized to import data with a CSV file."},"403":{"description":"Insufficient permissions to import data with a CSV file."},"500":{"description":"Internal server error while importing data with a CSV file."}},"tags":["import"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/import/execute":{"post":{"operationId":"ImportController_executeImport","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportvorgangByIdBodyParams"}}}},"responses":{"200":{"description":"Import transaction was executed successfully. The text file can be downloaded","content":{"text/plain":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Something went wrong with the found import transaction.","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/DbiamImportError"}}}},"401":{"description":"Not authorized to execute the import transaction."},"403":{"description":"Insufficient permissions to execute the import transaction."},"404":{"description":"The import transaction does not exist."},"500":{"description":"Internal server error while executing the import transaction."}},"tags":["import"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}},"/api/import/{importvorgangId}":{"delete":{"operationId":"ImportController_deleteImportTransaction","summary":"","description":"Delete a role by id.","parameters":[{"name":"importvorgangId","required":true,"in":"path","description":"The id of an import transaction","schema":{"nullable":false,"type":"string"}}],"responses":{"204":{"description":"Import transaction was deleted successfully."},"400":{"description":"Something went wrong with the found import transaction.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DbiamImportError"}}}},"401":{"description":"Not authorized to delete the import transaction."},"404":{"description":"The import transaction that should be deleted does not exist."}},"tags":["import"],"security":[{"oauth2":["openid"]},{"bearer":[]}]}}},"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":"string","nullable":true},"password_updated_at":{"type":"string","nullable":true},"personenkontexte":{"type":"array","items":{"$ref":"#/components/schemas/PersonenkontextRolleFieldsResponse"}},"acr":{"type":"string","nullable":false}},"required":["sub","personId","name","given_name","family_name","middle_name","nickname","preferred_username","profile","picture","website","email","email_verified","gender","birthdate","zoneinfo","locale","phone_number","updated_at","password_updated_at","personenkontexte","acr"]},"CreatePersonMigrationBodyParams":{"type":"object","properties":{"personId":{"type":"string"},"familienname":{"type":"string"},"vorname":{"type":"string"},"hashedPassword":{"type":"string"},"username":{"type":"string"},"personalnummer":{"type":"string"}},"required":["personId","familienname","vorname"]},"PersonNameParams":{"type":"object","properties":{"familienname":{"type":"string"},"vorname":{"type":"string"},"initialenfamilienname":{"type":"string"},"initialenvorname":{"type":"string"},"rufname":{"type":"string"},"titel":{"type":"string"},"anrede":{"type":"array","items":{"type":"string"}},"namenssuffix":{"type":"array","items":{"type":"string"}},"namenspraefix":{"type":"array","items":{"type":"string"}},"sortierindex":{"type":"string"}},"required":["familienname","vorname"]},"PersonBirthParams":{"type":"object","properties":{"datum":{"format":"date-time","type":"string"},"geburtsort":{"type":"string"}}},"Vertrauensstufe":{"type":"string","enum":["KEIN","UNBE","TEIL","VOLL"]},"UserLockParams":{"type":"object","properties":{"personId":{"type":"string","nullable":true},"locked_by":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"locked_until":{"type":"string","nullable":true},"lock_occasion":{"type":"string","nullable":true}},"required":["personId","locked_by","created_at","locked_until","lock_occasion"]},"EmailAddressStatus":{"type":"string","enum":["ENABLED","DISABLED","REQUESTED","FAILED"]},"PersonEmailResponse":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/EmailAddressStatus"},"address":{"type":"string"}},"required":["status","address"]},"PersonResponse":{"type":"object","properties":{"id":{"type":"string"},"referrer":{"type":"string","nullable":true},"mandant":{"type":"string"},"name":{"$ref":"#/components/schemas/PersonNameParams"},"geburt":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/PersonBirthParams"}]},"stammorganisation":{"type":"string","nullable":true},"geschlecht":{"type":"string","nullable":true},"lokalisierung":{"type":"string","nullable":true},"vertrauensstufe":{"nullable":true,"$ref":"#/components/schemas/Vertrauensstufe"},"revision":{"type":"string"},"startpasswort":{"type":"string","description":"Initiales Benutzerpasswort, muss nach der ersten Anmeldung geändert werden"},"personalnummer":{"type":"string","nullable":true},"isLocked":{"type":"boolean","nullable":true},"userLock":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/UserLockParams"}},"lastModified":{"format":"date-time","type":"string","description":"Date of the most recent changes for the person"},"email":{"nullable":true,"description":"Contains status and address. Returns email-address verified by OX (enabled) if available, otherwise returns most recently updated one (no prioritized status)","allOf":[{"$ref":"#/components/schemas/PersonEmailResponse"}]}},"required":["id","referrer","mandant","name","geburt","stammorganisation","geschlecht","lokalisierung","vertrauensstufe","revision","startpasswort","personalnummer","isLocked","userLock","lastModified","email"]},"PersonendatensatzResponse":{"type":"object","properties":{"person":{"$ref":"#/components/schemas/PersonResponse"}},"required":["person"]},"RawPagedResponse":{"type":"object","properties":{"total":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"items":{"type":"array","items":{"type":"string"}}},"required":["total","offset","limit","items"]},"CreatedPersonenkontextOrganisation":{"type":"object","properties":{}},"LoeschungResponse":{"type":"object","properties":{"zeitpunkt":{"format":"date-time","type":"string"}},"required":["zeitpunkt"]},"PersonenkontextResponse":{"type":"object","properties":{"id":{"type":"string"},"referrer":{"type":"string","nullable":true},"mandant":{"type":"string"},"organisation":{"$ref":"#/components/schemas/CreatedPersonenkontextOrganisation"},"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"]},"Personenstatus":{"type":"string","enum":["AKTIV"]},"Sichtfreigabe":{"type":"string","enum":["ja","nein"]},"Geschlecht":{"type":"string","enum":["m","w","d","x"]},"UpdatePersonBodyParams":{"type":"object","properties":{"referrer":{"type":"string"},"stammorganisation":{"type":"string"},"name":{"$ref":"#/components/schemas/PersonNameParams"},"geburt":{"$ref":"#/components/schemas/PersonBirthParams"},"geschlecht":{"$ref":"#/components/schemas/Geschlecht"},"lokalisierung":{"type":"string"},"vertrauensstufe":{"$ref":"#/components/schemas/Vertrauensstufe"},"auskunftssperre":{"type":"boolean"},"revision":{"type":"string"}},"required":["name","revision"]},"LockUserBodyParams":{"type":"object","properties":{"lock":{"type":"boolean","nullable":false},"locked_by":{"type":"string","nullable":false},"locked_until":{"format":"date-time","type":"string","description":"Required if Befristung is set"}},"required":["lock","locked_by"]},"PersonLockResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"PersonMetadataBodyParams":{"type":"object","properties":{"familienname":{"type":"string"},"vorname":{"type":"string"},"personalnummer":{"type":"string"},"lastModified":{"format":"date-time","type":"string","description":"Date of the most recent changed Personalnummer"},"revision":{"type":"string"}},"required":["familienname","vorname","lastModified","revision"]},"DbiamPersonError":{"type":"object","properties":{"i18nKey":{"type":"string","enum":["PERSON_ERROR","VORNAME_ENTHAELT_LEERZEICHEN","FAMILIENNAME_ENTHAELT_LEERZEICHEN","PERSON_NOT_FOUND","DOWNSTREAM_UNREACHABLE","PERSONALNUMMER_REQUIRED","NEWER_VERSION_OF_PERSON_AVAILABLE","PERSONALNUMMER_NICHT_EINDEUTIG"]},"code":{"type":"number","description":"Corresponds to HTTP Status code like 200, 404, 500"}},"required":["i18nKey","code"]},"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"},"befristung":{"format":"date-time","type":"string"},"merkmale":{"nullable":true,"$ref":"#/components/schemas/RollenMerkmal"}},"required":["sskId","rolleId","sskName","sskDstNr","rolle","administriertVon","typ","editable","befristung","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"]},"PersonenuebersichtBodyParams":{"type":"object","properties":{"personIds":{"description":"An array of IDs for the persons.","type":"array","items":{"type":"string"}}},"required":["personIds"]},"PersonNameResponse":{"type":"object","properties":{"familiennamen":{"type":"string"},"vorname":{"type":"string"},"initialenfamilienname":{"type":"string","nullable":true},"initialenvorname":{"type":"string","nullable":true},"rufname":{"type":"string","nullable":true},"titel":{"type":"string","nullable":true},"anrede":{"nullable":true,"type":"array","items":{"type":"string"}},"namenspraefix":{"nullable":true,"type":"array","items":{"type":"string"}},"namenssuffix":{"nullable":true,"type":"array","items":{"type":"string"}},"sortierindex":{"type":"string","nullable":true}},"required":["familiennamen","vorname","initialenfamilienname","initialenvorname","rufname","titel","anrede","namenspraefix","namenssuffix","sortierindex"]},"PersonBirthResponse":{"type":"object","properties":{"datum":{"format":"date-time","type":"string","nullable":true},"geburtsort":{"type":"string","nullable":true}},"required":["datum","geburtsort"]},"Person":{"type":"object","properties":{"id":{"type":"string"},"referrer":{"type":"string","nullable":true},"mandant":{"type":"string"},"name":{"$ref":"#/components/schemas/PersonNameResponse"},"geburt":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/PersonBirthResponse"}]},"stammorganisation":{"type":"string","nullable":true},"geschlecht":{"type":"string","nullable":true},"lokalisierung":{"type":"string","nullable":true},"vertrauensstufe":{"nullable":true,"$ref":"#/components/schemas/Vertrauensstufe"},"revision":{"type":"string"},"personalnummer":{"type":"string","nullable":true}},"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"}},"email":{"nullable":true,"description":"Contains status and address. Returns email-address verified by OX (enabled) if available, otherwise returns most recently updated one (no prioritized status)","allOf":[{"$ref":"#/components/schemas/PersonEmailResponse"}]}},"required":["pid","person","personenkontexte","gruppen","email"]},"TraegerschaftTyp":{"type":"string","enum":["01","02","03","04","05","06"]},"CreateOrganisationBodyParams":{"type":"object","properties":{"administriertVon":{"type":"string"},"zugehoerigZu":{"type":"string"},"kennung":{"type":"string","description":"Required, if `typ` is equal to `SCHULE`"},"name":{"type":"string"},"namensergaenzung":{"type":"string"},"kuerzel":{"type":"string"},"typ":{"$ref":"#/components/schemas/OrganisationsTyp"},"traegerschaft":{"$ref":"#/components/schemas/TraegerschaftTyp"},"emailAdress":{"type":"string"}},"required":["name","typ"]},"OrganisationResponse":{"type":"object","properties":{"id":{"type":"string"},"administriertVon":{"type":"string","nullable":true},"kennung":{"type":"string","nullable":true},"name":{"type":"string"},"namensergaenzung":{"type":"string","nullable":true},"kuerzel":{"type":"string"},"typ":{"$ref":"#/components/schemas/OrganisationsTyp"},"traegerschaft":{"$ref":"#/components/schemas/TraegerschaftTyp"},"version":{"type":"number"}},"required":["id","administriertVon","kennung","name","namensergaenzung","kuerzel","typ","traegerschaft","version"]},"DbiamOrganisationError":{"type":"object","properties":{"i18nKey":{"type":"string","enum":["ORGANISATION_SPECIFICATION_ERROR","KENNUNG_REQUIRED_FOR_SCHULE","NAME_REQUIRED_FOR_SCHULE","SCHULE_KENNUNG_EINDEUTIG","SCHULE_UNTER_TRAEGER","TRAEGER_IN_TRAEGER","NUR_KLASSE_UNTER_SCHULE","ZYKLUS_IN_ORGANISATION","ROOT_ORGANISATION_IMMUTABLE","KLASSE_NUR_VON_SCHULE_ADMINISTRIERT","KLASSENNAME_AN_SCHULE_EINDEUTIG","ORGANISATION_IST_BEREITS_ZUGEWIESEN_ERROR","NAME_REQUIRED_FOR_KLASSE","NAME_ENTHAELT_LEERZEICHEN","KENNUNG_ENTHAELT_LEERZEICHEN","EMAIL_ADRESS_ON_ORGANISATION_TYP","NEWER_VERSION_ORGANISATION"]},"code":{"type":"number","description":"Corresponds to HTTP Status code like 200, 404, 500"}},"required":["i18nKey","code"]},"UpdateOrganisationBodyParams":{"type":"object","properties":{"administriertVon":{"type":"string"},"zugehoerigZu":{"type":"string"},"kennung":{"type":"string","description":"Required, if `typ` is equal to `SCHULE`"},"name":{"type":"string"},"namensergaenzung":{"type":"string"},"kuerzel":{"type":"string"},"typ":{"$ref":"#/components/schemas/OrganisationsTyp"},"traegerschaft":{"$ref":"#/components/schemas/TraegerschaftTyp"},"emailAdress":{"type":"string"}},"required":["name","typ"]},"OrganisationRootChildrenResponse":{"type":"object","properties":{"oeffentlich":{"$ref":"#/components/schemas/OrganisationResponse"},"ersatz":{"$ref":"#/components/schemas/OrganisationResponse"}},"required":["oeffentlich","ersatz"]},"ParentOrganisationsByIdsBodyParams":{"type":"object","properties":{"organisationIds":{"description":"The ids of organizations","nullable":false,"type":"array","items":{"type":"string"}}},"required":["organisationIds"]},"ParentOrganisationenResponse":{"type":"object","properties":{"parents":{"type":"array","items":{"$ref":"#/components/schemas/OrganisationResponse"}}},"required":["parents"]},"RollenSystemRecht":{"type":"string","enum":["ROLLEN_VERWALTEN","PERSONEN_SOFORT_LOESCHEN","PERSONEN_VERWALTEN","SCHULEN_VERWALTEN","KLASSEN_VERWALTEN","SCHULTRAEGER_VERWALTEN","MIGRATION_DURCHFUEHREN","PERSON_SYNCHRONISIEREN","CRON_DURCHFUEHREN","PERSONEN_ANLEGEN","IMPORT_DURCHFUEHREN"]},"OrganisationByIdBodyParams":{"type":"object","properties":{"organisationId":{"type":"string","description":"The id of an organization","nullable":false}},"required":["organisationId"]},"OrganisationByNameBodyParams":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"number","description":"The version for the organisation."}},"required":["name","version"]},"OrganisationResponseLegacy":{"type":"object","properties":{"id":{"type":"string"},"administriertVon":{"type":"string","nullable":true},"kennung":{"type":"string","nullable":true},"name":{"type":"string"},"namensergaenzung":{"type":"string","nullable":true},"kuerzel":{"type":"string"},"typ":{"$ref":"#/components/schemas/OrganisationsTyp"}},"required":["id","administriertVon","kennung","name","namensergaenzung","kuerzel","typ"]},"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"}},"administeredBySchulstrukturknotenName":{"type":"string","nullable":true},"administeredBySchulstrukturknotenKennung":{"type":"string","nullable":true},"version":{"type":"number"},"serviceProviders":{"type":"array","items":{"$ref":"#/components/schemas/ServiceProviderIdNameResponse"}}},"required":["id","createdAt","updatedAt","name","administeredBySchulstrukturknoten","rollenart","merkmale","systemrechte","administeredBySchulstrukturknotenName","administeredBySchulstrukturknotenKennung","version","serviceProviders"]},"CreateRolleBodyParams":{"type":"object","properties":{"name":{"type":"string"},"administeredBySchulstrukturknoten":{"type":"string"},"rollenart":{"$ref":"#/components/schemas/RollenArt"},"merkmale":{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/RollenMerkmal"}},"systemrechte":{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/RollenSystemRecht"}}},"required":["name","administeredBySchulstrukturknoten","rollenart","merkmale","systemrechte"]},"RolleResponse":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"administeredBySchulstrukturknoten":{"type":"string"},"rollenart":{"$ref":"#/components/schemas/RollenArt"},"merkmale":{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/RollenMerkmal"}},"systemrechte":{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/RollenSystemRecht"}},"administeredBySchulstrukturknotenName":{"type":"string","nullable":true},"administeredBySchulstrukturknotenKennung":{"type":"string","nullable":true},"version":{"type":"number"}},"required":["id","createdAt","updatedAt","name","administeredBySchulstrukturknoten","rollenart","merkmale","systemrechte","administeredBySchulstrukturknotenName","administeredBySchulstrukturknotenKennung","version"]},"AddSystemrechtBodyParams":{"type":"object","properties":{"systemRecht":{"$ref":"#/components/schemas/RollenSystemRecht"}},"required":["systemRecht"]},"RolleServiceProviderResponse":{"type":"object","properties":{"serviceProviderIds":{"type":"array","items":{"type":"string"}}},"required":["serviceProviderIds"]},"RolleServiceProviderBodyParams":{"type":"object","properties":{"serviceProviderIds":{"description":"An array of ids for the service providers.","nullable":false,"type":"array","items":{"type":"string"}},"version":{"type":"number","description":"The version for the rolle."}},"required":["serviceProviderIds","version"]},"ServiceProviderTarget":{"type":"string","enum":["URL","EMAIL","SCHULPORTAL_ADMINISTRATION"]},"ServiceProviderKategorie":{"type":"string","enum":["EMAIL","UNTERRICHT","VERWALTUNG","HINWEISE","ANGEBOTE"]},"ServiceProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"target":{"$ref":"#/components/schemas/ServiceProviderTarget"},"url":{"type":"string","description":"Can be undefined, if `target` is not equal to `URL`"},"kategorie":{"$ref":"#/components/schemas/ServiceProviderKategorie"},"hasLogo":{"type":"boolean"},"requires2fa":{"type":"boolean"}},"required":["id","name","target","url","kategorie","hasLogo","requires2fa"]},"UpdateRolleBodyParams":{"type":"object","properties":{"name":{"type":"string"},"merkmale":{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/RollenMerkmal"}},"systemrechte":{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/RollenSystemRecht"}},"serviceProviderIds":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"version":{"type":"number"}},"required":["name","merkmale","systemrechte","serviceProviderIds","version"]},"DbiamRolleError":{"type":"object","properties":{"i18nKey":{"type":"string","enum":["ROLLE_ERROR","ADD_SYSTEMRECHT_ERROR","ROLLE_HAT_PERSONENKONTEXTE_ERROR","UPDATE_MERKMALE_ERROR","ROLLENNAME_ENTHAELT_LEERZEICHEN","NEWER_VERSION_OF_ROLLE_AVAILABLE"]},"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"]},"DeleteRevisionBodyParams":{"type":"object","properties":{"revision":{"type":"string","description":"The revision of a personenkontext.","nullable":false}},"required":["revision"]},"DBiamPersonenkontextResponse":{"type":"object","properties":{"personId":{"type":"string"},"organisationId":{"type":"string"},"rolleId":{"type":"string"},"befristung":{"type":"string"}},"required":["personId","organisationId","rolleId","befristung"]},"PersonenkontextMigrationRuntype":{"type":"string","enum":["ITSLEARNING","STANDARD"]},"DbiamPersonenkontextMigrationBodyParams":{"type":"object","properties":{"personId":{"type":"string"},"username":{"type":"string"},"organisationId":{"type":"string"},"rolleId":{"type":"string"},"befristung":{"format":"date-time","type":"string"},"email":{"type":"string"},"migrationRunType":{"$ref":"#/components/schemas/PersonenkontextMigrationRuntype"}},"required":["personId","organisationId","rolleId","migrationRunType"]},"DbiamPersonenkontextError":{"type":"object","properties":{"i18nKey":{"type":"string","enum":["PERSONENKONTEXT_SPECIFICATION_ERROR","NUR_LEHR_UND_LERN_AN_KLASSE","GLEICHE_ROLLE_AN_KLASSE_WIE_SCHULE","ORGANISATION_MATCHES_ROLLENART","PERSONENKONTEXT_ANLAGE_ERROR","ROLLE_NUR_AN_PASSENDE_ORGANISATION","PERSONALNUMMER_NICHT_EINDEUTIG"]},"code":{"type":"number","description":"Corresponds to HTTP Status code like 200, 404, 500"}},"required":["i18nKey","code"]},"PersonenkontextWorkflowResponse":{"type":"object","properties":{"organisations":{"description":"List of available organisations.","type":"array","items":{"$ref":"#/components/schemas/OrganisationResponseLegacy"}},"rollen":{"description":"List of available roles.","type":"array","items":{"$ref":"#/components/schemas/RolleResponse"}},"selectedOrganisation":{"type":"string","description":"Selected organisation.","nullable":true},"selectedRolle":{"type":"string","description":"Selected rolle.","nullable":true},"canCommit":{"type":"boolean","description":"Indicates whether the commit action can be performed."}},"required":["organisations","rollen","selectedOrganisation","selectedRolle","canCommit"]},"DbiamPersonenkontextBodyParams":{"type":"object","properties":{"personId":{"type":"string"},"organisationId":{"type":"string"},"rolleId":{"type":"string"},"befristung":{"format":"date-time","type":"string"}},"required":["personId","organisationId","rolleId"]},"DbiamUpdatePersonenkontexteBodyParams":{"type":"object","properties":{"lastModified":{"format":"date-time","type":"string","nullable":true,"description":"Date of the most recent changed personenkontext"},"count":{"type":"number","nullable":false,"description":"The amount of personenkontexte"},"personenkontexte":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/DbiamPersonenkontextBodyParams"}}},"required":["count","personenkontexte"]},"PersonenkontexteUpdateResponse":{"type":"object","properties":{"dBiamPersonenkontextResponses":{"type":"array","items":{"$ref":"#/components/schemas/DBiamPersonenkontextResponse"}}},"required":["dBiamPersonenkontextResponses"]},"DbiamPersonenkontexteUpdateError":{"type":"object","properties":{"i18nKey":{"type":"string","enum":["PERSONENKONTEXTE_UPDATE_ERROR","PERSONENKONTEXT_NOT_FOUND","COUNT_MISMATCHING","NEWER_VERSION_OF_PERSONENKONTEXTE_AVAILABLE","INVALID_LAST_MODIFIED_VALUE","PERSON_ID_MISMATCH","PERSON_NOT_FOUND","INVALID_PERSONENKONTEXT_FOR_PERSON_WITH_ROLLENART_LERN"," BEFRISTUNG_REQUIRED_FOR_PERSONENKONTEXT"]},"code":{"type":"number","description":"Corresponds to HTTP Status code like 200, 404, 500"}},"required":["i18nKey","code"]},"FindSchulstrukturknotenResponse":{"type":"object","properties":{"moeglicheSsks":{"type":"array","items":{"$ref":"#/components/schemas/OrganisationResponseLegacy"}},"total":{"type":"number"}},"required":["moeglicheSsks","total"]},"DbiamCreatePersonenkontextBodyParams":{"type":"object","properties":{"organisationId":{"type":"string"},"rolleId":{"type":"string"}},"required":["organisationId","rolleId"]},"DbiamCreatePersonWithPersonenkontexteBodyParams":{"type":"object","properties":{"familienname":{"type":"string"},"vorname":{"type":"string"},"personalnummer":{"type":"string"},"befristung":{"format":"date-time","type":"string"},"createPersonenkontexte":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/DbiamCreatePersonenkontextBodyParams"}}},"required":["familienname","vorname","createPersonenkontexte"]},"DBiamPersonResponse":{"type":"object","properties":{"person":{"$ref":"#/components/schemas/PersonResponse"},"dBiamPersonenkontextResponses":{"type":"array","items":{"$ref":"#/components/schemas/DBiamPersonenkontextResponse"}}},"required":["person","dBiamPersonenkontextResponses"]},"FindRollenResponse":{"type":"object","properties":{"moeglicheRollen":{"type":"array","items":{"$ref":"#/components/schemas/RolleResponse"}},"total":{"type":"number"}},"required":["moeglicheRollen","total"]},"TokenInitBodyParams":{"type":"object","properties":{"personId":{"type":"string"}},"required":["personId"]},"TokenStateResponse":{"type":"object","properties":{"hasToken":{"type":"boolean"},"tokenKind":{"type":"string"},"serial":{"type":"string"}},"required":["hasToken","tokenKind","serial"]},"AssignHardwareTokenBodyParams":{"type":"object","properties":{"serial":{"type":"string"},"otp":{"type":"string"},"referrer":{"type":"string"},"userId":{"type":"string"}},"required":["serial","otp","referrer","userId"]},"AssignHardwareTokenResponse":{"type":"object","properties":{"id":{"type":"number"},"jsonrpc":{"type":"string"},"time":{"type":"number"},"version":{"type":"string"},"versionnumber":{"type":"string"},"signature":{"type":"string"},"dialogText":{"type":"string"}},"required":["id","jsonrpc","time","version","versionnumber","signature","dialogText"]},"TokenVerifyBodyParams":{"type":"object","properties":{"personId":{"type":"string"},"otp":{"type":"string"}},"required":["personId","otp"]},"TokenRequiredResponse":{"type":"object","properties":{"required":{"type":"boolean"}},"required":["required"]},"DbiamPersonenkontextImportBodyParams":{"type":"object","properties":{"organisationId":{"type":"string"},"rolleId":{"type":"string"},"file":{"type":"string","format":"binary"}},"required":["organisationId","rolleId","file"]},"ImportDataItemResponse":{"type":"object","properties":{"nachname":{"type":"string"},"vorname":{"type":"string"},"klasse":{"type":"string","nullable":true},"validationErrors":{"type":"array","items":{"type":"string"}}},"required":["nachname","vorname","klasse","validationErrors"]},"ImportUploadResponse":{"type":"object","properties":{"importvorgangId":{"type":"string","description":"The import transaction number. it will be needed to execute the import and download the result"},"isValid":{"type":"boolean","description":"It states if the import transaction contain errors."},"totalImportDataItems":{"type":"number","description":"The total number of data items in the CSV file."},"totalInvalidImportDataItems":{"type":"number","description":"The total number of data items in the CSV file that are invalid."},"invalidImportDataItems":{"type":"array","items":{"$ref":"#/components/schemas/ImportDataItemResponse"}}},"required":["importvorgangId","isValid","totalImportDataItems","totalInvalidImportDataItems","invalidImportDataItems"]},"ImportvorgangByIdBodyParams":{"type":"object","properties":{"importvorgangId":{"type":"string","description":"The id of an import transaction","nullable":false},"organisationId":{"type":"string"},"rolleId":{"type":"string"}},"required":["importvorgangId","organisationId","rolleId"]},"DbiamImportError":{"type":"object","properties":{"i18nKey":{"type":"string","enum":["IMPORT_ERROR","CSV_PARSING_ERROR","CSV_FILE_EMPTY_ERROR","IMPORT_TEXT_FILE_CREATION_ERROR","IMPORT_NUR_LERN_AN_SCHULE_ERROR"]},"code":{"type":"number","description":"Corresponds to HTTP Status code like 200, 404, 500"}},"required":["i18nKey","code"]}}}} \ No newline at end of file diff --git a/loadtest/pages/user-list.ts b/loadtest/pages/user-list.ts index bd7d22f..e785cae 100644 --- a/loadtest/pages/user-list.ts +++ b/loadtest/pages/user-list.ts @@ -1,7 +1,7 @@ import { DBiamPersonenuebersichtResponse, + FindRollenResponse, OrganisationResponse, - RolleWithServiceProvidersResponse, } from "../api-client/generated/index.ts"; import { getLoginInfo, @@ -17,7 +17,7 @@ import { PageObject } from "./index.ts"; type FetchedData = { organisationen: OrganisationResponse[]; personenuebersichten: DBiamPersonenuebersichtResponse[]; - rollen: RolleWithServiceProvidersResponse[]; + rollen: FindRollenResponse; }; class UserListPage implements PageObject { name = "UserList"; diff --git a/loadtest/usecases/1_login.ts b/loadtest/usecases/1_login.ts index 6f81a69..324e691 100644 --- a/loadtest/usecases/1_login.ts +++ b/loadtest/usecases/1_login.ts @@ -5,11 +5,11 @@ import { loginPage } from "../pages/login.ts"; import { defaultHttpCheck, defaultTimingCheck } from "../util/checks.ts"; import { getDefaultOptions } from "../util/config.ts"; import { wrapTestFunction } from "../util/usecase-wrapper.ts"; -import { getDefaultUserMix } from "../util/users.ts"; +import { getDefaultAdminMix } from "../util/users.ts"; const successfulLoginCounter = new Counter("successful_logins_counter"); const successfulLoginDuration = new Trend("successful_logins_duration", true); -const users = getDefaultUserMix(); +const users = getDefaultAdminMix(); export const options = { ...getDefaultOptions(), diff --git a/loadtest/usecases/1_show-start.ts b/loadtest/usecases/1_show-start.ts index 69116e4..5970d29 100644 --- a/loadtest/usecases/1_show-start.ts +++ b/loadtest/usecases/1_show-start.ts @@ -2,12 +2,12 @@ import { group, sleep } from "k6"; import { getDefaultOptions } from "../util/config.ts"; import { login } from "../util/page.ts"; import { wrapTestFunction } from "../util/usecase-wrapper.ts"; -import { getDefaultUserMix } from "../util/users.ts"; +import { getDefaultAdminMix } from "../util/users.ts"; -const users = getDefaultUserMix(); +const users = getDefaultAdminMix(); export const options = { - ...getDefaultOptions(users), + ...getDefaultOptions(), }; export default wrapTestFunction(main); diff --git a/loadtest/usecases/1_show-user-list.ts b/loadtest/usecases/1_show-user-list.ts index 8ea76aa..b66b48a 100644 --- a/loadtest/usecases/1_show-user-list.ts +++ b/loadtest/usecases/1_show-user-list.ts @@ -1,4 +1,4 @@ -import { group, sleep } from "k6"; +import { group } from "k6"; import { DBiamPersonenuebersichtResponse } from "../api-client/generated/index.ts"; import { userListPage } from "../pages/user-list.ts"; import { @@ -34,7 +34,7 @@ function main(users = getDefaultAdminMix()) { getLoginInfo(); orgId = pickRandomItem(organisationen).id; personenuebersicht = pickRandomItem(personenuebersichten); - rolleId = pickRandomItem(rollen).id; + rolleId = pickRandomItem(rollen.moeglicheRollen).id; }); group("hit pages", () => { diff --git a/loadtest/util/api.ts b/loadtest/util/api.ts index e0e8a71..24998bf 100644 --- a/loadtest/util/api.ts +++ b/loadtest/util/api.ts @@ -192,7 +192,7 @@ export function deleteKlasse(id: string) { export function getPersonenIds( personen?: PersonFrontendControllerFindPersons200Response, ): Set { - if (!personen) personen = getPersonen(); + if (!personen) personen = getPersonen(["limit=30"]); return new Set(personen.items.map(({ person }) => person.id)); } @@ -322,7 +322,6 @@ export function getResetPassword(query: Array) { } export function putPersonLock(personId: string, lock: boolean) { - // TODO: befristung const lockUserBodyParams: LockUserBodyParams = { lock, //@ts-expect-error openapi generator converts this to camelcase diff --git a/loadtest/util/config.ts b/loadtest/util/config.ts index 086d04f..b161cc9 100644 --- a/loadtest/util/config.ts +++ b/loadtest/util/config.ts @@ -43,7 +43,7 @@ export function getDefaultOptions() { }; case CONFIG.BREAKPOINT: return { - stages: [{ duration: "10m", target: 10 * maxVUs }], + stages: [{ duration: "10m", target: maxVUs }], thresholds: { http_req_failed: [{ threshold: "rate<0.10", abortOnFail: true }], http_req_duration: [{ threshold: "p(95)<5000", abortOnFail: true }], diff --git a/loadtest/util/users.ts b/loadtest/util/users.ts index f906ffb..7ffbee8 100644 --- a/loadtest/util/users.ts +++ b/loadtest/util/users.ts @@ -111,12 +111,12 @@ export class UserMix { getUser(): User { const currentRole = this.getCurrentRole(); - const user = groupedUsers.get(currentRole); + const user = groupedUsers.get(currentRole)?.next(); if (!user) throw new Error( `user with requested role ${currentRole} is not present in ${DATAPATH}`, ); - return user.next(); + return user; } getCurrentRole(): ROLE {