diff --git a/src/Coscine.Api/api.ts b/src/Coscine.Api/api.ts
index 59541b18be9f2573f268e46063e844fd0bf28c87..d66844b9e7b55eaa82c05f681785efc3d778fca5 100644
--- a/src/Coscine.Api/api.ts
+++ b/src/Coscine.Api/api.ts
@@ -21,6 +21,17 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj
 // @ts-ignore
 import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base';
 
+/**
+ * 
+ * @export
+ * @enum {string}
+ */
+
+export enum AcceptedLanguage {
+    De = 'de',
+    En = 'en'
+}
+
 /**
  * 
  * @export
@@ -139,6 +150,155 @@ export interface ApiTokenForCreationDto {
      */
     expiresInDays: number;
 }
+/**
+ * 
+ * @export
+ * @interface ApplicationProfileDto
+ */
+export interface ApplicationProfileDto {
+    /**
+     * 
+     * @type {string}
+     * @memberof ApplicationProfileDto
+     */
+    baseUrl?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof ApplicationProfileDto
+     */
+    displayName?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof ApplicationProfileDto
+     */
+    description?: string | null;
+    /**
+     * 
+     * @type {RdfFormat}
+     * @memberof ApplicationProfileDto
+     */
+    format?: RdfFormat;
+    /**
+     * 
+     * @type {string}
+     * @memberof ApplicationProfileDto
+     */
+    definition?: string | null;
+}
+/**
+ * 
+ * @export
+ * @interface ApplicationProfileDtoIEnumerablePagedResponse
+ */
+export interface ApplicationProfileDtoIEnumerablePagedResponse {
+    /**
+     * 
+     * @type {Array<ApplicationProfileDto>}
+     * @memberof ApplicationProfileDtoIEnumerablePagedResponse
+     */
+    data?: Array<ApplicationProfileDto> | null;
+    /**
+     * 
+     * @type {number}
+     * @memberof ApplicationProfileDtoIEnumerablePagedResponse
+     */
+    statusCode?: number | null;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof ApplicationProfileDtoIEnumerablePagedResponse
+     */
+    isSuccess?: boolean;
+    /**
+     * 
+     * @type {Pagination}
+     * @memberof ApplicationProfileDtoIEnumerablePagedResponse
+     */
+    pagination?: Pagination;
+}
+/**
+ * 
+ * @export
+ * @interface ApplicationProfileDtoResponse
+ */
+export interface ApplicationProfileDtoResponse {
+    /**
+     * 
+     * @type {ApplicationProfileDto}
+     * @memberof ApplicationProfileDtoResponse
+     */
+    data?: ApplicationProfileDto;
+    /**
+     * 
+     * @type {number}
+     * @memberof ApplicationProfileDtoResponse
+     */
+    statusCode?: number | null;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof ApplicationProfileDtoResponse
+     */
+    isSuccess?: boolean;
+}
+/**
+ * 
+ * @export
+ * @interface ApplicationProfileForCreationDto
+ */
+export interface ApplicationProfileForCreationDto {
+    /**
+     * 
+     * @type {string}
+     * @memberof ApplicationProfileForCreationDto
+     */
+    name?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof ApplicationProfileForCreationDto
+     */
+    baseUri?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof ApplicationProfileForCreationDto
+     */
+    definition?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof ApplicationProfileForCreationDto
+     */
+    mimeType?: string | null;
+}
+/**
+ * 
+ * @export
+ * @interface ApplicationProfileForCreationDtoResponse
+ */
+export interface ApplicationProfileForCreationDtoResponse {
+    /**
+     * 
+     * @type {ApplicationProfileForCreationDto}
+     * @memberof ApplicationProfileForCreationDtoResponse
+     */
+    data?: ApplicationProfileForCreationDto;
+    /**
+     * 
+     * @type {number}
+     * @memberof ApplicationProfileForCreationDtoResponse
+     */
+    statusCode?: number | null;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof ApplicationProfileForCreationDtoResponse
+     */
+    isSuccess?: boolean;
+}
 /**
  * 
  * @export
@@ -809,13 +969,75 @@ export interface OrganizationDto {
      * @type {string}
      * @memberof OrganizationDto
      */
-    url?: string | null;
+    rorUri?: string | null;
     /**
      * 
      * @type {string}
      * @memberof OrganizationDto
      */
-    displayName?: string | null;
+    name?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof OrganizationDto
+     */
+    email?: string | null;
+}
+/**
+ * 
+ * @export
+ * @interface OrganizationDtoIEnumerablePagedResponse
+ */
+export interface OrganizationDtoIEnumerablePagedResponse {
+    /**
+     * 
+     * @type {Array<OrganizationDto>}
+     * @memberof OrganizationDtoIEnumerablePagedResponse
+     */
+    data?: Array<OrganizationDto> | null;
+    /**
+     * 
+     * @type {number}
+     * @memberof OrganizationDtoIEnumerablePagedResponse
+     */
+    statusCode?: number | null;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof OrganizationDtoIEnumerablePagedResponse
+     */
+    isSuccess?: boolean;
+    /**
+     * 
+     * @type {Pagination}
+     * @memberof OrganizationDtoIEnumerablePagedResponse
+     */
+    pagination?: Pagination;
+}
+/**
+ * 
+ * @export
+ * @interface OrganizationDtoResponse
+ */
+export interface OrganizationDtoResponse {
+    /**
+     * 
+     * @type {OrganizationDto}
+     * @memberof OrganizationDtoResponse
+     */
+    data?: OrganizationDto;
+    /**
+     * 
+     * @type {number}
+     * @memberof OrganizationDtoResponse
+     */
+    statusCode?: number | null;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof OrganizationDtoResponse
+     */
+    isSuccess?: boolean;
 }
 /**
  * 
@@ -1809,6 +2031,17 @@ export enum QuotaUnit {
     PebiByte = 'PebiBYTE'
 }
 
+/**
+ * 
+ * @export
+ * @enum {string}
+ */
+
+export enum RdfFormat {
+    Turtle = 'Turtle',
+    JsonLd = 'JsonLd'
+}
+
 /**
  * 
  * @export
@@ -2990,16 +3223,16 @@ export interface UserDto {
     language?: LanguageDto;
     /**
      * 
-     * @type {string}
+     * @type {boolean}
      * @memberof UserDto
      */
-    organization?: string | null;
+    isEmailConfirmed?: boolean;
     /**
      * 
-     * @type {string}
+     * @type {boolean}
      * @memberof UserDto
      */
-    institute?: string | null;
+    areToSAccepted?: boolean;
     /**
      * 
      * @type {Array<DisciplineDto>}
@@ -3008,16 +3241,16 @@ export interface UserDto {
     disciplines?: Array<DisciplineDto> | null;
     /**
      * 
-     * @type {boolean}
+     * @type {Array<UserOrganizationDto>}
      * @memberof UserDto
      */
-    isEmailConfirmed?: boolean;
+    organizations?: Array<UserOrganizationDto> | null;
     /**
      * 
-     * @type {boolean}
+     * @type {Array<UserInstituteDto>}
      * @memberof UserDto
      */
-    areToSAccepted?: boolean;
+    institutes?: Array<UserInstituteDto> | null;
     /**
      * 
      * @type {Array<ExternalAuthDto>}
@@ -3105,6 +3338,37 @@ export interface UserForUpdateDto {
      */
     disciplines: Array<DisciplineForUserManipulationDto>;
 }
+/**
+ * 
+ * @export
+ * @interface UserInstituteDto
+ */
+export interface UserInstituteDto {
+    /**
+     * 
+     * @type {string}
+     * @memberof UserInstituteDto
+     */
+    rorUri?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof UserInstituteDto
+     */
+    name?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof UserInstituteDto
+     */
+    email?: string | null;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof UserInstituteDto
+     */
+    readOnly?: boolean;
+}
 /**
  * 
  * @export
@@ -3143,6 +3407,37 @@ export interface UserMergeDtoResponse {
      */
     isSuccess?: boolean;
 }
+/**
+ * 
+ * @export
+ * @interface UserOrganizationDto
+ */
+export interface UserOrganizationDto {
+    /**
+     * 
+     * @type {string}
+     * @memberof UserOrganizationDto
+     */
+    rorUri?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof UserOrganizationDto
+     */
+    name?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof UserOrganizationDto
+     */
+    email?: string | null;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof UserOrganizationDto
+     */
+    readOnly?: boolean;
+}
 /**
  * 
  * @export
@@ -3244,30 +3539,154 @@ export interface VisibilityForResourceManipulationDto {
      */
     id: string;
 }
-
 /**
- * DisciplineApi - axios parameter creator
+ * 
  * @export
+ * @interface VocabularyDto
  */
-export const DisciplineApiAxiosParamCreator = function (configuration?: Configuration) {
-    return {
-        /**
-         * 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        apiV2DisciplinesOptions: async (options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/disciplines`;
-            // use dummy base URL string because the URL constructor only accepts absolute URLs.
-            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
-            let baseOptions;
-            if (configuration) {
-                baseOptions = configuration.baseOptions;
-            }
-
-            const localVarRequestOptions = { method: 'OPTIONS', ...baseOptions, ...options};
-            const localVarHeaderParameter = {} as any;
-            const localVarQueryParameter = {} as any;
+export interface VocabularyDto {
+    /**
+     * 
+     * @type {string}
+     * @memberof VocabularyDto
+     */
+    classUri?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof VocabularyDto
+     */
+    graphUri?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof VocabularyDto
+     */
+    displayName?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof VocabularyDto
+     */
+    description?: string | null;
+}
+/**
+ * 
+ * @export
+ * @interface VocabularyDtoIEnumerablePagedResponse
+ */
+export interface VocabularyDtoIEnumerablePagedResponse {
+    /**
+     * 
+     * @type {Array<VocabularyDto>}
+     * @memberof VocabularyDtoIEnumerablePagedResponse
+     */
+    data?: Array<VocabularyDto> | null;
+    /**
+     * 
+     * @type {number}
+     * @memberof VocabularyDtoIEnumerablePagedResponse
+     */
+    statusCode?: number | null;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof VocabularyDtoIEnumerablePagedResponse
+     */
+    isSuccess?: boolean;
+    /**
+     * 
+     * @type {Pagination}
+     * @memberof VocabularyDtoIEnumerablePagedResponse
+     */
+    pagination?: Pagination;
+}
+/**
+ * 
+ * @export
+ * @interface VocabularyDtoResponse
+ */
+export interface VocabularyDtoResponse {
+    /**
+     * 
+     * @type {VocabularyDto}
+     * @memberof VocabularyDtoResponse
+     */
+    data?: VocabularyDto;
+    /**
+     * 
+     * @type {number}
+     * @memberof VocabularyDtoResponse
+     */
+    statusCode?: number | null;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof VocabularyDtoResponse
+     */
+    isSuccess?: boolean;
+}
+/**
+ * 
+ * @export
+ * @interface VocabularyInstanceDto
+ */
+export interface VocabularyInstanceDto {
+    /**
+     * 
+     * @type {string}
+     * @memberof VocabularyInstanceDto
+     */
+    graphUri?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof VocabularyInstanceDto
+     */
+    typeUri?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof VocabularyInstanceDto
+     */
+    subClassOfUri?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof VocabularyInstanceDto
+     */
+    displayName?: string | null;
+    /**
+     * 
+     * @type {string}
+     * @memberof VocabularyInstanceDto
+     */
+    description?: string | null;
+}
+
+/**
+ * ApplicationProfileApi - axios parameter creator
+ * @export
+ */
+export const ApplicationProfileApiAxiosParamCreator = function (configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiV2ApplicationProfilesOptions: async (options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/application-profiles`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'OPTIONS', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
 
             // authentication Bearer required
             await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
@@ -3285,15 +3704,53 @@ export const DisciplineApiAxiosParamCreator = function (configuration?: Configur
         },
         /**
          * 
-         * @param {string} disciplineId 
+         * @param {ApplicationProfileForCreationDto} [applicationProfileForCreationDto] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getDiscipline: async (disciplineId: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'disciplineId' is not null or undefined
-            assertParamExists('getDiscipline', 'disciplineId', disciplineId)
-            const localVarPath = `/api/v2/disciplines/{disciplineId}`
-                .replace(`{${"disciplineId"}}`, encodeURIComponent(String(disciplineId)));
+        createApplicationProfileRequest: async (applicationProfileForCreationDto?: ApplicationProfileForCreationDto, options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/application-profiles/requests`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+
+    
+            localVarHeaderParameter['Content-Type'] = 'application/json';
+
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+            localVarRequestOptions.data = serializeDataIfNeeded(applicationProfileForCreationDto, localVarRequestOptions, configuration)
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {string} profile 
+         * @param {RdfFormat} [format] 
+         * @param {AcceptedLanguage} [acceptLanguage] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getApplicationProfile: async (profile: string, format?: RdfFormat, acceptLanguage?: AcceptedLanguage, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'profile' is not null or undefined
+            assertParamExists('getApplicationProfile', 'profile', profile)
+            const localVarPath = `/api/v2/application-profiles/{profile}`
+                .replace(`{${"profile"}}`, encodeURIComponent(String(profile)));
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -3308,6 +3765,14 @@ export const DisciplineApiAxiosParamCreator = function (configuration?: Configur
             // authentication Bearer required
             await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
 
+            if (format !== undefined) {
+                localVarQueryParameter['format'] = format;
+            }
+
+            if (acceptLanguage !== undefined && acceptLanguage !== null) {
+                localVarHeaderParameter['Accept-Language'] = String(JSON.stringify(acceptLanguage));
+            }
+
 
     
             setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
@@ -3321,14 +3786,15 @@ export const DisciplineApiAxiosParamCreator = function (configuration?: Configur
         },
         /**
          * 
+         * @param {AcceptedLanguage} [language] 
          * @param {number} [pageNumber] 
          * @param {number} [pageSize] 
          * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getDisciplines: async (pageNumber?: number, pageSize?: number, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/disciplines`;
+        getApplicationProfiles: async (language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/application-profiles`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -3343,6 +3809,10 @@ export const DisciplineApiAxiosParamCreator = function (configuration?: Configur
             // authentication Bearer required
             await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
 
+            if (language !== undefined) {
+                localVarQueryParameter['Language'] = language;
+            }
+
             if (pageNumber !== undefined) {
                 localVarQueryParameter['PageNumber'] = pageNumber;
             }
@@ -3357,6 +3827,42 @@ export const DisciplineApiAxiosParamCreator = function (configuration?: Configur
 
 
     
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {string} profile 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getRawApplicationProfile: async (profile: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'profile' is not null or undefined
+            assertParamExists('getRawApplicationProfile', 'profile', profile)
+            const localVarPath = `/api/v2/application-profiles/{profile}/raw`
+                .replace(`{${"profile"}}`, encodeURIComponent(String(profile)));
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+
+    
             setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
             let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
             localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -3370,123 +3876,438 @@ export const DisciplineApiAxiosParamCreator = function (configuration?: Configur
 };
 
 /**
- * DisciplineApi - functional programming interface
+ * ApplicationProfileApi - functional programming interface
  * @export
  */
-export const DisciplineApiFp = function(configuration?: Configuration) {
-    const localVarAxiosParamCreator = DisciplineApiAxiosParamCreator(configuration)
+export const ApplicationProfileApiFp = function(configuration?: Configuration) {
+    const localVarAxiosParamCreator = ApplicationProfileApiAxiosParamCreator(configuration)
     return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async apiV2DisciplinesOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2DisciplinesOptions(options);
+        async apiV2ApplicationProfilesOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2ApplicationProfilesOptions(options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
          * 
-         * @param {string} disciplineId 
+         * @param {ApplicationProfileForCreationDto} [applicationProfileForCreationDto] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getDiscipline(disciplineId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisciplineDtoResponse>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.getDiscipline(disciplineId, options);
+        async createApplicationProfileRequest(applicationProfileForCreationDto?: ApplicationProfileForCreationDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApplicationProfileForCreationDtoResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.createApplicationProfileRequest(applicationProfileForCreationDto, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {string} profile 
+         * @param {RdfFormat} [format] 
+         * @param {AcceptedLanguage} [acceptLanguage] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async getApplicationProfile(profile: string, format?: RdfFormat, acceptLanguage?: AcceptedLanguage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApplicationProfileDtoResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getApplicationProfile(profile, format, acceptLanguage, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
          * 
+         * @param {AcceptedLanguage} [language] 
          * @param {number} [pageNumber] 
          * @param {number} [pageSize] 
          * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getDisciplines(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisciplineDtoIEnumerablePagedResponse>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.getDisciplines(pageNumber, pageSize, orderBy, options);
+        async getApplicationProfiles(language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApplicationProfileDtoIEnumerablePagedResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getApplicationProfiles(language, pageNumber, pageSize, orderBy, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {string} profile 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async getRawApplicationProfile(profile: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getRawApplicationProfile(profile, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
     }
 };
 
 /**
- * DisciplineApi - factory interface
+ * ApplicationProfileApi - factory interface
  * @export
  */
-export const DisciplineApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
-    const localVarFp = DisciplineApiFp(configuration)
+export const ApplicationProfileApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    const localVarFp = ApplicationProfileApiFp(configuration)
     return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiV2DisciplinesOptions(options?: any): AxiosPromise<void> {
-            return localVarFp.apiV2DisciplinesOptions(options).then((request) => request(axios, basePath));
+        apiV2ApplicationProfilesOptions(options?: any): AxiosPromise<void> {
+            return localVarFp.apiV2ApplicationProfilesOptions(options).then((request) => request(axios, basePath));
         },
         /**
          * 
-         * @param {string} disciplineId 
+         * @param {ApplicationProfileForCreationDto} [applicationProfileForCreationDto] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getDiscipline(disciplineId: string, options?: any): AxiosPromise<DisciplineDtoResponse> {
-            return localVarFp.getDiscipline(disciplineId, options).then((request) => request(axios, basePath));
+        createApplicationProfileRequest(applicationProfileForCreationDto?: ApplicationProfileForCreationDto, options?: any): AxiosPromise<ApplicationProfileForCreationDtoResponse> {
+            return localVarFp.createApplicationProfileRequest(applicationProfileForCreationDto, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {string} profile 
+         * @param {RdfFormat} [format] 
+         * @param {AcceptedLanguage} [acceptLanguage] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getApplicationProfile(profile: string, format?: RdfFormat, acceptLanguage?: AcceptedLanguage, options?: any): AxiosPromise<ApplicationProfileDtoResponse> {
+            return localVarFp.getApplicationProfile(profile, format, acceptLanguage, options).then((request) => request(axios, basePath));
         },
         /**
          * 
+         * @param {AcceptedLanguage} [language] 
          * @param {number} [pageNumber] 
          * @param {number} [pageSize] 
          * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getDisciplines(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): AxiosPromise<DisciplineDtoIEnumerablePagedResponse> {
-            return localVarFp.getDisciplines(pageNumber, pageSize, orderBy, options).then((request) => request(axios, basePath));
+        getApplicationProfiles(language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): AxiosPromise<ApplicationProfileDtoIEnumerablePagedResponse> {
+            return localVarFp.getApplicationProfiles(language, pageNumber, pageSize, orderBy, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {string} profile 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getRawApplicationProfile(profile: string, options?: any): AxiosPromise<string> {
+            return localVarFp.getRawApplicationProfile(profile, options).then((request) => request(axios, basePath));
         },
     };
 };
 
 /**
- * DisciplineApi - object-oriented interface
+ * ApplicationProfileApi - object-oriented interface
  * @export
- * @class DisciplineApi
+ * @class ApplicationProfileApi
  * @extends {BaseAPI}
  */
-export class DisciplineApi extends BaseAPI {
+export class ApplicationProfileApi extends BaseAPI {
     /**
      * 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof DisciplineApi
+     * @memberof ApplicationProfileApi
      */
-    public apiV2DisciplinesOptions(options?: any) {
-        return DisciplineApiFp(this.configuration).apiV2DisciplinesOptions(options).then((request) => request(this.axios, this.basePath));
+    public apiV2ApplicationProfilesOptions(options?: any) {
+        return ApplicationProfileApiFp(this.configuration).apiV2ApplicationProfilesOptions(options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @param {string} disciplineId 
+     * @param {ApplicationProfileForCreationDto} [applicationProfileForCreationDto] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof DisciplineApi
+     * @memberof ApplicationProfileApi
      */
-    public getDiscipline(disciplineId: string, options?: any) {
-        return DisciplineApiFp(this.configuration).getDiscipline(disciplineId, options).then((request) => request(this.axios, this.basePath));
+    public createApplicationProfileRequest(applicationProfileForCreationDto?: ApplicationProfileForCreationDto, options?: any) {
+        return ApplicationProfileApiFp(this.configuration).createApplicationProfileRequest(applicationProfileForCreationDto, options).then((request) => request(this.axios, this.basePath));
+    }
+
+    /**
+     * 
+     * @param {string} profile 
+     * @param {RdfFormat} [format] 
+     * @param {AcceptedLanguage} [acceptLanguage] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ApplicationProfileApi
+     */
+    public getApplicationProfile(profile: string, format?: RdfFormat, acceptLanguage?: AcceptedLanguage, options?: any) {
+        return ApplicationProfileApiFp(this.configuration).getApplicationProfile(profile, format, acceptLanguage, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
+     * @param {AcceptedLanguage} [language] 
      * @param {number} [pageNumber] 
      * @param {number} [pageSize] 
      * @param {string} [orderBy] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof DisciplineApi
+     * @memberof ApplicationProfileApi
      */
-    public getDisciplines(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any) {
-        return DisciplineApiFp(this.configuration).getDisciplines(pageNumber, pageSize, orderBy, options).then((request) => request(this.axios, this.basePath));
+    public getApplicationProfiles(language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any) {
+        return ApplicationProfileApiFp(this.configuration).getApplicationProfiles(language, pageNumber, pageSize, orderBy, options).then((request) => request(this.axios, this.basePath));
+    }
+
+    /**
+     * 
+     * @param {string} profile 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ApplicationProfileApi
+     */
+    public getRawApplicationProfile(profile: string, options?: any) {
+        return ApplicationProfileApiFp(this.configuration).getRawApplicationProfile(profile, options).then((request) => request(this.axios, this.basePath));
+    }
+}
+
+
+/**
+ * DisciplineApi - axios parameter creator
+ * @export
+ */
+export const DisciplineApiAxiosParamCreator = function (configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiV2DisciplinesOptions: async (options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/disciplines`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'OPTIONS', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {string} disciplineId 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getDiscipline: async (disciplineId: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'disciplineId' is not null or undefined
+            assertParamExists('getDiscipline', 'disciplineId', disciplineId)
+            const localVarPath = `/api/v2/disciplines/{disciplineId}`
+                .replace(`{${"disciplineId"}}`, encodeURIComponent(String(disciplineId)));
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
+         * @param {string} [orderBy] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getDisciplines: async (pageNumber?: number, pageSize?: number, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/disciplines`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+            if (pageNumber !== undefined) {
+                localVarQueryParameter['PageNumber'] = pageNumber;
+            }
+
+            if (pageSize !== undefined) {
+                localVarQueryParameter['PageSize'] = pageSize;
+            }
+
+            if (orderBy !== undefined) {
+                localVarQueryParameter['OrderBy'] = orderBy;
+            }
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+    }
+};
+
+/**
+ * DisciplineApi - functional programming interface
+ * @export
+ */
+export const DisciplineApiFp = function(configuration?: Configuration) {
+    const localVarAxiosParamCreator = DisciplineApiAxiosParamCreator(configuration)
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiV2DisciplinesOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2DisciplinesOptions(options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {string} disciplineId 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async getDiscipline(disciplineId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisciplineDtoResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getDiscipline(disciplineId, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
+         * @param {string} [orderBy] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async getDisciplines(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisciplineDtoIEnumerablePagedResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getDisciplines(pageNumber, pageSize, orderBy, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+    }
+};
+
+/**
+ * DisciplineApi - factory interface
+ * @export
+ */
+export const DisciplineApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    const localVarFp = DisciplineApiFp(configuration)
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiV2DisciplinesOptions(options?: any): AxiosPromise<void> {
+            return localVarFp.apiV2DisciplinesOptions(options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {string} disciplineId 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getDiscipline(disciplineId: string, options?: any): AxiosPromise<DisciplineDtoResponse> {
+            return localVarFp.getDiscipline(disciplineId, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
+         * @param {string} [orderBy] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getDisciplines(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): AxiosPromise<DisciplineDtoIEnumerablePagedResponse> {
+            return localVarFp.getDisciplines(pageNumber, pageSize, orderBy, options).then((request) => request(axios, basePath));
+        },
+    };
+};
+
+/**
+ * DisciplineApi - object-oriented interface
+ * @export
+ * @class DisciplineApi
+ * @extends {BaseAPI}
+ */
+export class DisciplineApi extends BaseAPI {
+    /**
+     * 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof DisciplineApi
+     */
+    public apiV2DisciplinesOptions(options?: any) {
+        return DisciplineApiFp(this.configuration).apiV2DisciplinesOptions(options).then((request) => request(this.axios, this.basePath));
+    }
+
+    /**
+     * 
+     * @param {string} disciplineId 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof DisciplineApi
+     */
+    public getDiscipline(disciplineId: string, options?: any) {
+        return DisciplineApiFp(this.configuration).getDiscipline(disciplineId, options).then((request) => request(this.axios, this.basePath));
+    }
+
+    /**
+     * 
+     * @param {number} [pageNumber] 
+     * @param {number} [pageSize] 
+     * @param {string} [orderBy] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof DisciplineApi
+     */
+    public getDisciplines(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any) {
+        return DisciplineApiFp(this.configuration).getDisciplines(pageNumber, pageSize, orderBy, options).then((request) => request(this.axios, this.basePath));
     }
 }
 
@@ -3984,18 +4805,18 @@ export class LicenseApi extends BaseAPI {
 
 
 /**
- * PidApi - axios parameter creator
+ * OrganizationApi - axios parameter creator
  * @export
  */
-export const PidApiAxiosParamCreator = function (configuration?: Configuration) {
+export const OrganizationApiAxiosParamCreator = function (configuration?: Configuration) {
     return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiV2PidsOptions: async (options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/pids`;
+        apiV2OrganizationsOptions: async (options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/organizations`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -4023,15 +4844,269 @@ export const PidApiAxiosParamCreator = function (configuration?: Configuration)
         },
         /**
          * 
-         * @param {string} prefix 
-         * @param {string} id 
-         * @param {PidEnquiryDto} [pidEnquiryDto] 
+         * @param {string} organizationRorUrl 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        sendEmailToOwner: async (prefix: string, id: string, pidEnquiryDto?: PidEnquiryDto, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'prefix' is not null or undefined
-            assertParamExists('sendEmailToOwner', 'prefix', prefix)
+        getOrganization: async (organizationRorUrl: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'organizationRorUrl' is not null or undefined
+            assertParamExists('getOrganization', 'organizationRorUrl', organizationRorUrl)
+            const localVarPath = `/api/v2/organizations/{organizationRorUrl}`
+                .replace(`{${"organizationRorUrl"}}`, encodeURIComponent(String(organizationRorUrl)));
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {string} [searchTerm] 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
+         * @param {string} [orderBy] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getOrganizations: async (searchTerm?: string, pageNumber?: number, pageSize?: number, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/organizations`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+            if (searchTerm !== undefined) {
+                localVarQueryParameter['SearchTerm'] = searchTerm;
+            }
+
+            if (pageNumber !== undefined) {
+                localVarQueryParameter['PageNumber'] = pageNumber;
+            }
+
+            if (pageSize !== undefined) {
+                localVarQueryParameter['PageSize'] = pageSize;
+            }
+
+            if (orderBy !== undefined) {
+                localVarQueryParameter['OrderBy'] = orderBy;
+            }
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+    }
+};
+
+/**
+ * OrganizationApi - functional programming interface
+ * @export
+ */
+export const OrganizationApiFp = function(configuration?: Configuration) {
+    const localVarAxiosParamCreator = OrganizationApiAxiosParamCreator(configuration)
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiV2OrganizationsOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2OrganizationsOptions(options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {string} organizationRorUrl 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async getOrganization(organizationRorUrl: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OrganizationDtoResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getOrganization(organizationRorUrl, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {string} [searchTerm] 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
+         * @param {string} [orderBy] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async getOrganizations(searchTerm?: string, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OrganizationDtoIEnumerablePagedResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getOrganizations(searchTerm, pageNumber, pageSize, orderBy, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+    }
+};
+
+/**
+ * OrganizationApi - factory interface
+ * @export
+ */
+export const OrganizationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    const localVarFp = OrganizationApiFp(configuration)
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiV2OrganizationsOptions(options?: any): AxiosPromise<void> {
+            return localVarFp.apiV2OrganizationsOptions(options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {string} organizationRorUrl 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getOrganization(organizationRorUrl: string, options?: any): AxiosPromise<OrganizationDtoResponse> {
+            return localVarFp.getOrganization(organizationRorUrl, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {string} [searchTerm] 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
+         * @param {string} [orderBy] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getOrganizations(searchTerm?: string, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): AxiosPromise<OrganizationDtoIEnumerablePagedResponse> {
+            return localVarFp.getOrganizations(searchTerm, pageNumber, pageSize, orderBy, options).then((request) => request(axios, basePath));
+        },
+    };
+};
+
+/**
+ * OrganizationApi - object-oriented interface
+ * @export
+ * @class OrganizationApi
+ * @extends {BaseAPI}
+ */
+export class OrganizationApi extends BaseAPI {
+    /**
+     * 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof OrganizationApi
+     */
+    public apiV2OrganizationsOptions(options?: any) {
+        return OrganizationApiFp(this.configuration).apiV2OrganizationsOptions(options).then((request) => request(this.axios, this.basePath));
+    }
+
+    /**
+     * 
+     * @param {string} organizationRorUrl 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof OrganizationApi
+     */
+    public getOrganization(organizationRorUrl: string, options?: any) {
+        return OrganizationApiFp(this.configuration).getOrganization(organizationRorUrl, options).then((request) => request(this.axios, this.basePath));
+    }
+
+    /**
+     * 
+     * @param {string} [searchTerm] 
+     * @param {number} [pageNumber] 
+     * @param {number} [pageSize] 
+     * @param {string} [orderBy] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof OrganizationApi
+     */
+    public getOrganizations(searchTerm?: string, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any) {
+        return OrganizationApiFp(this.configuration).getOrganizations(searchTerm, pageNumber, pageSize, orderBy, options).then((request) => request(this.axios, this.basePath));
+    }
+}
+
+
+/**
+ * PidApi - axios parameter creator
+ * @export
+ */
+export const PidApiAxiosParamCreator = function (configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiV2PidsOptions: async (options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/pids`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'OPTIONS', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {string} prefix 
+         * @param {string} id 
+         * @param {PidEnquiryDto} [pidEnquiryDto] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        sendEmailToOwner: async (prefix: string, id: string, pidEnquiryDto?: PidEnquiryDto, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'prefix' is not null or undefined
+            assertParamExists('sendEmailToOwner', 'prefix', prefix)
             // verify required parameter 'id' is not null or undefined
             assertParamExists('sendEmailToOwner', 'id', id)
             const localVarPath = `/api/v2/pids/{prefix}/{id}/email`
@@ -8099,109 +9174,573 @@ export const ToSApiFp = function(configuration?: Configuration) {
             const localVarAxiosArgs = await localVarAxiosParamCreator.getToS(options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
-    }
-};
-
-/**
- * ToSApi - factory interface
- * @export
- */
-export const ToSApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
-    const localVarFp = ToSApiFp(configuration)
-    return {
+    }
+};
+
+/**
+ * ToSApi - factory interface
+ * @export
+ */
+export const ToSApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    const localVarFp = ToSApiFp(configuration)
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiV2TosOptions(options?: any): AxiosPromise<void> {
+            return localVarFp.apiV2TosOptions(options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getToS(options?: any): AxiosPromise<TermsOfServiceDtoResponse> {
+            return localVarFp.getToS(options).then((request) => request(axios, basePath));
+        },
+    };
+};
+
+/**
+ * ToSApi - object-oriented interface
+ * @export
+ * @class ToSApi
+ * @extends {BaseAPI}
+ */
+export class ToSApi extends BaseAPI {
+    /**
+     * 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ToSApi
+     */
+    public apiV2TosOptions(options?: any) {
+        return ToSApiFp(this.configuration).apiV2TosOptions(options).then((request) => request(this.axios, this.basePath));
+    }
+
+    /**
+     * 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ToSApi
+     */
+    public getToS(options?: any) {
+        return ToSApiFp(this.configuration).getToS(options).then((request) => request(this.axios, this.basePath));
+    }
+}
+
+
+/**
+ * UserApi - axios parameter creator
+ * @export
+ */
+export const UserApiAxiosParamCreator = function (configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        acceptCurrentToS: async (options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/users/self/accept-tos`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiV2UsersOptions: async (options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/users`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'OPTIONS', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {string} confirmationToken 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        confirmUserEmail: async (confirmationToken: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'confirmationToken' is not null or undefined
+            assertParamExists('confirmUserEmail', 'confirmationToken', confirmationToken)
+            const localVarPath = `/api/v2/users/self/confirm-email`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+            if (confirmationToken !== undefined) {
+                localVarQueryParameter['ConfirmationToken'] = confirmationToken;
+            }
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getCurrentUser: async (options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/users/self`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {string} searchTerm 
+         * @param {string} [orderBy] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getUsers: async (searchTerm: string, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'searchTerm' is not null or undefined
+            assertParamExists('getUsers', 'searchTerm', searchTerm)
+            const localVarPath = `/api/v2/users`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+            if (orderBy !== undefined) {
+                localVarQueryParameter['OrderBy'] = orderBy;
+            }
+
+            if (searchTerm !== undefined) {
+                localVarQueryParameter['SearchTerm'] = searchTerm;
+            }
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {ExternalAuthenticators} externalAuthenticator 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        initiateUserMerge: async (externalAuthenticator: ExternalAuthenticators, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'externalAuthenticator' is not null or undefined
+            assertParamExists('initiateUserMerge', 'externalAuthenticator', externalAuthenticator)
+            const localVarPath = `/api/v2/users/self/init-merge`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+            if (externalAuthenticator !== undefined) {
+                localVarQueryParameter['ExternalAuthenticator'] = externalAuthenticator;
+            }
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {UserForUpdateDto} [userForUpdateDto] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        updateCurrentUser: async (userForUpdateDto?: UserForUpdateDto, options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/users/self`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+
+    
+            localVarHeaderParameter['Content-Type'] = 'application/json';
+
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+            localVarRequestOptions.data = serializeDataIfNeeded(userForUpdateDto, localVarRequestOptions, configuration)
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+    }
+};
+
+/**
+ * UserApi - functional programming interface
+ * @export
+ */
+export const UserApiFp = function(configuration?: Configuration) {
+    const localVarAxiosParamCreator = UserApiAxiosParamCreator(configuration)
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async acceptCurrentToS(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.acceptCurrentToS(options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiV2UsersOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2UsersOptions(options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {string} confirmationToken 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async confirmUserEmail(confirmationToken: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.confirmUserEmail(confirmationToken, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async getCurrentUser(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserDtoResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getCurrentUser(options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {string} searchTerm 
+         * @param {string} [orderBy] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async getUsers(searchTerm: string, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PublicUserDtoIEnumerableResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getUsers(searchTerm, orderBy, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {ExternalAuthenticators} externalAuthenticator 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async initiateUserMerge(externalAuthenticator: ExternalAuthenticators, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserMergeDtoResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.initiateUserMerge(externalAuthenticator, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {UserForUpdateDto} [userForUpdateDto] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async updateCurrentUser(userForUpdateDto?: UserForUpdateDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.updateCurrentUser(userForUpdateDto, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+    }
+};
+
+/**
+ * UserApi - factory interface
+ * @export
+ */
+export const UserApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    const localVarFp = UserApiFp(configuration)
+    return {
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        acceptCurrentToS(options?: any): AxiosPromise<void> {
+            return localVarFp.acceptCurrentToS(options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiV2UsersOptions(options?: any): AxiosPromise<void> {
+            return localVarFp.apiV2UsersOptions(options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {string} confirmationToken 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        confirmUserEmail(confirmationToken: string, options?: any): AxiosPromise<void> {
+            return localVarFp.confirmUserEmail(confirmationToken, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getCurrentUser(options?: any): AxiosPromise<UserDtoResponse> {
+            return localVarFp.getCurrentUser(options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {string} searchTerm 
+         * @param {string} [orderBy] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getUsers(searchTerm: string, orderBy?: string, options?: any): AxiosPromise<PublicUserDtoIEnumerableResponse> {
+            return localVarFp.getUsers(searchTerm, orderBy, options).then((request) => request(axios, basePath));
+        },
         /**
          * 
+         * @param {ExternalAuthenticators} externalAuthenticator 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiV2TosOptions(options?: any): AxiosPromise<void> {
-            return localVarFp.apiV2TosOptions(options).then((request) => request(axios, basePath));
+        initiateUserMerge(externalAuthenticator: ExternalAuthenticators, options?: any): AxiosPromise<UserMergeDtoResponse> {
+            return localVarFp.initiateUserMerge(externalAuthenticator, options).then((request) => request(axios, basePath));
         },
         /**
          * 
+         * @param {UserForUpdateDto} [userForUpdateDto] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getToS(options?: any): AxiosPromise<TermsOfServiceDtoResponse> {
-            return localVarFp.getToS(options).then((request) => request(axios, basePath));
+        updateCurrentUser(userForUpdateDto?: UserForUpdateDto, options?: any): AxiosPromise<void> {
+            return localVarFp.updateCurrentUser(userForUpdateDto, options).then((request) => request(axios, basePath));
         },
     };
 };
 
 /**
- * ToSApi - object-oriented interface
+ * UserApi - object-oriented interface
  * @export
- * @class ToSApi
+ * @class UserApi
  * @extends {BaseAPI}
  */
-export class ToSApi extends BaseAPI {
+export class UserApi extends BaseAPI {
     /**
      * 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof ToSApi
+     * @memberof UserApi
      */
-    public apiV2TosOptions(options?: any) {
-        return ToSApiFp(this.configuration).apiV2TosOptions(options).then((request) => request(this.axios, this.basePath));
+    public acceptCurrentToS(options?: any) {
+        return UserApiFp(this.configuration).acceptCurrentToS(options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof ToSApi
+     * @memberof UserApi
      */
-    public getToS(options?: any) {
-        return ToSApiFp(this.configuration).getToS(options).then((request) => request(this.axios, this.basePath));
+    public apiV2UsersOptions(options?: any) {
+        return UserApiFp(this.configuration).apiV2UsersOptions(options).then((request) => request(this.axios, this.basePath));
     }
-}
 
+    /**
+     * 
+     * @param {string} confirmationToken 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof UserApi
+     */
+    public confirmUserEmail(confirmationToken: string, options?: any) {
+        return UserApiFp(this.configuration).confirmUserEmail(confirmationToken, options).then((request) => request(this.axios, this.basePath));
+    }
 
-/**
- * UserApi - axios parameter creator
- * @export
- */
-export const UserApiAxiosParamCreator = function (configuration?: Configuration) {
-    return {
-        /**
-         * 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        acceptCurrentToS: async (options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/users/self/accept-tos`;
-            // use dummy base URL string because the URL constructor only accepts absolute URLs.
-            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
-            let baseOptions;
-            if (configuration) {
-                baseOptions = configuration.baseOptions;
-            }
+    /**
+     * 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof UserApi
+     */
+    public getCurrentUser(options?: any) {
+        return UserApiFp(this.configuration).getCurrentUser(options).then((request) => request(this.axios, this.basePath));
+    }
 
-            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
-            const localVarHeaderParameter = {} as any;
-            const localVarQueryParameter = {} as any;
+    /**
+     * 
+     * @param {string} searchTerm 
+     * @param {string} [orderBy] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof UserApi
+     */
+    public getUsers(searchTerm: string, orderBy?: string, options?: any) {
+        return UserApiFp(this.configuration).getUsers(searchTerm, orderBy, options).then((request) => request(this.axios, this.basePath));
+    }
 
-            // authentication Bearer required
-            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+    /**
+     * 
+     * @param {ExternalAuthenticators} externalAuthenticator 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof UserApi
+     */
+    public initiateUserMerge(externalAuthenticator: ExternalAuthenticators, options?: any) {
+        return UserApiFp(this.configuration).initiateUserMerge(externalAuthenticator, options).then((request) => request(this.axios, this.basePath));
+    }
 
+    /**
+     * 
+     * @param {UserForUpdateDto} [userForUpdateDto] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof UserApi
+     */
+    public updateCurrentUser(userForUpdateDto?: UserForUpdateDto, options?: any) {
+        return UserApiFp(this.configuration).updateCurrentUser(userForUpdateDto, options).then((request) => request(this.axios, this.basePath));
+    }
+}
 
-    
-            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
-            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
-            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
 
-            return {
-                url: toPathString(localVarUrlObj),
-                options: localVarRequestOptions,
-            };
-        },
+/**
+ * UserApiTokenApi - axios parameter creator
+ * @export
+ */
+export const UserApiTokenApiAxiosParamCreator = function (configuration?: Configuration) {
+    return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiV2UsersOptions: async (options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/users`;
+        apiV2UsersSelfTokensOptions: async (options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/users/self/tokens`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -8229,14 +9768,12 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
         },
         /**
          * 
-         * @param {string} confirmationToken 
+         * @param {ApiTokenForCreationDto} [apiTokenForCreationDto] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        confirmUserEmail: async (confirmationToken: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'confirmationToken' is not null or undefined
-            assertParamExists('confirmUserEmail', 'confirmationToken', confirmationToken)
-            const localVarPath = `/api/v2/users/self/confirm-email`;
+        createApiToken: async (apiTokenForCreationDto?: ApiTokenForCreationDto, options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/users/self/tokens`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -8251,15 +9788,14 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
             // authentication Bearer required
             await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
 
-            if (confirmationToken !== undefined) {
-                localVarQueryParameter['ConfirmationToken'] = confirmationToken;
-            }
-
 
     
+            localVarHeaderParameter['Content-Type'] = 'application/json';
+
             setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
             let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
             localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+            localVarRequestOptions.data = serializeDataIfNeeded(apiTokenForCreationDto, localVarRequestOptions, configuration)
 
             return {
                 url: toPathString(localVarUrlObj),
@@ -8268,11 +9804,14 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
         },
         /**
          * 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
+         * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getCurrentUser: async (options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/users/self`;
+        getAllApiTokens: async (pageNumber?: number, pageSize?: number, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/users/self/tokens`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -8287,50 +9826,18 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
             // authentication Bearer required
             await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
 
-
-    
-            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
-            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
-            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
-
-            return {
-                url: toPathString(localVarUrlObj),
-                options: localVarRequestOptions,
-            };
-        },
-        /**
-         * 
-         * @param {string} searchTerm 
-         * @param {string} [orderBy] 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        getUsers: async (searchTerm: string, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'searchTerm' is not null or undefined
-            assertParamExists('getUsers', 'searchTerm', searchTerm)
-            const localVarPath = `/api/v2/users`;
-            // use dummy base URL string because the URL constructor only accepts absolute URLs.
-            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
-            let baseOptions;
-            if (configuration) {
-                baseOptions = configuration.baseOptions;
+            if (pageNumber !== undefined) {
+                localVarQueryParameter['PageNumber'] = pageNumber;
             }
 
-            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
-            const localVarHeaderParameter = {} as any;
-            const localVarQueryParameter = {} as any;
-
-            // authentication Bearer required
-            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+            if (pageSize !== undefined) {
+                localVarQueryParameter['PageSize'] = pageSize;
+            }
 
             if (orderBy !== undefined) {
                 localVarQueryParameter['OrderBy'] = orderBy;
             }
 
-            if (searchTerm !== undefined) {
-                localVarQueryParameter['SearchTerm'] = searchTerm;
-            }
-
 
     
             setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
@@ -8344,14 +9851,15 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
         },
         /**
          * 
-         * @param {ExternalAuthenticators} externalAuthenticator 
+         * @param {string} apiTokenId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        initiateUserMerge: async (externalAuthenticator: ExternalAuthenticators, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'externalAuthenticator' is not null or undefined
-            assertParamExists('initiateUserMerge', 'externalAuthenticator', externalAuthenticator)
-            const localVarPath = `/api/v2/users/self/init-merge`;
+        getApiToken: async (apiTokenId: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'apiTokenId' is not null or undefined
+            assertParamExists('getApiToken', 'apiTokenId', apiTokenId)
+            const localVarPath = `/api/v2/users/self/tokens/{apiTokenId}`
+                .replace(`{${"apiTokenId"}}`, encodeURIComponent(String(apiTokenId)));
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -8359,17 +9867,13 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
                 baseOptions = configuration.baseOptions;
             }
 
-            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
+            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
             const localVarHeaderParameter = {} as any;
             const localVarQueryParameter = {} as any;
 
             // authentication Bearer required
             await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
 
-            if (externalAuthenticator !== undefined) {
-                localVarQueryParameter['ExternalAuthenticator'] = externalAuthenticator;
-            }
-
 
     
             setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
@@ -8383,12 +9887,15 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
         },
         /**
          * 
-         * @param {UserForUpdateDto} [userForUpdateDto] 
+         * @param {string} apiTokenId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        updateCurrentUser: async (userForUpdateDto?: UserForUpdateDto, options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/users/self`;
+        revokeToken: async (apiTokenId: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'apiTokenId' is not null or undefined
+            assertParamExists('revokeToken', 'apiTokenId', apiTokenId)
+            const localVarPath = `/api/v2/users/self/tokens/{apiTokenId}`
+                .replace(`{${"apiTokenId"}}`, encodeURIComponent(String(apiTokenId)));
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -8396,7 +9903,7 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
                 baseOptions = configuration.baseOptions;
             }
 
-            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
+            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
             const localVarHeaderParameter = {} as any;
             const localVarQueryParameter = {} as any;
 
@@ -8405,12 +9912,9 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
 
 
     
-            localVarHeaderParameter['Content-Type'] = 'application/json';
-
             setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
             let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
             localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
-            localVarRequestOptions.data = serializeDataIfNeeded(userForUpdateDto, localVarRequestOptions, configuration)
 
             return {
                 url: toPathString(localVarUrlObj),
@@ -8421,251 +9925,200 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
 };
 
 /**
- * UserApi - functional programming interface
+ * UserApiTokenApi - functional programming interface
  * @export
  */
-export const UserApiFp = function(configuration?: Configuration) {
-    const localVarAxiosParamCreator = UserApiAxiosParamCreator(configuration)
+export const UserApiTokenApiFp = function(configuration?: Configuration) {
+    const localVarAxiosParamCreator = UserApiTokenApiAxiosParamCreator(configuration)
     return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async acceptCurrentToS(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.acceptCurrentToS(options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
-        /**
-         * 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async apiV2UsersOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2UsersOptions(options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
-        /**
-         * 
-         * @param {string} confirmationToken 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async confirmUserEmail(confirmationToken: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.confirmUserEmail(confirmationToken, options);
+        async apiV2UsersSelfTokensOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2UsersSelfTokensOptions(options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
          * 
+         * @param {ApiTokenForCreationDto} [apiTokenForCreationDto] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getCurrentUser(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserDtoResponse>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.getCurrentUser(options);
+        async createApiToken(apiTokenForCreationDto?: ApiTokenForCreationDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApiTokenDtoResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.createApiToken(apiTokenForCreationDto, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
          * 
-         * @param {string} searchTerm 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
          * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getUsers(searchTerm: string, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PublicUserDtoIEnumerableResponse>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.getUsers(searchTerm, orderBy, options);
+        async getAllApiTokens(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApiTokenDtoIEnumerablePagedResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllApiTokens(pageNumber, pageSize, orderBy, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
          * 
-         * @param {ExternalAuthenticators} externalAuthenticator 
+         * @param {string} apiTokenId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async initiateUserMerge(externalAuthenticator: ExternalAuthenticators, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserMergeDtoResponse>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.initiateUserMerge(externalAuthenticator, options);
+        async getApiToken(apiTokenId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApiTokenDtoResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getApiToken(apiTokenId, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
          * 
-         * @param {UserForUpdateDto} [userForUpdateDto] 
+         * @param {string} apiTokenId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async updateCurrentUser(userForUpdateDto?: UserForUpdateDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.updateCurrentUser(userForUpdateDto, options);
+        async revokeToken(apiTokenId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.revokeToken(apiTokenId, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
     }
 };
 
 /**
- * UserApi - factory interface
+ * UserApiTokenApi - factory interface
  * @export
  */
-export const UserApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
-    const localVarFp = UserApiFp(configuration)
+export const UserApiTokenApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    const localVarFp = UserApiTokenApiFp(configuration)
     return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        acceptCurrentToS(options?: any): AxiosPromise<void> {
-            return localVarFp.acceptCurrentToS(options).then((request) => request(axios, basePath));
-        },
-        /**
-         * 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        apiV2UsersOptions(options?: any): AxiosPromise<void> {
-            return localVarFp.apiV2UsersOptions(options).then((request) => request(axios, basePath));
-        },
-        /**
-         * 
-         * @param {string} confirmationToken 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        confirmUserEmail(confirmationToken: string, options?: any): AxiosPromise<void> {
-            return localVarFp.confirmUserEmail(confirmationToken, options).then((request) => request(axios, basePath));
+        apiV2UsersSelfTokensOptions(options?: any): AxiosPromise<void> {
+            return localVarFp.apiV2UsersSelfTokensOptions(options).then((request) => request(axios, basePath));
         },
         /**
          * 
+         * @param {ApiTokenForCreationDto} [apiTokenForCreationDto] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getCurrentUser(options?: any): AxiosPromise<UserDtoResponse> {
-            return localVarFp.getCurrentUser(options).then((request) => request(axios, basePath));
+        createApiToken(apiTokenForCreationDto?: ApiTokenForCreationDto, options?: any): AxiosPromise<ApiTokenDtoResponse> {
+            return localVarFp.createApiToken(apiTokenForCreationDto, options).then((request) => request(axios, basePath));
         },
         /**
          * 
-         * @param {string} searchTerm 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
          * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getUsers(searchTerm: string, orderBy?: string, options?: any): AxiosPromise<PublicUserDtoIEnumerableResponse> {
-            return localVarFp.getUsers(searchTerm, orderBy, options).then((request) => request(axios, basePath));
+        getAllApiTokens(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): AxiosPromise<ApiTokenDtoIEnumerablePagedResponse> {
+            return localVarFp.getAllApiTokens(pageNumber, pageSize, orderBy, options).then((request) => request(axios, basePath));
         },
         /**
          * 
-         * @param {ExternalAuthenticators} externalAuthenticator 
+         * @param {string} apiTokenId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        initiateUserMerge(externalAuthenticator: ExternalAuthenticators, options?: any): AxiosPromise<UserMergeDtoResponse> {
-            return localVarFp.initiateUserMerge(externalAuthenticator, options).then((request) => request(axios, basePath));
+        getApiToken(apiTokenId: string, options?: any): AxiosPromise<ApiTokenDtoResponse> {
+            return localVarFp.getApiToken(apiTokenId, options).then((request) => request(axios, basePath));
         },
         /**
          * 
-         * @param {UserForUpdateDto} [userForUpdateDto] 
+         * @param {string} apiTokenId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        updateCurrentUser(userForUpdateDto?: UserForUpdateDto, options?: any): AxiosPromise<void> {
-            return localVarFp.updateCurrentUser(userForUpdateDto, options).then((request) => request(axios, basePath));
+        revokeToken(apiTokenId: string, options?: any): AxiosPromise<void> {
+            return localVarFp.revokeToken(apiTokenId, options).then((request) => request(axios, basePath));
         },
     };
 };
 
 /**
- * UserApi - object-oriented interface
+ * UserApiTokenApi - object-oriented interface
  * @export
- * @class UserApi
+ * @class UserApiTokenApi
  * @extends {BaseAPI}
  */
-export class UserApi extends BaseAPI {
-    /**
-     * 
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof UserApi
-     */
-    public acceptCurrentToS(options?: any) {
-        return UserApiFp(this.configuration).acceptCurrentToS(options).then((request) => request(this.axios, this.basePath));
-    }
-
-    /**
-     * 
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof UserApi
-     */
-    public apiV2UsersOptions(options?: any) {
-        return UserApiFp(this.configuration).apiV2UsersOptions(options).then((request) => request(this.axios, this.basePath));
-    }
-
+export class UserApiTokenApi extends BaseAPI {
     /**
      * 
-     * @param {string} confirmationToken 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof UserApi
+     * @memberof UserApiTokenApi
      */
-    public confirmUserEmail(confirmationToken: string, options?: any) {
-        return UserApiFp(this.configuration).confirmUserEmail(confirmationToken, options).then((request) => request(this.axios, this.basePath));
+    public apiV2UsersSelfTokensOptions(options?: any) {
+        return UserApiTokenApiFp(this.configuration).apiV2UsersSelfTokensOptions(options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
+     * @param {ApiTokenForCreationDto} [apiTokenForCreationDto] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof UserApi
+     * @memberof UserApiTokenApi
      */
-    public getCurrentUser(options?: any) {
-        return UserApiFp(this.configuration).getCurrentUser(options).then((request) => request(this.axios, this.basePath));
+    public createApiToken(apiTokenForCreationDto?: ApiTokenForCreationDto, options?: any) {
+        return UserApiTokenApiFp(this.configuration).createApiToken(apiTokenForCreationDto, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @param {string} searchTerm 
+     * @param {number} [pageNumber] 
+     * @param {number} [pageSize] 
      * @param {string} [orderBy] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof UserApi
+     * @memberof UserApiTokenApi
      */
-    public getUsers(searchTerm: string, orderBy?: string, options?: any) {
-        return UserApiFp(this.configuration).getUsers(searchTerm, orderBy, options).then((request) => request(this.axios, this.basePath));
+    public getAllApiTokens(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any) {
+        return UserApiTokenApiFp(this.configuration).getAllApiTokens(pageNumber, pageSize, orderBy, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @param {ExternalAuthenticators} externalAuthenticator 
+     * @param {string} apiTokenId 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof UserApi
+     * @memberof UserApiTokenApi
      */
-    public initiateUserMerge(externalAuthenticator: ExternalAuthenticators, options?: any) {
-        return UserApiFp(this.configuration).initiateUserMerge(externalAuthenticator, options).then((request) => request(this.axios, this.basePath));
+    public getApiToken(apiTokenId: string, options?: any) {
+        return UserApiTokenApiFp(this.configuration).getApiToken(apiTokenId, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @param {UserForUpdateDto} [userForUpdateDto] 
+     * @param {string} apiTokenId 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof UserApi
+     * @memberof UserApiTokenApi
      */
-    public updateCurrentUser(userForUpdateDto?: UserForUpdateDto, options?: any) {
-        return UserApiFp(this.configuration).updateCurrentUser(userForUpdateDto, options).then((request) => request(this.axios, this.basePath));
+    public revokeToken(apiTokenId: string, options?: any) {
+        return UserApiTokenApiFp(this.configuration).revokeToken(apiTokenId, options).then((request) => request(this.axios, this.basePath));
     }
 }
 
 
 /**
- * UserApiTokenApi - axios parameter creator
+ * VisibilityApi - axios parameter creator
  * @export
  */
-export const UserApiTokenApiAxiosParamCreator = function (configuration?: Configuration) {
+export const VisibilityApiAxiosParamCreator = function (configuration?: Configuration) {
     return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiV2UsersSelfTokensOptions: async (options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/users/self/tokens`;
+        apiV2VisibilitiesOptions: async (options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/visibilities`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -8691,42 +10144,6 @@ export const UserApiTokenApiAxiosParamCreator = function (configuration?: Config
                 options: localVarRequestOptions,
             };
         },
-        /**
-         * 
-         * @param {ApiTokenForCreationDto} [apiTokenForCreationDto] 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        createApiToken: async (apiTokenForCreationDto?: ApiTokenForCreationDto, options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/users/self/tokens`;
-            // use dummy base URL string because the URL constructor only accepts absolute URLs.
-            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
-            let baseOptions;
-            if (configuration) {
-                baseOptions = configuration.baseOptions;
-            }
-
-            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
-            const localVarHeaderParameter = {} as any;
-            const localVarQueryParameter = {} as any;
-
-            // authentication Bearer required
-            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
-
-
-    
-            localVarHeaderParameter['Content-Type'] = 'application/json';
-
-            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
-            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
-            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
-            localVarRequestOptions.data = serializeDataIfNeeded(apiTokenForCreationDto, localVarRequestOptions, configuration)
-
-            return {
-                url: toPathString(localVarUrlObj),
-                options: localVarRequestOptions,
-            };
-        },
         /**
          * 
          * @param {number} [pageNumber] 
@@ -8735,8 +10152,8 @@ export const UserApiTokenApiAxiosParamCreator = function (configuration?: Config
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getAllApiTokens: async (pageNumber?: number, pageSize?: number, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/users/self/tokens`;
+        getVisibilities: async (pageNumber?: number, pageSize?: number, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/visibilities`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -8776,15 +10193,15 @@ export const UserApiTokenApiAxiosParamCreator = function (configuration?: Config
         },
         /**
          * 
-         * @param {string} apiTokenId 
+         * @param {string} visibilityId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getApiToken: async (apiTokenId: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'apiTokenId' is not null or undefined
-            assertParamExists('getApiToken', 'apiTokenId', apiTokenId)
-            const localVarPath = `/api/v2/users/self/tokens/{apiTokenId}`
-                .replace(`{${"apiTokenId"}}`, encodeURIComponent(String(apiTokenId)));
+        getVisibility: async (visibilityId: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'visibilityId' is not null or undefined
+            assertParamExists('getVisibility', 'visibilityId', visibilityId)
+            const localVarPath = `/api/v2/visibilities/{visibilityId}`
+                .replace(`{${"visibilityId"}}`, encodeURIComponent(String(visibilityId)));
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -8810,69 +10227,23 @@ export const UserApiTokenApiAxiosParamCreator = function (configuration?: Config
                 options: localVarRequestOptions,
             };
         },
+    }
+};
+
+/**
+ * VisibilityApi - functional programming interface
+ * @export
+ */
+export const VisibilityApiFp = function(configuration?: Configuration) {
+    const localVarAxiosParamCreator = VisibilityApiAxiosParamCreator(configuration)
+    return {
         /**
          * 
-         * @param {string} apiTokenId 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        revokeToken: async (apiTokenId: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'apiTokenId' is not null or undefined
-            assertParamExists('revokeToken', 'apiTokenId', apiTokenId)
-            const localVarPath = `/api/v2/users/self/tokens/{apiTokenId}`
-                .replace(`{${"apiTokenId"}}`, encodeURIComponent(String(apiTokenId)));
-            // use dummy base URL string because the URL constructor only accepts absolute URLs.
-            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
-            let baseOptions;
-            if (configuration) {
-                baseOptions = configuration.baseOptions;
-            }
-
-            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
-            const localVarHeaderParameter = {} as any;
-            const localVarQueryParameter = {} as any;
-
-            // authentication Bearer required
-            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
-
-
-    
-            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
-            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
-            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
-
-            return {
-                url: toPathString(localVarUrlObj),
-                options: localVarRequestOptions,
-            };
-        },
-    }
-};
-
-/**
- * UserApiTokenApi - functional programming interface
- * @export
- */
-export const UserApiTokenApiFp = function(configuration?: Configuration) {
-    const localVarAxiosParamCreator = UserApiTokenApiAxiosParamCreator(configuration)
-    return {
-        /**
-         * 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async apiV2UsersSelfTokensOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2UsersSelfTokensOptions(options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
-        /**
-         * 
-         * @param {ApiTokenForCreationDto} [apiTokenForCreationDto] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async createApiToken(apiTokenForCreationDto?: ApiTokenForCreationDto, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApiTokenDtoResponse>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.createApiToken(apiTokenForCreationDto, options);
+        async apiV2VisibilitiesOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2VisibilitiesOptions(options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
@@ -8883,56 +10254,37 @@ export const UserApiTokenApiFp = function(configuration?: Configuration) {
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getAllApiTokens(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApiTokenDtoIEnumerablePagedResponse>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.getAllApiTokens(pageNumber, pageSize, orderBy, options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
-        /**
-         * 
-         * @param {string} apiTokenId 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async getApiToken(apiTokenId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApiTokenDtoResponse>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.getApiToken(apiTokenId, options);
+        async getVisibilities(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<VisibilityDtoIEnumerablePagedResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getVisibilities(pageNumber, pageSize, orderBy, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
          * 
-         * @param {string} apiTokenId 
+         * @param {string} visibilityId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async revokeToken(apiTokenId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.revokeToken(apiTokenId, options);
+        async getVisibility(visibilityId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<VisibilityDtoResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getVisibility(visibilityId, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
     }
 };
 
 /**
- * UserApiTokenApi - factory interface
+ * VisibilityApi - factory interface
  * @export
  */
-export const UserApiTokenApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
-    const localVarFp = UserApiTokenApiFp(configuration)
+export const VisibilityApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    const localVarFp = VisibilityApiFp(configuration)
     return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiV2UsersSelfTokensOptions(options?: any): AxiosPromise<void> {
-            return localVarFp.apiV2UsersSelfTokensOptions(options).then((request) => request(axios, basePath));
-        },
-        /**
-         * 
-         * @param {ApiTokenForCreationDto} [apiTokenForCreationDto] 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        createApiToken(apiTokenForCreationDto?: ApiTokenForCreationDto, options?: any): AxiosPromise<ApiTokenDtoResponse> {
-            return localVarFp.createApiToken(apiTokenForCreationDto, options).then((request) => request(axios, basePath));
+        apiV2VisibilitiesOptions(options?: any): AxiosPromise<void> {
+            return localVarFp.apiV2VisibilitiesOptions(options).then((request) => request(axios, basePath));
         },
         /**
          * 
@@ -8942,56 +10294,36 @@ export const UserApiTokenApiFactory = function (configuration?: Configuration, b
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getAllApiTokens(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): AxiosPromise<ApiTokenDtoIEnumerablePagedResponse> {
-            return localVarFp.getAllApiTokens(pageNumber, pageSize, orderBy, options).then((request) => request(axios, basePath));
-        },
-        /**
-         * 
-         * @param {string} apiTokenId 
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        getApiToken(apiTokenId: string, options?: any): AxiosPromise<ApiTokenDtoResponse> {
-            return localVarFp.getApiToken(apiTokenId, options).then((request) => request(axios, basePath));
+        getVisibilities(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): AxiosPromise<VisibilityDtoIEnumerablePagedResponse> {
+            return localVarFp.getVisibilities(pageNumber, pageSize, orderBy, options).then((request) => request(axios, basePath));
         },
         /**
          * 
-         * @param {string} apiTokenId 
+         * @param {string} visibilityId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        revokeToken(apiTokenId: string, options?: any): AxiosPromise<void> {
-            return localVarFp.revokeToken(apiTokenId, options).then((request) => request(axios, basePath));
+        getVisibility(visibilityId: string, options?: any): AxiosPromise<VisibilityDtoResponse> {
+            return localVarFp.getVisibility(visibilityId, options).then((request) => request(axios, basePath));
         },
     };
 };
 
 /**
- * UserApiTokenApi - object-oriented interface
+ * VisibilityApi - object-oriented interface
  * @export
- * @class UserApiTokenApi
+ * @class VisibilityApi
  * @extends {BaseAPI}
  */
-export class UserApiTokenApi extends BaseAPI {
-    /**
-     * 
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof UserApiTokenApi
-     */
-    public apiV2UsersSelfTokensOptions(options?: any) {
-        return UserApiTokenApiFp(this.configuration).apiV2UsersSelfTokensOptions(options).then((request) => request(this.axios, this.basePath));
-    }
-
+export class VisibilityApi extends BaseAPI {
     /**
      * 
-     * @param {ApiTokenForCreationDto} [apiTokenForCreationDto] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof UserApiTokenApi
+     * @memberof VisibilityApi
      */
-    public createApiToken(apiTokenForCreationDto?: ApiTokenForCreationDto, options?: any) {
-        return UserApiTokenApiFp(this.configuration).createApiToken(apiTokenForCreationDto, options).then((request) => request(this.axios, this.basePath));
+    public apiV2VisibilitiesOptions(options?: any) {
+        return VisibilityApiFp(this.configuration).apiV2VisibilitiesOptions(options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
@@ -9001,49 +10333,38 @@ export class UserApiTokenApi extends BaseAPI {
      * @param {string} [orderBy] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof UserApiTokenApi
-     */
-    public getAllApiTokens(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any) {
-        return UserApiTokenApiFp(this.configuration).getAllApiTokens(pageNumber, pageSize, orderBy, options).then((request) => request(this.axios, this.basePath));
-    }
-
-    /**
-     * 
-     * @param {string} apiTokenId 
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof UserApiTokenApi
+     * @memberof VisibilityApi
      */
-    public getApiToken(apiTokenId: string, options?: any) {
-        return UserApiTokenApiFp(this.configuration).getApiToken(apiTokenId, options).then((request) => request(this.axios, this.basePath));
+    public getVisibilities(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any) {
+        return VisibilityApiFp(this.configuration).getVisibilities(pageNumber, pageSize, orderBy, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @param {string} apiTokenId 
+     * @param {string} visibilityId 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof UserApiTokenApi
+     * @memberof VisibilityApi
      */
-    public revokeToken(apiTokenId: string, options?: any) {
-        return UserApiTokenApiFp(this.configuration).revokeToken(apiTokenId, options).then((request) => request(this.axios, this.basePath));
+    public getVisibility(visibilityId: string, options?: any) {
+        return VisibilityApiFp(this.configuration).getVisibility(visibilityId, options).then((request) => request(this.axios, this.basePath));
     }
 }
 
 
 /**
- * VisibilityApi - axios parameter creator
+ * VocabularyApi - axios parameter creator
  * @export
  */
-export const VisibilityApiAxiosParamCreator = function (configuration?: Configuration) {
+export const VocabularyApiAxiosParamCreator = function (configuration?: Configuration) {
     return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiV2VisibilitiesOptions: async (options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/visibilities`;
+        apiV2VocabulariesOptions: async (options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/vocabularies`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -9071,14 +10392,57 @@ export const VisibilityApiAxiosParamCreator = function (configuration?: Configur
         },
         /**
          * 
+         * @param {string} instance 
+         * @param {AcceptedLanguage} [acceptLanguage] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getInstance: async (instance: string, acceptLanguage?: AcceptedLanguage, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'instance' is not null or undefined
+            assertParamExists('getInstance', 'instance', instance)
+            const localVarPath = `/api/v2/vocabularies/instances/{instance}`
+                .replace(`{${"instance"}}`, encodeURIComponent(String(instance)));
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+
+            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
+
+            if (acceptLanguage !== undefined && acceptLanguage !== null) {
+                localVarHeaderParameter['Accept-Language'] = String(JSON.stringify(acceptLanguage));
+            }
+
+
+    
+            setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @param {string} [searchTerm] 
+         * @param {AcceptedLanguage} [language] 
          * @param {number} [pageNumber] 
          * @param {number} [pageSize] 
          * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getVisibilities: async (pageNumber?: number, pageSize?: number, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/v2/visibilities`;
+        getVocabularies: async (searchTerm?: string, language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/v2/vocabularies`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -9093,6 +10457,14 @@ export const VisibilityApiAxiosParamCreator = function (configuration?: Configur
             // authentication Bearer required
             await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
 
+            if (searchTerm !== undefined) {
+                localVarQueryParameter['SearchTerm'] = searchTerm;
+            }
+
+            if (language !== undefined) {
+                localVarQueryParameter['Language'] = language;
+            }
+
             if (pageNumber !== undefined) {
                 localVarQueryParameter['PageNumber'] = pageNumber;
             }
@@ -9118,15 +10490,19 @@ export const VisibilityApiAxiosParamCreator = function (configuration?: Configur
         },
         /**
          * 
-         * @param {string} visibilityId 
+         * @param {string} _class 
+         * @param {string} [searchTerm] 
+         * @param {AcceptedLanguage} [language] 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
+         * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getVisibility: async (visibilityId: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'visibilityId' is not null or undefined
-            assertParamExists('getVisibility', 'visibilityId', visibilityId)
-            const localVarPath = `/api/v2/visibilities/{visibilityId}`
-                .replace(`{${"visibilityId"}}`, encodeURIComponent(String(visibilityId)));
+        getVocabularyInstances: async (_class: string, searchTerm?: string, language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter '_class' is not null or undefined
+            assertParamExists('getVocabularyInstances', '_class', _class)
+            const localVarPath = `/api/v2/vocabularies/instances`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -9141,6 +10517,30 @@ export const VisibilityApiAxiosParamCreator = function (configuration?: Configur
             // authentication Bearer required
             await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
 
+            if (_class !== undefined) {
+                localVarQueryParameter['Class'] = _class;
+            }
+
+            if (searchTerm !== undefined) {
+                localVarQueryParameter['SearchTerm'] = searchTerm;
+            }
+
+            if (language !== undefined) {
+                localVarQueryParameter['Language'] = language;
+            }
+
+            if (pageNumber !== undefined) {
+                localVarQueryParameter['PageNumber'] = pageNumber;
+            }
+
+            if (pageSize !== undefined) {
+                localVarQueryParameter['PageSize'] = pageSize;
+            }
+
+            if (orderBy !== undefined) {
+                localVarQueryParameter['OrderBy'] = orderBy;
+            }
+
 
     
             setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
@@ -9156,123 +10556,177 @@ export const VisibilityApiAxiosParamCreator = function (configuration?: Configur
 };
 
 /**
- * VisibilityApi - functional programming interface
+ * VocabularyApi - functional programming interface
  * @export
  */
-export const VisibilityApiFp = function(configuration?: Configuration) {
-    const localVarAxiosParamCreator = VisibilityApiAxiosParamCreator(configuration)
+export const VocabularyApiFp = function(configuration?: Configuration) {
+    const localVarAxiosParamCreator = VocabularyApiAxiosParamCreator(configuration)
     return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async apiV2VisibilitiesOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2VisibilitiesOptions(options);
+        async apiV2VocabulariesOptions(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.apiV2VocabulariesOptions(options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @param {string} instance 
+         * @param {AcceptedLanguage} [acceptLanguage] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async getInstance(instance: string, acceptLanguage?: AcceptedLanguage, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<VocabularyDtoResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getInstance(instance, acceptLanguage, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
          * 
+         * @param {string} [searchTerm] 
+         * @param {AcceptedLanguage} [language] 
          * @param {number} [pageNumber] 
          * @param {number} [pageSize] 
          * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getVisibilities(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<VisibilityDtoIEnumerablePagedResponse>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.getVisibilities(pageNumber, pageSize, orderBy, options);
+        async getVocabularies(searchTerm?: string, language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<VocabularyDtoIEnumerablePagedResponse>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getVocabularies(searchTerm, language, pageNumber, pageSize, orderBy, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
          * 
-         * @param {string} visibilityId 
+         * @param {string} _class 
+         * @param {string} [searchTerm] 
+         * @param {AcceptedLanguage} [language] 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
+         * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async getVisibility(visibilityId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<VisibilityDtoResponse>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.getVisibility(visibilityId, options);
+        async getVocabularyInstances(_class: string, searchTerm?: string, language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Array<VocabularyInstanceDto>>>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.getVocabularyInstances(_class, searchTerm, language, pageNumber, pageSize, orderBy, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
     }
 };
 
 /**
- * VisibilityApi - factory interface
+ * VocabularyApi - factory interface
  * @export
  */
-export const VisibilityApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
-    const localVarFp = VisibilityApiFp(configuration)
+export const VocabularyApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    const localVarFp = VocabularyApiFp(configuration)
     return {
         /**
          * 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiV2VisibilitiesOptions(options?: any): AxiosPromise<void> {
-            return localVarFp.apiV2VisibilitiesOptions(options).then((request) => request(axios, basePath));
+        apiV2VocabulariesOptions(options?: any): AxiosPromise<void> {
+            return localVarFp.apiV2VocabulariesOptions(options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @param {string} instance 
+         * @param {AcceptedLanguage} [acceptLanguage] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        getInstance(instance: string, acceptLanguage?: AcceptedLanguage, options?: any): AxiosPromise<VocabularyDtoResponse> {
+            return localVarFp.getInstance(instance, acceptLanguage, options).then((request) => request(axios, basePath));
         },
         /**
          * 
+         * @param {string} [searchTerm] 
+         * @param {AcceptedLanguage} [language] 
          * @param {number} [pageNumber] 
          * @param {number} [pageSize] 
          * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getVisibilities(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): AxiosPromise<VisibilityDtoIEnumerablePagedResponse> {
-            return localVarFp.getVisibilities(pageNumber, pageSize, orderBy, options).then((request) => request(axios, basePath));
+        getVocabularies(searchTerm?: string, language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): AxiosPromise<VocabularyDtoIEnumerablePagedResponse> {
+            return localVarFp.getVocabularies(searchTerm, language, pageNumber, pageSize, orderBy, options).then((request) => request(axios, basePath));
         },
         /**
          * 
-         * @param {string} visibilityId 
+         * @param {string} _class 
+         * @param {string} [searchTerm] 
+         * @param {AcceptedLanguage} [language] 
+         * @param {number} [pageNumber] 
+         * @param {number} [pageSize] 
+         * @param {string} [orderBy] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        getVisibility(visibilityId: string, options?: any): AxiosPromise<VisibilityDtoResponse> {
-            return localVarFp.getVisibility(visibilityId, options).then((request) => request(axios, basePath));
+        getVocabularyInstances(_class: string, searchTerm?: string, language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any): AxiosPromise<Array<Array<VocabularyInstanceDto>>> {
+            return localVarFp.getVocabularyInstances(_class, searchTerm, language, pageNumber, pageSize, orderBy, options).then((request) => request(axios, basePath));
         },
     };
 };
 
 /**
- * VisibilityApi - object-oriented interface
+ * VocabularyApi - object-oriented interface
  * @export
- * @class VisibilityApi
+ * @class VocabularyApi
  * @extends {BaseAPI}
  */
-export class VisibilityApi extends BaseAPI {
+export class VocabularyApi extends BaseAPI {
     /**
      * 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof VisibilityApi
+     * @memberof VocabularyApi
      */
-    public apiV2VisibilitiesOptions(options?: any) {
-        return VisibilityApiFp(this.configuration).apiV2VisibilitiesOptions(options).then((request) => request(this.axios, this.basePath));
+    public apiV2VocabulariesOptions(options?: any) {
+        return VocabularyApiFp(this.configuration).apiV2VocabulariesOptions(options).then((request) => request(this.axios, this.basePath));
+    }
+
+    /**
+     * 
+     * @param {string} instance 
+     * @param {AcceptedLanguage} [acceptLanguage] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof VocabularyApi
+     */
+    public getInstance(instance: string, acceptLanguage?: AcceptedLanguage, options?: any) {
+        return VocabularyApiFp(this.configuration).getInstance(instance, acceptLanguage, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
+     * @param {string} [searchTerm] 
+     * @param {AcceptedLanguage} [language] 
      * @param {number} [pageNumber] 
      * @param {number} [pageSize] 
      * @param {string} [orderBy] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof VisibilityApi
+     * @memberof VocabularyApi
      */
-    public getVisibilities(pageNumber?: number, pageSize?: number, orderBy?: string, options?: any) {
-        return VisibilityApiFp(this.configuration).getVisibilities(pageNumber, pageSize, orderBy, options).then((request) => request(this.axios, this.basePath));
+    public getVocabularies(searchTerm?: string, language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any) {
+        return VocabularyApiFp(this.configuration).getVocabularies(searchTerm, language, pageNumber, pageSize, orderBy, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @param {string} visibilityId 
+     * @param {string} _class 
+     * @param {string} [searchTerm] 
+     * @param {AcceptedLanguage} [language] 
+     * @param {number} [pageNumber] 
+     * @param {number} [pageSize] 
+     * @param {string} [orderBy] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof VisibilityApi
+     * @memberof VocabularyApi
      */
-    public getVisibility(visibilityId: string, options?: any) {
-        return VisibilityApiFp(this.configuration).getVisibility(visibilityId, options).then((request) => request(this.axios, this.basePath));
+    public getVocabularyInstances(_class: string, searchTerm?: string, language?: AcceptedLanguage, pageNumber?: number, pageSize?: number, orderBy?: string, options?: any) {
+        return VocabularyApiFp(this.configuration).getVocabularyInstances(_class, searchTerm, language, pageNumber, pageSize, orderBy, options).then((request) => request(this.axios, this.basePath));
     }
 }
 
diff --git a/src/apis.ts b/src/apis.ts
index 310259de04ec2c889c7b8cbbd9ffe45bc1d961f8..55754e1515b906e1e4fb4746c8a30ac8cb35e289 100644
--- a/src/apis.ts
+++ b/src/apis.ts
@@ -3,7 +3,8 @@ import { AxiosInstance } from 'axios';
 import { AdminApiFactory } from './Coscine.Api.Admin/api';
 import { Configuration } from './Coscine.Api.Admin/configuration';
 import { BlobApiFactory } from './Coscine.Api.Blob/api';
-import { MetadataApiFactory } from './Coscine.Api.Metadata/api';
+import { VocabularyApiFactory } from './Coscine.Api/api';
+import { ApplicationProfileApiFactory } from './Coscine.Api/api';
 import { NoticeApiFactory } from './Coscine.Api.Notices/api';
 import { OrganizationApiFactory } from './Coscine.Api.Organization/api';
 import { DisciplineApiFactory, ProjectResourceQuotaApiFactory, ProjectResourceTypeApiFactory, ResourceTypeApiFactory } from './Coscine.Api/api';
@@ -63,7 +64,8 @@ function implementations(axios?: AxiosInstance) {
     LanguageApi: LanguageApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine', axios),
     LicenseApi: LicenseApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine', axios),
     MergeApi: MergeApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.STS', axios),
-    MetadataApi: MetadataApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Metadata', axios),
+    VocabularyApi: VocabularyApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine', axios),
+    ApplicationProfileApi: ApplicationProfileApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine', axios),
     NoticeApi: NoticeApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Notices', axios),
     ORCiDApi: ORCiDApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.STS', axios),
     OrganizationApi: OrganizationApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Organization', axios),