From c7aafc151a5a485100f060f1117b8b1d0f8a0138 Mon Sep 17 00:00:00 2001
From: Petar Hristov <hristov@itc.rwth-aachen.de>
Date: Mon, 25 Jul 2022 12:31:06 +0200
Subject: [PATCH] Update: Quota implementation

---
 src/Coscine.Api.Admin/api.ts                  | 182 ++--
 src/Coscine.Api.Admin/base.ts                 |   2 +-
 src/Coscine.Api.Admin/common.ts               |   2 +-
 src/Coscine.Api.Admin/configuration.ts        |   2 +-
 src/Coscine.Api.Admin/index.ts                |   2 +-
 src/Coscine.Api.Blob/api.ts                   |  72 +-
 src/Coscine.Api.Blob/base.ts                  |   2 +-
 src/Coscine.Api.Blob/common.ts                |   2 +-
 src/Coscine.Api.Blob/configuration.ts         |   2 +-
 src/Coscine.Api.Blob/index.ts                 |   2 +-
 src/Coscine.Api.Project/api.ts                | 851 ++++++++++--------
 src/Coscine.Api.Project/base.ts               |   2 +-
 src/Coscine.Api.Project/common.ts             |   2 +-
 src/Coscine.Api.Project/configuration.ts      |   2 +-
 src/Coscine.Api.Project/index.ts              |   2 +-
 src/Coscine.Api.Quota/.gitignore              |   4 -
 src/Coscine.Api.Quota/.npmignore              |   1 -
 .../.openapi-generator-ignore                 |  23 -
 .../.openapi-generator/FILES                  |   9 -
 .../.openapi-generator/VERSION                |   1 -
 src/Coscine.Api.Quota/api.ts                  | 338 -------
 src/Coscine.Api.Quota/base.ts                 |  71 --
 src/Coscine.Api.Quota/common.ts               | 138 ---
 src/Coscine.Api.Quota/configuration.ts        | 101 ---
 src/Coscine.Api.Quota/index.ts                |  18 -
 src/Coscine.Api.Resources/api.ts              | 371 +++++++-
 src/Coscine.Api.Resources/base.ts             |   2 +-
 src/Coscine.Api.Resources/common.ts           |   2 +-
 src/Coscine.Api.Resources/configuration.ts    |   2 +-
 src/Coscine.Api.Resources/index.ts            |   2 +-
 src/Coscine.Api.Tree/api.ts                   |   2 +-
 src/Coscine.Api.Tree/base.ts                  |   4 +-
 src/Coscine.Api.Tree/common.ts                |   2 +-
 src/Coscine.Api.Tree/configuration.ts         |   2 +-
 src/Coscine.Api.Tree/index.ts                 |   2 +-
 src/Coscine.Api.User/api.ts                   |   2 +-
 src/Coscine.Api.User/base.ts                  |   2 +-
 src/Coscine.Api.User/common.ts                |   2 +-
 src/Coscine.Api.User/configuration.ts         |   2 +-
 src/Coscine.Api.User/index.ts                 |   2 +-
 src/apis.ts                                   |   6 +-
 src/index.ts                                  |   3 +-
 yarn.lock-workspace                           | 845 ++++++++++-------
 43 files changed, 1430 insertions(+), 1658 deletions(-)
 delete mode 100644 src/Coscine.Api.Quota/.gitignore
 delete mode 100644 src/Coscine.Api.Quota/.npmignore
 delete mode 100644 src/Coscine.Api.Quota/.openapi-generator-ignore
 delete mode 100644 src/Coscine.Api.Quota/.openapi-generator/FILES
 delete mode 100644 src/Coscine.Api.Quota/.openapi-generator/VERSION
 delete mode 100644 src/Coscine.Api.Quota/api.ts
 delete mode 100644 src/Coscine.Api.Quota/base.ts
 delete mode 100644 src/Coscine.Api.Quota/common.ts
 delete mode 100644 src/Coscine.Api.Quota/configuration.ts
 delete mode 100644 src/Coscine.Api.Quota/index.ts

diff --git a/src/Coscine.Api.Admin/api.ts b/src/Coscine.Api.Admin/api.ts
index 4080fd7..252aff8 100644
--- a/src/Coscine.Api.Admin/api.ts
+++ b/src/Coscine.Api.Admin/api.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Admin
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.5.4
+ * The version of the OpenAPI document: 2.6.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -24,77 +24,111 @@ import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } fr
 /**
  * Retuned when searching for a project. Contains basic informations and quotas.
  * @export
- * @interface ProjectObject
+ * @interface AdminProjectObject
  */
-export interface ProjectObject {
+export interface AdminProjectObject {
     /**
-     * Projectname (full project name)
+     * Project Id
      * @type {string}
-     * @memberof ProjectObject
+     * @memberof AdminProjectObject
      */
-    name?: string | null;
+    id?: string;
     /**
-     * Shortname (display name)
+     * Project Name (full project name)
      * @type {string}
-     * @memberof ProjectObject
+     * @memberof AdminProjectObject
      */
-    shortName?: string | null;
+    projectName?: string | null;
     /**
-     * GUID (project id)
+     * Project Display Name
      * @type {string}
-     * @memberof ProjectObject
+     * @memberof AdminProjectObject
      */
-    guid?: string;
+    displayName?: string | null;
     /**
-     * List of the project quotas (ProjectQuotaObject)
-     * @type {Array<ProjectQuotaObject>}
-     * @memberof ProjectObject
+     * List of the admin quotas (AdminQuotaReturnObject)
+     * @type {Array<AdminQuotaReturnObject>}
+     * @memberof AdminProjectObject
      */
-    quotas?: Array<ProjectQuotaObject> | null;
+    quotas?: Array<AdminQuotaReturnObject> | null;
 }
 /**
- * Returned when searching for a project, as part of the ProjectQbect. Contains quota informations.
+ * Returned when searching for a project, as part of the AdminProjectObject. Contains quota informations.
  * @export
- * @interface ProjectQuotaObject
+ * @interface AdminQuotaReturnObject
  */
-export interface ProjectQuotaObject {
+export interface AdminQuotaReturnObject {
     /**
-     * Id of the quota.
+     * Quota relation id (See Database, Table \'ProjectQuotas\', Column \'RelationId\').
      * @type {string}
-     * @memberof ProjectQuotaObject
+     * @memberof AdminQuotaReturnObject
      */
-    quotaId?: string;
+    relationId?: string;
     /**
-     * Which resourceType the quota is referencing.
+     * Which resource type the quota is referring to.
      * @type {string}
-     * @memberof ProjectQuotaObject
+     * @memberof AdminQuotaReturnObject
      */
     resourceType?: string | null;
     /**
-     * The quota value.
-     * @type {number}
-     * @memberof ProjectQuotaObject
+     * How much space is used by all files in all resources in total [Bytes].
+     * @type {QuotaDimObject}
+     * @memberof AdminQuotaReturnObject
      */
-    quota?: number;
+    totalUsed?: QuotaDimObject | null;
     /**
-     * The MaxQuota value.
-     * @type {number}
-     * @memberof ProjectQuotaObject
+     * How much space is reserved by resources in total [GiB]. Is equal to the sum of all resource quota reserved values.
+     * @type {QuotaDimObject}
+     * @memberof AdminQuotaReturnObject
      */
-    maxQuota?: number;
+    totalReserved?: QuotaDimObject | null;
     /**
-     * How much space is used by the resource (rounded up and in gb).
-     * @type {number}
-     * @memberof ProjectQuotaObject
+     * How much space is currently allocated and is available to be taken by resources [GiB] (See Database, Table \'ProjectQuotas\', Column \'Quota\').
+     * @type {QuotaDimObject}
+     * @memberof AdminQuotaReturnObject
      */
-    used?: number | null;
+    allocated?: QuotaDimObject | null;
     /**
-     * How much space is availabe to be taken by resource (in gb).
+     * How much maximum space is possible to be taken by resources [GiB] (See Database, Table \'ProjectQuotas\', Column \'MaxQuota\').
+     * @type {QuotaDimObject}
+     * @memberof AdminQuotaReturnObject
+     */
+    maximum?: QuotaDimObject | null;
+}
+/**
+ * 
+ * @export
+ * @interface QuotaDimObject
+ */
+export interface QuotaDimObject {
+    /**
+     * 
      * @type {number}
-     * @memberof ProjectQuotaObject
+     * @memberof QuotaDimObject
      */
-    allocated?: number | null;
+    value?: number;
+    /**
+     * 
+     * @type {QuotaUnit}
+     * @memberof QuotaDimObject
+     */
+    unit?: QuotaUnit;
+}
+/**
+ * 
+ * @export
+ * @enum {string}
+ */
+
+export enum QuotaUnit {
+    Byte = 'https://qudt.org/vocab/unit/BYTE',
+    KibiByte = 'https://qudt.org/vocab/unit/KibiBYTE',
+    MebiByte = 'https://qudt.org/vocab/unit/MebiBYTE',
+    GibiByte = 'https://qudt.org/vocab/unit/GibiBYTE',
+    TebiByte = 'https://qudt.org/vocab/unit/TebiBYTE',
+    PebiByte = 'https://qudt.org/vocab/unit/PebiBYTE'
 }
+
 /**
  * Data send to update the project quota.
  * @export
@@ -102,17 +136,11 @@ export interface ProjectQuotaObject {
  */
 export interface UpdateQuotaParameterObject {
     /**
-     * The id (Guid) of the quota.
-     * @type {string}
-     * @memberof UpdateQuotaParameterObject
-     */
-    quotaId?: string;
-    /**
-     * The new quota value.
+     * The new maximum project quota value.
      * @type {number}
      * @memberof UpdateQuotaParameterObject
      */
-    quota?: number;
+    maximumGiB?: number;
 }
 
 /**
@@ -124,7 +152,7 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration
         /**
          * 
          * @summary Find the project related to the projectString(GUID or slug)
-         * @param {string} projectString Either the id (GUID) of the project or the slug.
+         * @param {string} projectString The project id (GUID) or slug (from URL).
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -160,15 +188,23 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration
         },
         /**
          * 
-         * @summary Update the project quota
-         * @param {UpdateQuotaParameterObject} updateQuotaParameterObject JSON object for updating quota.
+         * @summary Update a project maximum and allocated quota
+         * @param {string} projectId Id of the project
+         * @param {string} resourceTypeId Id of the resource type
+         * @param {UpdateQuotaParameterObject} updateQuotaParameterObject JSON object for updating the project maximum and allocated quota.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        adminUpdateQuota: async (updateQuotaParameterObject: UpdateQuotaParameterObject, options: any = {}): Promise<RequestArgs> => {
+        adminUpdateQuota: async (projectId: string, resourceTypeId: string, updateQuotaParameterObject: UpdateQuotaParameterObject, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'projectId' is not null or undefined
+            assertParamExists('adminUpdateQuota', 'projectId', projectId)
+            // verify required parameter 'resourceTypeId' is not null or undefined
+            assertParamExists('adminUpdateQuota', 'resourceTypeId', resourceTypeId)
             // verify required parameter 'updateQuotaParameterObject' is not null or undefined
             assertParamExists('adminUpdateQuota', 'updateQuotaParameterObject', updateQuotaParameterObject)
-            const localVarPath = `/Admin`;
+            const localVarPath = `/Admin/{projectId}/{resourceTypeId}`
+                .replace(`{${"projectId"}}`, encodeURIComponent(String(projectId)))
+                .replace(`{${"resourceTypeId"}}`, encodeURIComponent(String(resourceTypeId)));
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
             let baseOptions;
@@ -176,7 +212,7 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration
                 baseOptions = configuration.baseOptions;
             }
 
-            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
+            const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
             const localVarHeaderParameter = {} as any;
             const localVarQueryParameter = {} as any;
 
@@ -210,23 +246,25 @@ export const AdminApiFp = function(configuration?: Configuration) {
         /**
          * 
          * @summary Find the project related to the projectString(GUID or slug)
-         * @param {string} projectString Either the id (GUID) of the project or the slug.
+         * @param {string} projectString The project id (GUID) or slug (from URL).
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async adminGetProject(projectString: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProjectObject>> {
+        async adminGetProject(projectString: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AdminProjectObject>> {
             const localVarAxiosArgs = await localVarAxiosParamCreator.adminGetProject(projectString, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
         /**
          * 
-         * @summary Update the project quota
-         * @param {UpdateQuotaParameterObject} updateQuotaParameterObject JSON object for updating quota.
+         * @summary Update a project maximum and allocated quota
+         * @param {string} projectId Id of the project
+         * @param {string} resourceTypeId Id of the resource type
+         * @param {UpdateQuotaParameterObject} updateQuotaParameterObject JSON object for updating the project maximum and allocated quota.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async adminUpdateQuota(updateQuotaParameterObject: UpdateQuotaParameterObject, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.adminUpdateQuota(updateQuotaParameterObject, options);
+        async adminUpdateQuota(projectId: string, resourceTypeId: string, updateQuotaParameterObject: UpdateQuotaParameterObject, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.adminUpdateQuota(projectId, resourceTypeId, updateQuotaParameterObject, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
     }
@@ -242,22 +280,24 @@ export const AdminApiFactory = function (configuration?: Configuration, basePath
         /**
          * 
          * @summary Find the project related to the projectString(GUID or slug)
-         * @param {string} projectString Either the id (GUID) of the project or the slug.
+         * @param {string} projectString The project id (GUID) or slug (from URL).
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        adminGetProject(projectString: string, options?: any): AxiosPromise<ProjectObject> {
+        adminGetProject(projectString: string, options?: any): AxiosPromise<AdminProjectObject> {
             return localVarFp.adminGetProject(projectString, options).then((request) => request(axios, basePath));
         },
         /**
          * 
-         * @summary Update the project quota
-         * @param {UpdateQuotaParameterObject} updateQuotaParameterObject JSON object for updating quota.
+         * @summary Update a project maximum and allocated quota
+         * @param {string} projectId Id of the project
+         * @param {string} resourceTypeId Id of the resource type
+         * @param {UpdateQuotaParameterObject} updateQuotaParameterObject JSON object for updating the project maximum and allocated quota.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        adminUpdateQuota(updateQuotaParameterObject: UpdateQuotaParameterObject, options?: any): AxiosPromise<any> {
-            return localVarFp.adminUpdateQuota(updateQuotaParameterObject, options).then((request) => request(axios, basePath));
+        adminUpdateQuota(projectId: string, resourceTypeId: string, updateQuotaParameterObject: UpdateQuotaParameterObject, options?: any): AxiosPromise<any> {
+            return localVarFp.adminUpdateQuota(projectId, resourceTypeId, updateQuotaParameterObject, options).then((request) => request(axios, basePath));
         },
     };
 };
@@ -272,7 +312,7 @@ export class AdminApi extends BaseAPI {
     /**
      * 
      * @summary Find the project related to the projectString(GUID or slug)
-     * @param {string} projectString Either the id (GUID) of the project or the slug.
+     * @param {string} projectString The project id (GUID) or slug (from URL).
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof AdminApi
@@ -283,14 +323,16 @@ export class AdminApi extends BaseAPI {
 
     /**
      * 
-     * @summary Update the project quota
-     * @param {UpdateQuotaParameterObject} updateQuotaParameterObject JSON object for updating quota.
+     * @summary Update a project maximum and allocated quota
+     * @param {string} projectId Id of the project
+     * @param {string} resourceTypeId Id of the resource type
+     * @param {UpdateQuotaParameterObject} updateQuotaParameterObject JSON object for updating the project maximum and allocated quota.
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof AdminApi
      */
-    public adminUpdateQuota(updateQuotaParameterObject: UpdateQuotaParameterObject, options?: any) {
-        return AdminApiFp(this.configuration).adminUpdateQuota(updateQuotaParameterObject, options).then((request) => request(this.axios, this.basePath));
+    public adminUpdateQuota(projectId: string, resourceTypeId: string, updateQuotaParameterObject: UpdateQuotaParameterObject, options?: any) {
+        return AdminApiFp(this.configuration).adminUpdateQuota(projectId, resourceTypeId, updateQuotaParameterObject, options).then((request) => request(this.axios, this.basePath));
     }
 }
 
diff --git a/src/Coscine.Api.Admin/base.ts b/src/Coscine.Api.Admin/base.ts
index 41989ac..99d802c 100644
--- a/src/Coscine.Api.Admin/base.ts
+++ b/src/Coscine.Api.Admin/base.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Admin
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.5.4
+ * The version of the OpenAPI document: 2.6.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Admin/common.ts b/src/Coscine.Api.Admin/common.ts
index 9e599f7..c14fae6 100644
--- a/src/Coscine.Api.Admin/common.ts
+++ b/src/Coscine.Api.Admin/common.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Admin
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.5.4
+ * The version of the OpenAPI document: 2.6.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Admin/configuration.ts b/src/Coscine.Api.Admin/configuration.ts
index f6db7cd..e26dcec 100644
--- a/src/Coscine.Api.Admin/configuration.ts
+++ b/src/Coscine.Api.Admin/configuration.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Admin
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.5.4
+ * The version of the OpenAPI document: 2.6.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Admin/index.ts b/src/Coscine.Api.Admin/index.ts
index 4287d28..f199038 100644
--- a/src/Coscine.Api.Admin/index.ts
+++ b/src/Coscine.Api.Admin/index.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Admin
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.5.4
+ * The version of the OpenAPI document: 2.6.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Blob/api.ts b/src/Coscine.Api.Blob/api.ts
index f1d63a9..b39a57b 100644
--- a/src/Coscine.Api.Blob/api.ts
+++ b/src/Coscine.Api.Blob/api.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Blob
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.7.0
+ * The version of the OpenAPI document: 2.8.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -103,43 +103,6 @@ export const BlobApiAxiosParamCreator = function (configuration?: 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,
-            };
-        },
-        /**
-         * 
-         * @summary This method returns the amount of allocated space for the given resource
-         * @param {string} resourceId Id of a resource
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        blobGetQuota: async (resourceId: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'resourceId' is not null or undefined
-            assertParamExists('blobGetQuota', 'resourceId', resourceId)
-            const localVarPath = `/Blob/{resourceId}/quota`
-                .replace(`{${"resourceId"}}`, encodeURIComponent(String(resourceId)));
-            // 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 JWT token required
-            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
-
-
-    
             setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
             let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
             localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -236,17 +199,6 @@ export const BlobApiFp = function(configuration?: Configuration) {
             const localVarAxiosArgs = await localVarAxiosParamCreator.blobGetFileWithParameter(resourceId, path, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
-        /**
-         * 
-         * @summary This method returns the amount of allocated space for the given resource
-         * @param {string} resourceId Id of a resource
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async blobGetQuota(resourceId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.blobGetQuota(resourceId, options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
         /**
          * 
          * @summary This method uploads a given File
@@ -292,16 +244,6 @@ export const BlobApiFactory = function (configuration?: Configuration, basePath?
         blobGetFileWithParameter(resourceId: string, path?: string, options?: any): AxiosPromise<any> {
             return localVarFp.blobGetFileWithParameter(resourceId, path, options).then((request) => request(axios, basePath));
         },
-        /**
-         * 
-         * @summary This method returns the amount of allocated space for the given resource
-         * @param {string} resourceId Id of a resource
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        blobGetQuota(resourceId: string, options?: any): AxiosPromise<any> {
-            return localVarFp.blobGetQuota(resourceId, options).then((request) => request(axios, basePath));
-        },
         /**
          * 
          * @summary This method uploads a given File
@@ -350,18 +292,6 @@ export class BlobApi extends BaseAPI {
         return BlobApiFp(this.configuration).blobGetFileWithParameter(resourceId, path, options).then((request) => request(this.axios, this.basePath));
     }
 
-    /**
-     * 
-     * @summary This method returns the amount of allocated space for the given resource
-     * @param {string} resourceId Id of a resource
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof BlobApi
-     */
-    public blobGetQuota(resourceId: string, options?: any) {
-        return BlobApiFp(this.configuration).blobGetQuota(resourceId, options).then((request) => request(this.axios, this.basePath));
-    }
-
     /**
      * 
      * @summary This method uploads a given File
diff --git a/src/Coscine.Api.Blob/base.ts b/src/Coscine.Api.Blob/base.ts
index 0461bf3..2b5a8e3 100644
--- a/src/Coscine.Api.Blob/base.ts
+++ b/src/Coscine.Api.Blob/base.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Blob
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.7.0
+ * The version of the OpenAPI document: 2.8.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Blob/common.ts b/src/Coscine.Api.Blob/common.ts
index dd68541..930f0f2 100644
--- a/src/Coscine.Api.Blob/common.ts
+++ b/src/Coscine.Api.Blob/common.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Blob
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.7.0
+ * The version of the OpenAPI document: 2.8.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Blob/configuration.ts b/src/Coscine.Api.Blob/configuration.ts
index 1997b7a..2ce9d2e 100644
--- a/src/Coscine.Api.Blob/configuration.ts
+++ b/src/Coscine.Api.Blob/configuration.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Blob
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.7.0
+ * The version of the OpenAPI document: 2.8.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Blob/index.ts b/src/Coscine.Api.Blob/index.ts
index c9f3c04..559d12a 100644
--- a/src/Coscine.Api.Blob/index.ts
+++ b/src/Coscine.Api.Blob/index.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Blob
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.7.0
+ * The version of the OpenAPI document: 2.8.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Project/api.ts b/src/Coscine.Api.Project/api.ts
index 704da67..bfcce2c 100644
--- a/src/Coscine.Api.Project/api.ts
+++ b/src/Coscine.Api.Project/api.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Project
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.8.4
+ * The version of the OpenAPI document: 3.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -72,43 +72,43 @@ export interface ExternalAuthenticatorsObject {
     displayName?: string | null;
 }
 /**
- * Return object for an invitation.
+ * 
  * @export
  * @interface InvitationReturnObject
  */
 export interface InvitationReturnObject {
     /**
-     * The invitation id.
+     * 
      * @type {string}
      * @memberof InvitationReturnObject
      */
     id?: string;
     /**
-     * When the invite will expire.
+     * 
      * @type {string}
      * @memberof InvitationReturnObject
      */
     expiration?: string;
     /**
-     * Email of the invitee.
+     * 
      * @type {string}
      * @memberof InvitationReturnObject
      */
     userMail?: string | null;
     /**
-     * Id of the issuer.
+     * 
      * @type {string}
      * @memberof InvitationReturnObject
      */
     issuer?: string;
     /**
-     * Id of the project.
+     * 
      * @type {string}
      * @memberof InvitationReturnObject
      */
     projectId?: string;
     /**
-     * Id of the target Role.
+     * 
      * @type {string}
      * @memberof InvitationReturnObject
      */
@@ -158,25 +158,6 @@ export interface LicenseObject {
      */
     displayName?: string | null;
 }
-/**
- * Return object containing the maximum project quota.
- * @export
- * @interface MaxProjectQuota
- */
-export interface MaxProjectQuota {
-    /**
-     * The resource type id.
-     * @type {string}
-     * @memberof MaxProjectQuota
-     */
-    id?: string;
-    /**
-     * Available amount in gb.
-     * @type {number}
-     * @memberof MaxProjectQuota
-     */
-    available?: number;
-}
 /**
  * 
  * @export
@@ -288,41 +269,84 @@ export interface ProjectObject {
     parentId?: string;
 }
 /**
- * Contains information about the quota of a project by resource type.
+ * 
+ * @export
+ * @interface ProjectQuotaExtendedReturnObject
+ */
+export interface ProjectQuotaExtendedReturnObject {
+    /**
+     * 
+     * @type {string}
+     * @memberof ProjectQuotaExtendedReturnObject
+     */
+    id?: string;
+    /**
+     * 
+     * @type {string}
+     * @memberof ProjectQuotaExtendedReturnObject
+     */
+    name?: string | null;
+    /**
+     * 
+     * @type {QuotaDimObject}
+     * @memberof ProjectQuotaExtendedReturnObject
+     */
+    totalReserved?: QuotaDimObject | null;
+    /**
+     * 
+     * @type {QuotaDimObject}
+     * @memberof ProjectQuotaExtendedReturnObject
+     */
+    allocated?: QuotaDimObject | null;
+    /**
+     * 
+     * @type {QuotaDimObject}
+     * @memberof ProjectQuotaExtendedReturnObject
+     */
+    maximum?: QuotaDimObject | null;
+    /**
+     * 
+     * @type {Array<ResourceQuotaReturnObject>}
+     * @memberof ProjectQuotaExtendedReturnObject
+     */
+    resourcesQuota?: Array<ResourceQuotaReturnObject> | null;
+}
+/**
+ * 
  * @export
  * @interface ProjectQuotaReturnObject
  */
 export interface ProjectQuotaReturnObject {
     /**
-     * Id of the resoure type.
+     * 
      * @type {string}
      * @memberof ProjectQuotaReturnObject
      */
     id?: string;
     /**
-     * Display name of the resource type.
+     * 
      * @type {string}
      * @memberof ProjectQuotaReturnObject
      */
     name?: string | null;
     /**
-     * How much space is used by the resources (in gb).
-     * @type {number}
+     * 
+     * @type {QuotaDimObject}
      * @memberof ProjectQuotaReturnObject
      */
-    used?: number;
+    totalReserved?: QuotaDimObject | null;
     /**
-     * How much space is availabe to be taken by resources (in gb).
-     * @type {number}
+     * 
+     * @type {QuotaDimObject}
      * @memberof ProjectQuotaReturnObject
      */
-    allocated?: number;
+    allocated?: QuotaDimObject | null;
     /**
-     * Maximum amount of quota (in gb).
-     * @type {number}
+     * 
+     * @type {QuotaDimObject}
      * @memberof ProjectQuotaReturnObject
      */
-    maximum?: number;
+    maximum?: QuotaDimObject | null;
 }
 /**
  * 
@@ -349,6 +373,40 @@ export interface ProjectRoleObject {
      */
     role?: RoleObject | null;
 }
+/**
+ * 
+ * @export
+ * @interface QuotaDimObject
+ */
+export interface QuotaDimObject {
+    /**
+     * 
+     * @type {number}
+     * @memberof QuotaDimObject
+     */
+    value?: number;
+    /**
+     * 
+     * @type {QuotaUnit}
+     * @memberof QuotaDimObject
+     */
+    unit?: QuotaUnit;
+}
+/**
+ * 
+ * @export
+ * @enum {string}
+ */
+
+export enum QuotaUnit {
+    Byte = 'https://qudt.org/vocab/unit/BYTE',
+    KibiByte = 'https://qudt.org/vocab/unit/KibiBYTE',
+    MebiByte = 'https://qudt.org/vocab/unit/MebiBYTE',
+    GibiByte = 'https://qudt.org/vocab/unit/GibiBYTE',
+    TebiByte = 'https://qudt.org/vocab/unit/TebiBYTE',
+    PebiByte = 'https://qudt.org/vocab/unit/PebiBYTE'
+}
+
 /**
  * 
  * @export
@@ -452,6 +510,43 @@ export interface ResourceObject {
      */
     archived?: boolean;
 }
+/**
+ * 
+ * @export
+ * @interface ResourceQuotaReturnObject
+ */
+export interface ResourceQuotaReturnObject {
+    /**
+     * 
+     * @type {string}
+     * @memberof ResourceQuotaReturnObject
+     */
+    id?: string;
+    /**
+     * 
+     * @type {string}
+     * @memberof ResourceQuotaReturnObject
+     */
+    name?: string | null;
+    /**
+     * 
+     * @type {QuotaDimObject}
+     * @memberof ResourceQuotaReturnObject
+     */
+    used?: QuotaDimObject | null;
+    /**
+     * 
+     * @type {number}
+     * @memberof ResourceQuotaReturnObject
+     */
+    usedPercentage?: number;
+    /**
+     * 
+     * @type {QuotaDimObject}
+     * @memberof ResourceQuotaReturnObject
+     */
+    reserved?: QuotaDimObject | null;
+}
 /**
  * 
  * @export
@@ -541,17 +636,11 @@ export interface TitleObject {
  */
 export interface UpdateProjectQuotaObject {
     /**
-     * Id of the resourceType             
-     * @type {string}
-     * @memberof UpdateProjectQuotaObject
-     */
-    id?: string;
-    /**
-     * New Quota value.
+     * New quota that will be the current allocated value.
      * @type {number}
      * @memberof UpdateProjectQuotaObject
      */
-    allocated?: number;
+    allocatedGiB?: number;
 }
 /**
  * 
@@ -905,7 +994,7 @@ export const ProjectApiAxiosParamCreator = function (configuration?: Configurati
         },
         /**
          * 
-         * @summary Deletes the selected project
+         * @summary Deletes a project
          * @param {string} id Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1053,48 +1142,7 @@ export const ProjectApiAxiosParamCreator = function (configuration?: Configurati
         },
         /**
          * 
-         * @summary Get the max quota for a resource type.
-         * @param {string} id Id of the project.
-         * @param {string} resourceTypeId Id of the resource
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        projectGetQuotaMax: async (id: string, resourceTypeId: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'id' is not null or undefined
-            assertParamExists('projectGetQuotaMax', 'id', id)
-            // verify required parameter 'resourceTypeId' is not null or undefined
-            assertParamExists('projectGetQuotaMax', 'resourceTypeId', resourceTypeId)
-            const localVarPath = `/Project/{id}/quota/{resourceTypeId}/max`
-                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
-                .replace(`{${"resourceTypeId"}}`, encodeURIComponent(String(resourceTypeId)));
-            // 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 JWT token 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,
-            };
-        },
-        /**
-         * 
-         * @summary Gets the resources
+         * @summary Gets all resources in a project
          * @param {string} id Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1234,85 +1282,7 @@ export const ProjectApiAxiosParamCreator = function (configuration?: Configurati
         },
         /**
          * 
-         * @summary Retrieves the quota for the selected project and resource Type.
-         * @param {string} id Id of the project
-         * @param {string} resourceTypeId Id of the resource type
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        projectQuota: async (id: string, resourceTypeId: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'id' is not null or undefined
-            assertParamExists('projectQuota', 'id', id)
-            // verify required parameter 'resourceTypeId' is not null or undefined
-            assertParamExists('projectQuota', 'resourceTypeId', resourceTypeId)
-            const localVarPath = `/Project/{id}/quota/{resourceTypeId}`
-                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
-                .replace(`{${"resourceTypeId"}}`, encodeURIComponent(String(resourceTypeId)));
-            // 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 JWT token 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,
-            };
-        },
-        /**
-         * 
-         * @summary Retrieves the quota for the selected project.
-         * @param {string} id Id of the project
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        projectQuotas: async (id: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'id' is not null or undefined
-            assertParamExists('projectQuotas', 'id', id)
-            const localVarPath = `/Project/{id}/quota/-/all`
-                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
-            // 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 JWT token 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,
-            };
-        },
-        /**
-         * 
-         * @summary Resolve a project invitation for the current user.
+         * @summary Resolves a project invitation for the current user.
          * @param {string} invitationToken Token for a project invitation stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1349,7 +1319,7 @@ export const ProjectApiAxiosParamCreator = function (configuration?: Configurati
         },
         /**
          * 
-         * @summary Create and send a project invitation to a specified mail.
+         * @summary Creates and sends a project invitation to a specified email.
          * @param {SendInvitationObject} sendInvitationObject Informations for sending an invitation. The invitation token is stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1427,7 +1397,7 @@ export const ProjectApiAxiosParamCreator = function (configuration?: Configurati
         },
         /**
          * 
-         * @summary Updates the selected project
+         * @summary Updates a project
          * @param {string} id Id of the project
          * @param {ProjectObject} projectObject A Project Object
          * @param {*} [options] Override http request option.
@@ -1463,53 +1433,6 @@ export const ProjectApiAxiosParamCreator = function (configuration?: Configurati
             localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
             localVarRequestOptions.data = serializeDataIfNeeded(projectObject, localVarRequestOptions, configuration)
 
-            return {
-                url: toPathString(localVarUrlObj),
-                options: localVarRequestOptions,
-            };
-        },
-        /**
-         * 
-         * @summary Update the project quota.
-         * @param {string} id Id of the project.
-         * @param {string} resourceTypeId Id of the resource.
-         * @param {UpdateProjectQuotaObject} updateProjectQuotaObject Object containing the update values.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        projectUpdateQuota: async (id: string, resourceTypeId: string, updateProjectQuotaObject: UpdateProjectQuotaObject, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'id' is not null or undefined
-            assertParamExists('projectUpdateQuota', 'id', id)
-            // verify required parameter 'resourceTypeId' is not null or undefined
-            assertParamExists('projectUpdateQuota', 'resourceTypeId', resourceTypeId)
-            // verify required parameter 'updateProjectQuotaObject' is not null or undefined
-            assertParamExists('projectUpdateQuota', 'updateProjectQuotaObject', updateProjectQuotaObject)
-            const localVarPath = `/Project/{id}/quota/{resourceTypeId}`
-                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
-                .replace(`{${"resourceTypeId"}}`, encodeURIComponent(String(resourceTypeId)));
-            // 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 JWT token 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(updateProjectQuotaObject, localVarRequestOptions, configuration)
-
             return {
                 url: toPathString(localVarUrlObj),
                 options: localVarRequestOptions,
@@ -1538,7 +1461,7 @@ export const ProjectApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary Deletes the selected project
+         * @summary Deletes a project
          * @param {string} id Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1582,19 +1505,7 @@ export const ProjectApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary Get the max quota for a resource type.
-         * @param {string} id Id of the project.
-         * @param {string} resourceTypeId Id of the resource
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async projectGetQuotaMax(id: string, resourceTypeId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MaxProjectQuota>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.projectGetQuotaMax(id, resourceTypeId, options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
-        /**
-         * 
-         * @summary Gets the resources
+         * @summary Gets all resources in a project
          * @param {string} id Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1636,31 +1547,8 @@ export const ProjectApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary Retrieves the quota for the selected project and resource Type.
-         * @param {string} id Id of the project
-         * @param {string} resourceTypeId Id of the resource type
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async projectQuota(id: string, resourceTypeId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProjectQuotaReturnObject>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.projectQuota(id, resourceTypeId, options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
-        /**
-         * 
-         * @summary Retrieves the quota for the selected project.
-         * @param {string} id Id of the project
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async projectQuotas(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<ProjectQuotaReturnObject>>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.projectQuotas(id, options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
-        /**
-         * 
-         * @summary Resolve a project invitation for the current user.
-         * @param {string} invitationToken Token for a project invitation stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;
+         * @summary Resolves a project invitation for the current user.
+         * @param {string} invitationToken Token for a project invitation stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -1670,7 +1558,7 @@ export const ProjectApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary Create and send a project invitation to a specified mail.
+         * @summary Creates and sends a project invitation to a specified email.
          * @param {SendInvitationObject} sendInvitationObject Informations for sending an invitation. The invitation token is stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1692,7 +1580,7 @@ export const ProjectApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary Updates the selected project
+         * @summary Updates a project
          * @param {string} id Id of the project
          * @param {ProjectObject} projectObject A Project Object
          * @param {*} [options] Override http request option.
@@ -1702,19 +1590,6 @@ export const ProjectApiFp = function(configuration?: Configuration) {
             const localVarAxiosArgs = await localVarAxiosParamCreator.projectUpdate(id, projectObject, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
-        /**
-         * 
-         * @summary Update the project quota.
-         * @param {string} id Id of the project.
-         * @param {string} resourceTypeId Id of the resource.
-         * @param {UpdateProjectQuotaObject} updateProjectQuotaObject Object containing the update values.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async projectUpdateQuota(id: string, resourceTypeId: string, updateProjectQuotaObject: UpdateProjectQuotaObject, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.projectUpdateQuota(id, resourceTypeId, updateProjectQuotaObject, options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
     }
 };
 
@@ -1737,7 +1612,7 @@ export const ProjectApiFactory = function (configuration?: Configuration, basePa
         },
         /**
          * 
-         * @summary Deletes the selected project
+         * @summary Deletes a project
          * @param {string} id Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1777,18 +1652,7 @@ export const ProjectApiFactory = function (configuration?: Configuration, basePa
         },
         /**
          * 
-         * @summary Get the max quota for a resource type.
-         * @param {string} id Id of the project.
-         * @param {string} resourceTypeId Id of the resource
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        projectGetQuotaMax(id: string, resourceTypeId: string, options?: any): AxiosPromise<MaxProjectQuota> {
-            return localVarFp.projectGetQuotaMax(id, resourceTypeId, options).then((request) => request(axios, basePath));
-        },
-        /**
-         * 
-         * @summary Gets the resources
+         * @summary Gets all resources in a project
          * @param {string} id Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1826,28 +1690,7 @@ export const ProjectApiFactory = function (configuration?: Configuration, basePa
         },
         /**
          * 
-         * @summary Retrieves the quota for the selected project and resource Type.
-         * @param {string} id Id of the project
-         * @param {string} resourceTypeId Id of the resource type
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        projectQuota(id: string, resourceTypeId: string, options?: any): AxiosPromise<ProjectQuotaReturnObject> {
-            return localVarFp.projectQuota(id, resourceTypeId, options).then((request) => request(axios, basePath));
-        },
-        /**
-         * 
-         * @summary Retrieves the quota for the selected project.
-         * @param {string} id Id of the project
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        projectQuotas(id: string, options?: any): AxiosPromise<Array<ProjectQuotaReturnObject>> {
-            return localVarFp.projectQuotas(id, options).then((request) => request(axios, basePath));
-        },
-        /**
-         * 
-         * @summary Resolve a project invitation for the current user.
+         * @summary Resolves a project invitation for the current user.
          * @param {string} invitationToken Token for a project invitation stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1857,7 +1700,7 @@ export const ProjectApiFactory = function (configuration?: Configuration, basePa
         },
         /**
          * 
-         * @summary Create and send a project invitation to a specified mail.
+         * @summary Creates and sends a project invitation to a specified email.
          * @param {SendInvitationObject} sendInvitationObject Informations for sending an invitation. The invitation token is stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -1877,7 +1720,7 @@ export const ProjectApiFactory = function (configuration?: Configuration, basePa
         },
         /**
          * 
-         * @summary Updates the selected project
+         * @summary Updates a project
          * @param {string} id Id of the project
          * @param {ProjectObject} projectObject A Project Object
          * @param {*} [options] Override http request option.
@@ -1886,18 +1729,6 @@ export const ProjectApiFactory = function (configuration?: Configuration, basePa
         projectUpdate(id: string, projectObject: ProjectObject, options?: any): AxiosPromise<any> {
             return localVarFp.projectUpdate(id, projectObject, options).then((request) => request(axios, basePath));
         },
-        /**
-         * 
-         * @summary Update the project quota.
-         * @param {string} id Id of the project.
-         * @param {string} resourceTypeId Id of the resource.
-         * @param {UpdateProjectQuotaObject} updateProjectQuotaObject Object containing the update values.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        projectUpdateQuota(id: string, resourceTypeId: string, updateProjectQuotaObject: UpdateProjectQuotaObject, options?: any): AxiosPromise<any> {
-            return localVarFp.projectUpdateQuota(id, resourceTypeId, updateProjectQuotaObject, options).then((request) => request(axios, basePath));
-        },
     };
 };
 
@@ -1922,7 +1753,7 @@ export class ProjectApi extends BaseAPI {
 
     /**
      * 
-     * @summary Deletes the selected project
+     * @summary Deletes a project
      * @param {string} id Id of the project
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
@@ -1970,20 +1801,7 @@ export class ProjectApi extends BaseAPI {
 
     /**
      * 
-     * @summary Get the max quota for a resource type.
-     * @param {string} id Id of the project.
-     * @param {string} resourceTypeId Id of the resource
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof ProjectApi
-     */
-    public projectGetQuotaMax(id: string, resourceTypeId: string, options?: any) {
-        return ProjectApiFp(this.configuration).projectGetQuotaMax(id, resourceTypeId, options).then((request) => request(this.axios, this.basePath));
-    }
-
-    /**
-     * 
-     * @summary Gets the resources
+     * @summary Gets all resources in a project
      * @param {string} id Id of the project
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
@@ -2029,90 +1847,322 @@ export class ProjectApi extends BaseAPI {
 
     /**
      * 
-     * @summary Retrieves the quota for the selected project and resource Type.
-     * @param {string} id Id of the project
-     * @param {string} resourceTypeId Id of the resource type
+     * @summary Resolves a project invitation for the current user.
+     * @param {string} invitationToken Token for a project invitation stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof ProjectApi
      */
-    public projectQuota(id: string, resourceTypeId: string, options?: any) {
-        return ProjectApiFp(this.configuration).projectQuota(id, resourceTypeId, options).then((request) => request(this.axios, this.basePath));
+    public projectResolveInvitation(invitationToken: string, options?: any) {
+        return ProjectApiFp(this.configuration).projectResolveInvitation(invitationToken, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @summary Retrieves the quota for the selected project.
-     * @param {string} id Id of the project
+     * @summary Creates and sends a project invitation to a specified email.
+     * @param {SendInvitationObject} sendInvitationObject Informations for sending an invitation. The invitation token is stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;.
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof ProjectApi
      */
-    public projectQuotas(id: string, options?: any) {
-        return ProjectApiFp(this.configuration).projectQuotas(id, options).then((request) => request(this.axios, this.basePath));
+    public projectSendInvitation(sendInvitationObject: SendInvitationObject, options?: any) {
+        return ProjectApiFp(this.configuration).projectSendInvitation(sendInvitationObject, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @summary Resolve a project invitation for the current user.
-     * @param {string} invitationToken Token for a project invitation stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;
+     * @summary Creates a project
+     * @param {ProjectObject} projectObject A Project Object
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof ProjectApi
      */
-    public projectResolveInvitation(invitationToken: string, options?: any) {
-        return ProjectApiFp(this.configuration).projectResolveInvitation(invitationToken, options).then((request) => request(this.axios, this.basePath));
+    public projectStore(projectObject: ProjectObject, options?: any) {
+        return ProjectApiFp(this.configuration).projectStore(projectObject, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @summary Create and send a project invitation to a specified mail.
-     * @param {SendInvitationObject} sendInvitationObject Informations for sending an invitation. The invitation token is stored inside the URL under \&quot;.../?invitationToken&#x3D;{token}\&quot;.
+     * @summary Updates a project
+     * @param {string} id Id of the project
+     * @param {ProjectObject} projectObject A Project Object
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof ProjectApi
      */
-    public projectSendInvitation(sendInvitationObject: SendInvitationObject, options?: any) {
-        return ProjectApiFp(this.configuration).projectSendInvitation(sendInvitationObject, options).then((request) => request(this.axios, this.basePath));
+    public projectUpdate(id: string, projectObject: ProjectObject, options?: any) {
+        return ProjectApiFp(this.configuration).projectUpdate(id, projectObject, options).then((request) => request(this.axios, this.basePath));
+    }
+}
+
+
+/**
+ * ProjectQuotaApi - axios parameter creator
+ * @export
+ */
+export const ProjectQuotaApiAxiosParamCreator = function (configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @summary Retrieves the project quota in GiB of a resource type for the selected project together with all individual resources of this resource type.
+         * @param {string} id Id of the project
+         * @param {string} resourceTypeId Id of the resource type
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        projectQuotaQuota: async (id: string, resourceTypeId: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'id' is not null or undefined
+            assertParamExists('projectQuotaQuota', 'id', id)
+            // verify required parameter 'resourceTypeId' is not null or undefined
+            assertParamExists('projectQuotaQuota', 'resourceTypeId', resourceTypeId)
+            const localVarPath = `/ProjectQuota/{id}/{resourceTypeId}`
+                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
+                .replace(`{${"resourceTypeId"}}`, encodeURIComponent(String(resourceTypeId)));
+            // 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 JWT token 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,
+            };
+        },
+        /**
+         * 
+         * @summary Retrieves all project quotas in GiB grouped by resource type for the selected project.
+         * @param {string} id Id of the project
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        projectQuotaQuotas: async (id: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'id' is not null or undefined
+            assertParamExists('projectQuotaQuotas', 'id', id)
+            const localVarPath = `/ProjectQuota/{id}/-/all`
+                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
+            // 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 JWT token 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,
+            };
+        },
+        /**
+         * 
+         * @summary Updates the reserved project quota of a resource type for a selected poject. Quota value in GiB.
+         * @param {string} id Id of the project
+         * @param {string} resourceTypeId Id of the resource type
+         * @param {UpdateProjectQuotaObject} updateProjectQuotaObject Object containing the update values.
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        projectQuotaUpdateQuota: async (id: string, resourceTypeId: string, updateProjectQuotaObject: UpdateProjectQuotaObject, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'id' is not null or undefined
+            assertParamExists('projectQuotaUpdateQuota', 'id', id)
+            // verify required parameter 'resourceTypeId' is not null or undefined
+            assertParamExists('projectQuotaUpdateQuota', 'resourceTypeId', resourceTypeId)
+            // verify required parameter 'updateProjectQuotaObject' is not null or undefined
+            assertParamExists('projectQuotaUpdateQuota', 'updateProjectQuotaObject', updateProjectQuotaObject)
+            const localVarPath = `/ProjectQuota/{id}/{resourceTypeId}`
+                .replace(`{${"id"}}`, encodeURIComponent(String(id)))
+                .replace(`{${"resourceTypeId"}}`, encodeURIComponent(String(resourceTypeId)));
+            // 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 JWT token 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(updateProjectQuotaObject, localVarRequestOptions, configuration)
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
     }
+};
 
+/**
+ * ProjectQuotaApi - functional programming interface
+ * @export
+ */
+export const ProjectQuotaApiFp = function(configuration?: Configuration) {
+    const localVarAxiosParamCreator = ProjectQuotaApiAxiosParamCreator(configuration)
+    return {
+        /**
+         * 
+         * @summary Retrieves the project quota in GiB of a resource type for the selected project together with all individual resources of this resource type.
+         * @param {string} id Id of the project
+         * @param {string} resourceTypeId Id of the resource type
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async projectQuotaQuota(id: string, resourceTypeId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProjectQuotaExtendedReturnObject>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.projectQuotaQuota(id, resourceTypeId, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @summary Retrieves all project quotas in GiB grouped by resource type for the selected project.
+         * @param {string} id Id of the project
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async projectQuotaQuotas(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<ProjectQuotaReturnObject>>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.projectQuotaQuotas(id, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @summary Updates the reserved project quota of a resource type for a selected poject. Quota value in GiB.
+         * @param {string} id Id of the project
+         * @param {string} resourceTypeId Id of the resource type
+         * @param {UpdateProjectQuotaObject} updateProjectQuotaObject Object containing the update values.
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async projectQuotaUpdateQuota(id: string, resourceTypeId: string, updateProjectQuotaObject: UpdateProjectQuotaObject, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.projectQuotaUpdateQuota(id, resourceTypeId, updateProjectQuotaObject, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+    }
+};
+
+/**
+ * ProjectQuotaApi - factory interface
+ * @export
+ */
+export const ProjectQuotaApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    const localVarFp = ProjectQuotaApiFp(configuration)
+    return {
+        /**
+         * 
+         * @summary Retrieves the project quota in GiB of a resource type for the selected project together with all individual resources of this resource type.
+         * @param {string} id Id of the project
+         * @param {string} resourceTypeId Id of the resource type
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        projectQuotaQuota(id: string, resourceTypeId: string, options?: any): AxiosPromise<ProjectQuotaExtendedReturnObject> {
+            return localVarFp.projectQuotaQuota(id, resourceTypeId, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary Retrieves all project quotas in GiB grouped by resource type for the selected project.
+         * @param {string} id Id of the project
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        projectQuotaQuotas(id: string, options?: any): AxiosPromise<Array<ProjectQuotaReturnObject>> {
+            return localVarFp.projectQuotaQuotas(id, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary Updates the reserved project quota of a resource type for a selected poject. Quota value in GiB.
+         * @param {string} id Id of the project
+         * @param {string} resourceTypeId Id of the resource type
+         * @param {UpdateProjectQuotaObject} updateProjectQuotaObject Object containing the update values.
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        projectQuotaUpdateQuota(id: string, resourceTypeId: string, updateProjectQuotaObject: UpdateProjectQuotaObject, options?: any): AxiosPromise<any> {
+            return localVarFp.projectQuotaUpdateQuota(id, resourceTypeId, updateProjectQuotaObject, options).then((request) => request(axios, basePath));
+        },
+    };
+};
+
+/**
+ * ProjectQuotaApi - object-oriented interface
+ * @export
+ * @class ProjectQuotaApi
+ * @extends {BaseAPI}
+ */
+export class ProjectQuotaApi extends BaseAPI {
     /**
      * 
-     * @summary Creates a project
-     * @param {ProjectObject} projectObject A Project Object
+     * @summary Retrieves the project quota in GiB of a resource type for the selected project together with all individual resources of this resource type.
+     * @param {string} id Id of the project
+     * @param {string} resourceTypeId Id of the resource type
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof ProjectApi
+     * @memberof ProjectQuotaApi
      */
-    public projectStore(projectObject: ProjectObject, options?: any) {
-        return ProjectApiFp(this.configuration).projectStore(projectObject, options).then((request) => request(this.axios, this.basePath));
+    public projectQuotaQuota(id: string, resourceTypeId: string, options?: any) {
+        return ProjectQuotaApiFp(this.configuration).projectQuotaQuota(id, resourceTypeId, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @summary Updates the selected project
+     * @summary Retrieves all project quotas in GiB grouped by resource type for the selected project.
      * @param {string} id Id of the project
-     * @param {ProjectObject} projectObject A Project Object
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof ProjectApi
+     * @memberof ProjectQuotaApi
      */
-    public projectUpdate(id: string, projectObject: ProjectObject, options?: any) {
-        return ProjectApiFp(this.configuration).projectUpdate(id, projectObject, options).then((request) => request(this.axios, this.basePath));
+    public projectQuotaQuotas(id: string, options?: any) {
+        return ProjectQuotaApiFp(this.configuration).projectQuotaQuotas(id, options).then((request) => request(this.axios, this.basePath));
     }
 
     /**
      * 
-     * @summary Update the project quota.
-     * @param {string} id Id of the project.
-     * @param {string} resourceTypeId Id of the resource.
+     * @summary Updates the reserved project quota of a resource type for a selected poject. Quota value in GiB.
+     * @param {string} id Id of the project
+     * @param {string} resourceTypeId Id of the resource type
      * @param {UpdateProjectQuotaObject} updateProjectQuotaObject Object containing the update values.
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
-     * @memberof ProjectApi
+     * @memberof ProjectQuotaApi
      */
-    public projectUpdateQuota(id: string, resourceTypeId: string, updateProjectQuotaObject: UpdateProjectQuotaObject, options?: any) {
-        return ProjectApiFp(this.configuration).projectUpdateQuota(id, resourceTypeId, updateProjectQuotaObject, options).then((request) => request(this.axios, this.basePath));
+    public projectQuotaUpdateQuota(id: string, resourceTypeId: string, updateProjectQuotaObject: UpdateProjectQuotaObject, options?: any) {
+        return ProjectQuotaApiFp(this.configuration).projectQuotaUpdateQuota(id, resourceTypeId, updateProjectQuotaObject, options).then((request) => request(this.axios, this.basePath));
     }
 }
 
@@ -2125,7 +2175,7 @@ export const ProjectRoleApiAxiosParamCreator = function (configuration?: Configu
     return {
         /**
          * 
-         * @summary deletes project role for the given project
+         * @summary Deletes a user from a project
          * @param {string} projectId Id of the project
          * @param {string} userId Id of the user
          * @param {string} roleId Id of the role
@@ -2170,7 +2220,7 @@ export const ProjectRoleApiAxiosParamCreator = function (configuration?: Configu
         },
         /**
          * 
-         * @summary Deletes user from a project
+         * @summary Deletes the current user from a project
          * @param {string} projectId Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -2207,7 +2257,7 @@ export const ProjectRoleApiAxiosParamCreator = function (configuration?: Configu
         },
         /**
          * 
-         * @summary Gets all roles for current user and given object
+         * @summary Gets all roles for the current user and a project.
          * @param {string} projectId Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -2244,7 +2294,7 @@ export const ProjectRoleApiAxiosParamCreator = function (configuration?: Configu
         },
         /**
          * 
-         * @summary Lists all users to the given project
+         * @summary Lists all users in a project.
          * @param {string} projectId Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -2281,11 +2331,14 @@ export const ProjectRoleApiAxiosParamCreator = function (configuration?: Configu
         },
         /**
          * 
-         * @summary sets a project role for the given project
+         * @summary Sets a role for the current user in a project
+         * @param {ProjectRoleObject} projectRoleObject 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        projectRoleSet: async (options: any = {}): Promise<RequestArgs> => {
+        projectRoleSet: async (projectRoleObject: ProjectRoleObject, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'projectRoleObject' is not null or undefined
+            assertParamExists('projectRoleSet', 'projectRoleObject', projectRoleObject)
             const localVarPath = `/ProjectRole`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -2303,9 +2356,12 @@ export const ProjectRoleApiAxiosParamCreator = function (configuration?: Configu
 
 
     
+            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(projectRoleObject, localVarRequestOptions, configuration)
 
             return {
                 url: toPathString(localVarUrlObj),
@@ -2324,7 +2380,7 @@ export const ProjectRoleApiFp = function(configuration?: Configuration) {
     return {
         /**
          * 
-         * @summary deletes project role for the given project
+         * @summary Deletes a user from a project
          * @param {string} projectId Id of the project
          * @param {string} userId Id of the user
          * @param {string} roleId Id of the role
@@ -2337,7 +2393,7 @@ export const ProjectRoleApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary Deletes user from a project
+         * @summary Deletes the current user from a project
          * @param {string} projectId Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -2348,7 +2404,7 @@ export const ProjectRoleApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary Gets all roles for current user and given object
+         * @summary Gets all roles for the current user and a project.
          * @param {string} projectId Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -2359,7 +2415,7 @@ export const ProjectRoleApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary Lists all users to the given project
+         * @summary Lists all users in a project.
          * @param {string} projectId Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -2370,12 +2426,13 @@ export const ProjectRoleApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary sets a project role for the given project
+         * @summary Sets a role for the current user in a project
+         * @param {ProjectRoleObject} projectRoleObject 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async projectRoleSet(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProjectRoleObject>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.projectRoleSet(options);
+        async projectRoleSet(projectRoleObject: ProjectRoleObject, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProjectRoleObject>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.projectRoleSet(projectRoleObject, options);
             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
         },
     }
@@ -2390,7 +2447,7 @@ export const ProjectRoleApiFactory = function (configuration?: Configuration, ba
     return {
         /**
          * 
-         * @summary deletes project role for the given project
+         * @summary Deletes a user from a project
          * @param {string} projectId Id of the project
          * @param {string} userId Id of the user
          * @param {string} roleId Id of the role
@@ -2402,7 +2459,7 @@ export const ProjectRoleApiFactory = function (configuration?: Configuration, ba
         },
         /**
          * 
-         * @summary Deletes user from a project
+         * @summary Deletes the current user from a project
          * @param {string} projectId Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -2412,7 +2469,7 @@ export const ProjectRoleApiFactory = function (configuration?: Configuration, ba
         },
         /**
          * 
-         * @summary Gets all roles for current user and given object
+         * @summary Gets all roles for the current user and a project.
          * @param {string} projectId Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -2422,7 +2479,7 @@ export const ProjectRoleApiFactory = function (configuration?: Configuration, ba
         },
         /**
          * 
-         * @summary Lists all users to the given project
+         * @summary Lists all users in a project.
          * @param {string} projectId Id of the project
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -2432,12 +2489,13 @@ export const ProjectRoleApiFactory = function (configuration?: Configuration, ba
         },
         /**
          * 
-         * @summary sets a project role for the given project
+         * @summary Sets a role for the current user in a project
+         * @param {ProjectRoleObject} projectRoleObject 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        projectRoleSet(options?: any): AxiosPromise<ProjectRoleObject> {
-            return localVarFp.projectRoleSet(options).then((request) => request(axios, basePath));
+        projectRoleSet(projectRoleObject: ProjectRoleObject, options?: any): AxiosPromise<ProjectRoleObject> {
+            return localVarFp.projectRoleSet(projectRoleObject, options).then((request) => request(axios, basePath));
         },
     };
 };
@@ -2451,7 +2509,7 @@ export const ProjectRoleApiFactory = function (configuration?: Configuration, ba
 export class ProjectRoleApi extends BaseAPI {
     /**
      * 
-     * @summary deletes project role for the given project
+     * @summary Deletes a user from a project
      * @param {string} projectId Id of the project
      * @param {string} userId Id of the user
      * @param {string} roleId Id of the role
@@ -2465,7 +2523,7 @@ export class ProjectRoleApi extends BaseAPI {
 
     /**
      * 
-     * @summary Deletes user from a project
+     * @summary Deletes the current user from a project
      * @param {string} projectId Id of the project
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
@@ -2477,7 +2535,7 @@ export class ProjectRoleApi extends BaseAPI {
 
     /**
      * 
-     * @summary Gets all roles for current user and given object
+     * @summary Gets all roles for the current user and a project.
      * @param {string} projectId Id of the project
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
@@ -2489,7 +2547,7 @@ export class ProjectRoleApi extends BaseAPI {
 
     /**
      * 
-     * @summary Lists all users to the given project
+     * @summary Lists all users in a project.
      * @param {string} projectId Id of the project
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
@@ -2501,13 +2559,14 @@ export class ProjectRoleApi extends BaseAPI {
 
     /**
      * 
-     * @summary sets a project role for the given project
+     * @summary Sets a role for the current user in a project
+     * @param {ProjectRoleObject} projectRoleObject 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof ProjectRoleApi
      */
-    public projectRoleSet(options?: any) {
-        return ProjectRoleApiFp(this.configuration).projectRoleSet(options).then((request) => request(this.axios, this.basePath));
+    public projectRoleSet(projectRoleObject: ProjectRoleObject, options?: any) {
+        return ProjectRoleApiFp(this.configuration).projectRoleSet(projectRoleObject, options).then((request) => request(this.axios, this.basePath));
     }
 }
 
diff --git a/src/Coscine.Api.Project/base.ts b/src/Coscine.Api.Project/base.ts
index 9551052..c54c55c 100644
--- a/src/Coscine.Api.Project/base.ts
+++ b/src/Coscine.Api.Project/base.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Project
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.8.4
+ * The version of the OpenAPI document: 3.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Project/common.ts b/src/Coscine.Api.Project/common.ts
index 22a94f6..526e3ce 100644
--- a/src/Coscine.Api.Project/common.ts
+++ b/src/Coscine.Api.Project/common.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Project
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.8.4
+ * The version of the OpenAPI document: 3.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Project/configuration.ts b/src/Coscine.Api.Project/configuration.ts
index 870df42..75064ba 100644
--- a/src/Coscine.Api.Project/configuration.ts
+++ b/src/Coscine.Api.Project/configuration.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Project
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.8.4
+ * The version of the OpenAPI document: 3.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Project/index.ts b/src/Coscine.Api.Project/index.ts
index 974a599..6558259 100644
--- a/src/Coscine.Api.Project/index.ts
+++ b/src/Coscine.Api.Project/index.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Project
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.8.4
+ * The version of the OpenAPI document: 3.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Quota/.gitignore b/src/Coscine.Api.Quota/.gitignore
deleted file mode 100644
index 149b576..0000000
--- a/src/Coscine.Api.Quota/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-wwwroot/*.js
-node_modules
-typings
-dist
diff --git a/src/Coscine.Api.Quota/.npmignore b/src/Coscine.Api.Quota/.npmignore
deleted file mode 100644
index 999d88d..0000000
--- a/src/Coscine.Api.Quota/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm
\ No newline at end of file
diff --git a/src/Coscine.Api.Quota/.openapi-generator-ignore b/src/Coscine.Api.Quota/.openapi-generator-ignore
deleted file mode 100644
index 7484ee5..0000000
--- a/src/Coscine.Api.Quota/.openapi-generator-ignore
+++ /dev/null
@@ -1,23 +0,0 @@
-# OpenAPI Generator Ignore
-# Generated by openapi-generator https://github.com/openapitools/openapi-generator
-
-# Use this file to prevent files from being overwritten by the generator.
-# The patterns follow closely to .gitignore or .dockerignore.
-
-# As an example, the C# client generator defines ApiClient.cs.
-# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
-#ApiClient.cs
-
-# You can match any string of characters against a directory, file or extension with a single asterisk (*):
-#foo/*/qux
-# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
-
-# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
-#foo/**/qux
-# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
-
-# You can also negate patterns with an exclamation (!).
-# For example, you can ignore all files in a docs folder with the file extension .md:
-#docs/*.md
-# Then explicitly reverse the ignore rule for a single file:
-#!docs/README.md
diff --git a/src/Coscine.Api.Quota/.openapi-generator/FILES b/src/Coscine.Api.Quota/.openapi-generator/FILES
deleted file mode 100644
index 16b445e..0000000
--- a/src/Coscine.Api.Quota/.openapi-generator/FILES
+++ /dev/null
@@ -1,9 +0,0 @@
-.gitignore
-.npmignore
-.openapi-generator-ignore
-api.ts
-base.ts
-common.ts
-configuration.ts
-git_push.sh
-index.ts
diff --git a/src/Coscine.Api.Quota/.openapi-generator/VERSION b/src/Coscine.Api.Quota/.openapi-generator/VERSION
deleted file mode 100644
index 8044406..0000000
--- a/src/Coscine.Api.Quota/.openapi-generator/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-5.2.1
\ No newline at end of file
diff --git a/src/Coscine.Api.Quota/api.ts b/src/Coscine.Api.Quota/api.ts
deleted file mode 100644
index 9bd5c6a..0000000
--- a/src/Coscine.Api.Quota/api.ts
+++ /dev/null
@@ -1,338 +0,0 @@
-/* tslint:disable */
-/* eslint-disable */
-/**
- * Coscine.Api.Quota
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
- *
- * The version of the OpenAPI document: 2.6.3
- * 
- *
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
-
-
-import { Configuration } from './configuration';
-import globalAxios, { AxiosPromise, AxiosInstance } from 'axios';
-// Some imports not used depending on template conditions
-// @ts-ignore
-import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';
-// @ts-ignore
-import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base';
-
-/**
- * Contains information about the quota of a resource.
- * @export
- * @interface ProjectQuotaReturnObject
- */
-export interface ProjectQuotaReturnObject {
-    /**
-     * Id of the resoure.
-     * @type {string}
-     * @memberof ProjectQuotaReturnObject
-     */
-    id?: string;
-    /**
-     * Display name of the resource.
-     * @type {string}
-     * @memberof ProjectQuotaReturnObject
-     */
-    name?: string | null;
-    /**
-     * How much space is used by the resource (rounded up and in gb).
-     * @type {number}
-     * @memberof ProjectQuotaReturnObject
-     */
-    used?: number;
-    /**
-     * How much space is availabe to be taken by resource (in gb).
-     * @type {number}
-     * @memberof ProjectQuotaReturnObject
-     */
-    allocated?: number;
-}
-/**
- * Parameter object containing the update informations.             
- * @export
- * @interface UpdateResourceObject
- */
-export interface UpdateResourceObject {
-    /**
-     * Id of the resource.             
-     * @type {string}
-     * @memberof UpdateResourceObject
-     */
-    id?: string;
-    /**
-     * New Quota value.
-     * @type {number}
-     * @memberof UpdateResourceObject
-     */
-    allocated?: number;
-}
-
-/**
- * QuotaApi - axios parameter creator
- * @export
- */
-export const QuotaApiAxiosParamCreator = function (configuration?: Configuration) {
-    return {
-        /**
-         * 
-         * @summary Retrieves the quota for the resource.
-         * @param {string} resourceId Id of the resource.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        quotaGetResourceQuota: async (resourceId: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'resourceId' is not null or undefined
-            assertParamExists('quotaGetResourceQuota', 'resourceId', resourceId)
-            const localVarPath = `/Quota/{resourceId}`
-                .replace(`{${"resourceId"}}`, encodeURIComponent(String(resourceId)));
-            // 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 JWT token 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,
-            };
-        },
-        /**
-         * 
-         * @summary Retrieves the quota for the selected project and resource type.
-         * @param {string} projectId Id of the project.
-         * @param {string} resourceTypeId Id of the resource type.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        quotaGetResourceQuotas: async (projectId: string, resourceTypeId: string, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'projectId' is not null or undefined
-            assertParamExists('quotaGetResourceQuotas', 'projectId', projectId)
-            // verify required parameter 'resourceTypeId' is not null or undefined
-            assertParamExists('quotaGetResourceQuotas', 'resourceTypeId', resourceTypeId)
-            const localVarPath = `/Quota/{projectId}/{resourceTypeId}/all`
-                .replace(`{${"projectId"}}`, encodeURIComponent(String(projectId)))
-                .replace(`{${"resourceTypeId"}}`, encodeURIComponent(String(resourceTypeId)));
-            // 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 JWT token 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,
-            };
-        },
-        /**
-         * 
-         * @summary Updates the quota for a resource.
-         * @param {string} resourceId 
-         * @param {UpdateResourceObject} updateResourceObject Contains the resource id and the new quota.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        quotaUpdateResourceQuota: async (resourceId: string, updateResourceObject: UpdateResourceObject, options: any = {}): Promise<RequestArgs> => {
-            // verify required parameter 'resourceId' is not null or undefined
-            assertParamExists('quotaUpdateResourceQuota', 'resourceId', resourceId)
-            // verify required parameter 'updateResourceObject' is not null or undefined
-            assertParamExists('quotaUpdateResourceQuota', 'updateResourceObject', updateResourceObject)
-            const localVarPath = `/Quota/{resourceId}`
-                .replace(`{${"resourceId"}}`, encodeURIComponent(String(resourceId)));
-            // 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 JWT token 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(updateResourceObject, localVarRequestOptions, configuration)
-
-            return {
-                url: toPathString(localVarUrlObj),
-                options: localVarRequestOptions,
-            };
-        },
-    }
-};
-
-/**
- * QuotaApi - functional programming interface
- * @export
- */
-export const QuotaApiFp = function(configuration?: Configuration) {
-    const localVarAxiosParamCreator = QuotaApiAxiosParamCreator(configuration)
-    return {
-        /**
-         * 
-         * @summary Retrieves the quota for the resource.
-         * @param {string} resourceId Id of the resource.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async quotaGetResourceQuota(resourceId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProjectQuotaReturnObject>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.quotaGetResourceQuota(resourceId, options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
-        /**
-         * 
-         * @summary Retrieves the quota for the selected project and resource type.
-         * @param {string} projectId Id of the project.
-         * @param {string} resourceTypeId Id of the resource type.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async quotaGetResourceQuotas(projectId: string, resourceTypeId: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<ProjectQuotaReturnObject>>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.quotaGetResourceQuotas(projectId, resourceTypeId, options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
-        /**
-         * 
-         * @summary Updates the quota for a resource.
-         * @param {string} resourceId 
-         * @param {UpdateResourceObject} updateResourceObject Contains the resource id and the new quota.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async quotaUpdateResourceQuota(resourceId: string, updateResourceObject: UpdateResourceObject, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
-            const localVarAxiosArgs = await localVarAxiosParamCreator.quotaUpdateResourceQuota(resourceId, updateResourceObject, options);
-            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
-        },
-    }
-};
-
-/**
- * QuotaApi - factory interface
- * @export
- */
-export const QuotaApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
-    const localVarFp = QuotaApiFp(configuration)
-    return {
-        /**
-         * 
-         * @summary Retrieves the quota for the resource.
-         * @param {string} resourceId Id of the resource.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        quotaGetResourceQuota(resourceId: string, options?: any): AxiosPromise<ProjectQuotaReturnObject> {
-            return localVarFp.quotaGetResourceQuota(resourceId, options).then((request) => request(axios, basePath));
-        },
-        /**
-         * 
-         * @summary Retrieves the quota for the selected project and resource type.
-         * @param {string} projectId Id of the project.
-         * @param {string} resourceTypeId Id of the resource type.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        quotaGetResourceQuotas(projectId: string, resourceTypeId: string, options?: any): AxiosPromise<Array<ProjectQuotaReturnObject>> {
-            return localVarFp.quotaGetResourceQuotas(projectId, resourceTypeId, options).then((request) => request(axios, basePath));
-        },
-        /**
-         * 
-         * @summary Updates the quota for a resource.
-         * @param {string} resourceId 
-         * @param {UpdateResourceObject} updateResourceObject Contains the resource id and the new quota.
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        quotaUpdateResourceQuota(resourceId: string, updateResourceObject: UpdateResourceObject, options?: any): AxiosPromise<any> {
-            return localVarFp.quotaUpdateResourceQuota(resourceId, updateResourceObject, options).then((request) => request(axios, basePath));
-        },
-    };
-};
-
-/**
- * QuotaApi - object-oriented interface
- * @export
- * @class QuotaApi
- * @extends {BaseAPI}
- */
-export class QuotaApi extends BaseAPI {
-    /**
-     * 
-     * @summary Retrieves the quota for the resource.
-     * @param {string} resourceId Id of the resource.
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof QuotaApi
-     */
-    public quotaGetResourceQuota(resourceId: string, options?: any) {
-        return QuotaApiFp(this.configuration).quotaGetResourceQuota(resourceId, options).then((request) => request(this.axios, this.basePath));
-    }
-
-    /**
-     * 
-     * @summary Retrieves the quota for the selected project and resource type.
-     * @param {string} projectId Id of the project.
-     * @param {string} resourceTypeId Id of the resource type.
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof QuotaApi
-     */
-    public quotaGetResourceQuotas(projectId: string, resourceTypeId: string, options?: any) {
-        return QuotaApiFp(this.configuration).quotaGetResourceQuotas(projectId, resourceTypeId, options).then((request) => request(this.axios, this.basePath));
-    }
-
-    /**
-     * 
-     * @summary Updates the quota for a resource.
-     * @param {string} resourceId 
-     * @param {UpdateResourceObject} updateResourceObject Contains the resource id and the new quota.
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof QuotaApi
-     */
-    public quotaUpdateResourceQuota(resourceId: string, updateResourceObject: UpdateResourceObject, options?: any) {
-        return QuotaApiFp(this.configuration).quotaUpdateResourceQuota(resourceId, updateResourceObject, options).then((request) => request(this.axios, this.basePath));
-    }
-}
-
-
diff --git a/src/Coscine.Api.Quota/base.ts b/src/Coscine.Api.Quota/base.ts
deleted file mode 100644
index 54a4092..0000000
--- a/src/Coscine.Api.Quota/base.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-/* tslint:disable */
-/* eslint-disable */
-/**
- * Coscine.Api.Quota
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
- *
- * The version of the OpenAPI document: 2.6.3
- * 
- *
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
-
-
-import { Configuration } from "./configuration";
-// Some imports not used depending on template conditions
-// @ts-ignore
-import globalAxios, { AxiosPromise, AxiosInstance } from 'axios';
-
-export const BASE_PATH = "https://d-sp16.devlef.campus.rwth-aachen.de/coscine/api/Coscine.Api.Quota".replace(/\/+$/, "");
-
-/**
- *
- * @export
- */
-export const COLLECTION_FORMATS = {
-    csv: ",",
-    ssv: " ",
-    tsv: "\t",
-    pipes: "|",
-};
-
-/**
- *
- * @export
- * @interface RequestArgs
- */
-export interface RequestArgs {
-    url: string;
-    options: any;
-}
-
-/**
- *
- * @export
- * @class BaseAPI
- */
-export class BaseAPI {
-    protected configuration: Configuration | undefined;
-
-    constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {
-        if (configuration) {
-            this.configuration = configuration;
-            this.basePath = configuration.basePath || this.basePath;
-        }
-    }
-};
-
-/**
- *
- * @export
- * @class RequiredError
- * @extends {Error}
- */
-export class RequiredError extends Error {
-    name: "RequiredError" = "RequiredError";
-    constructor(public field: string, msg?: string) {
-        super(msg);
-    }
-}
diff --git a/src/Coscine.Api.Quota/common.ts b/src/Coscine.Api.Quota/common.ts
deleted file mode 100644
index 785900c..0000000
--- a/src/Coscine.Api.Quota/common.ts
+++ /dev/null
@@ -1,138 +0,0 @@
-/* tslint:disable */
-/* eslint-disable */
-/**
- * Coscine.Api.Quota
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
- *
- * The version of the OpenAPI document: 2.6.3
- * 
- *
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
-
-
-import { Configuration } from "./configuration";
-import { RequiredError, RequestArgs } from "./base";
-import { AxiosInstance } from 'axios';
-
-/**
- *
- * @export
- */
-export const DUMMY_BASE_URL = 'https://example.com'
-
-/**
- *
- * @throws {RequiredError}
- * @export
- */
-export const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {
-    if (paramValue === null || paramValue === undefined) {
-        throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
-    }
-}
-
-/**
- *
- * @export
- */
-export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {
-    if (configuration && configuration.apiKey) {
-        const localVarApiKeyValue = typeof configuration.apiKey === 'function'
-            ? await configuration.apiKey(keyParamName)
-            : await configuration.apiKey;
-        object[keyParamName] = localVarApiKeyValue;
-    }
-}
-
-/**
- *
- * @export
- */
-export const setBasicAuthToObject = function (object: any, configuration?: Configuration) {
-    if (configuration && (configuration.username || configuration.password)) {
-        object["auth"] = { username: configuration.username, password: configuration.password };
-    }
-}
-
-/**
- *
- * @export
- */
-export const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {
-    if (configuration && configuration.accessToken) {
-        const accessToken = typeof configuration.accessToken === 'function'
-            ? await configuration.accessToken()
-            : await configuration.accessToken;
-        object["Authorization"] = "Bearer " + accessToken;
-    }
-}
-
-/**
- *
- * @export
- */
-export const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {
-    if (configuration && configuration.accessToken) {
-        const localVarAccessTokenValue = typeof configuration.accessToken === 'function'
-            ? await configuration.accessToken(name, scopes)
-            : await configuration.accessToken;
-        object["Authorization"] = "Bearer " + localVarAccessTokenValue;
-    }
-}
-
-/**
- *
- * @export
- */
-export const setSearchParams = function (url: URL, ...objects: any[]) {
-    const searchParams = new URLSearchParams(url.search);
-    for (const object of objects) {
-        for (const key in object) {
-            if (Array.isArray(object[key])) {
-                searchParams.delete(key);
-                for (const item of object[key]) {
-                    searchParams.append(key, item);
-                }
-            } else {
-                searchParams.set(key, object[key]);
-            }
-        }
-    }
-    url.search = searchParams.toString();
-}
-
-/**
- *
- * @export
- */
-export const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {
-    const nonString = typeof value !== 'string';
-    const needsSerialization = nonString && configuration && configuration.isJsonMime
-        ? configuration.isJsonMime(requestOptions.headers['Content-Type'])
-        : nonString;
-    return needsSerialization
-        ? JSON.stringify(value !== undefined ? value : {})
-        : (value || "");
-}
-
-/**
- *
- * @export
- */
-export const toPathString = function (url: URL) {
-    return url.pathname + url.search + url.hash
-}
-
-/**
- *
- * @export
- */
-export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {
-    return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
-        const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url};
-        return axios.request(axiosRequestArgs);
-    };
-}
diff --git a/src/Coscine.Api.Quota/configuration.ts b/src/Coscine.Api.Quota/configuration.ts
deleted file mode 100644
index a19c065..0000000
--- a/src/Coscine.Api.Quota/configuration.ts
+++ /dev/null
@@ -1,101 +0,0 @@
-/* tslint:disable */
-/* eslint-disable */
-/**
- * Coscine.Api.Quota
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
- *
- * The version of the OpenAPI document: 2.6.3
- * 
- *
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
-
-
-export interface ConfigurationParameters {
-    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
-    username?: string;
-    password?: string;
-    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
-    basePath?: string;
-    baseOptions?: any;
-    formDataCtor?: new () => any;
-}
-
-export class Configuration {
-    /**
-     * parameter for apiKey security
-     * @param name security name
-     * @memberof Configuration
-     */
-    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
-    /**
-     * parameter for basic security
-     *
-     * @type {string}
-     * @memberof Configuration
-     */
-    username?: string;
-    /**
-     * parameter for basic security
-     *
-     * @type {string}
-     * @memberof Configuration
-     */
-    password?: string;
-    /**
-     * parameter for oauth2 security
-     * @param name security name
-     * @param scopes oauth2 scope
-     * @memberof Configuration
-     */
-    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
-    /**
-     * override base path
-     *
-     * @type {string}
-     * @memberof Configuration
-     */
-    basePath?: string;
-    /**
-     * base options for axios calls
-     *
-     * @type {any}
-     * @memberof Configuration
-     */
-    baseOptions?: any;
-    /**
-     * The FormData constructor that will be used to create multipart form data
-     * requests. You can inject this here so that execution environments that
-     * do not support the FormData class can still run the generated client.
-     *
-     * @type {new () => FormData}
-     */
-    formDataCtor?: new () => any;
-
-    constructor(param: ConfigurationParameters = {}) {
-        this.apiKey = param.apiKey;
-        this.username = param.username;
-        this.password = param.password;
-        this.accessToken = param.accessToken;
-        this.basePath = param.basePath;
-        this.baseOptions = param.baseOptions;
-        this.formDataCtor = param.formDataCtor;
-    }
-
-    /**
-     * Check if the given MIME is a JSON MIME.
-     * JSON MIME examples:
-     *   application/json
-     *   application/json; charset=UTF8
-     *   APPLICATION/JSON
-     *   application/vnd.company+json
-     * @param mime - MIME (Multipurpose Internet Mail Extensions)
-     * @return True if the given MIME is JSON, false otherwise.
-     */
-    public isJsonMime(mime: string): boolean {
-        const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
-        return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
-    }
-}
diff --git a/src/Coscine.Api.Quota/index.ts b/src/Coscine.Api.Quota/index.ts
deleted file mode 100644
index 25343f1..0000000
--- a/src/Coscine.Api.Quota/index.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-/* tslint:disable */
-/* eslint-disable */
-/**
- * Coscine.Api.Quota
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
- *
- * The version of the OpenAPI document: 2.6.3
- * 
- *
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
-
-
-export * from "./api";
-export * from "./configuration";
-
diff --git a/src/Coscine.Api.Resources/api.ts b/src/Coscine.Api.Resources/api.ts
index 18dce66..4b1c106 100644
--- a/src/Coscine.Api.Resources/api.ts
+++ b/src/Coscine.Api.Resources/api.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Resources
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.8.3
+ * The version of the OpenAPI document: 2.9.6
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -116,6 +116,40 @@ export interface MetadataView {
      */
     editableKey?: boolean;
 }
+/**
+ * 
+ * @export
+ * @interface QuotaDimObject
+ */
+export interface QuotaDimObject {
+    /**
+     * 
+     * @type {number}
+     * @memberof QuotaDimObject
+     */
+    value?: number;
+    /**
+     * 
+     * @type {QuotaUnit}
+     * @memberof QuotaDimObject
+     */
+    unit?: QuotaUnit;
+}
+/**
+ * 
+ * @export
+ * @enum {string}
+ */
+
+export enum QuotaUnit {
+    Byte = 'https://qudt.org/vocab/unit/BYTE',
+    KibiByte = 'https://qudt.org/vocab/unit/KibiBYTE',
+    MebiByte = 'https://qudt.org/vocab/unit/MebiBYTE',
+    GibiByte = 'https://qudt.org/vocab/unit/GibiBYTE',
+    TebiByte = 'https://qudt.org/vocab/unit/TebiBYTE',
+    PebiByte = 'https://qudt.org/vocab/unit/PebiBYTE'
+}
+
 /**
  * 
  * @export
@@ -257,6 +291,43 @@ export interface ResourceObject {
      */
     archived?: boolean;
 }
+/**
+ * 
+ * @export
+ * @interface ResourceQuotaReturnObject
+ */
+export interface ResourceQuotaReturnObject {
+    /**
+     * 
+     * @type {string}
+     * @memberof ResourceQuotaReturnObject
+     */
+    id?: string;
+    /**
+     * 
+     * @type {string}
+     * @memberof ResourceQuotaReturnObject
+     */
+    name?: string | null;
+    /**
+     * 
+     * @type {QuotaDimObject}
+     * @memberof ResourceQuotaReturnObject
+     */
+    used?: QuotaDimObject | null;
+    /**
+     * 
+     * @type {number}
+     * @memberof ResourceQuotaReturnObject
+     */
+    usedPercentage?: number;
+    /**
+     * 
+     * @type {QuotaDimObject}
+     * @memberof ResourceQuotaReturnObject
+     */
+    reserved?: QuotaDimObject | null;
+}
 /**
  * 
  * @export
@@ -287,18 +358,36 @@ export interface ResourceTypeInformation {
      * @memberof ResourceTypeInformation
      */
     canRead?: boolean;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof ResourceTypeInformation
+     */
+    canSetResourceReadonly?: boolean;
     /**
      * 
      * @type {boolean}
      * @memberof ResourceTypeInformation
      */
     canUpdate?: boolean;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof ResourceTypeInformation
+     */
+    canUpdateResource?: boolean;
     /**
      * 
      * @type {boolean}
      * @memberof ResourceTypeInformation
      */
     canDelete?: boolean;
+    /**
+     * 
+     * @type {boolean}
+     * @memberof ResourceTypeInformation
+     */
+    canDeleteResource?: boolean;
     /**
      * 
      * @type {boolean}
@@ -384,6 +473,19 @@ export enum ResourceTypeStatus {
     Active = 'active'
 }
 
+/**
+ * Parameter object containing the update informations.             
+ * @export
+ * @interface UpdateResourceObject
+ */
+export interface UpdateResourceObject {
+    /**
+     * New reserved quota value to set for the selected resource in GiB.
+     * @type {number}
+     * @memberof UpdateResourceObject
+     */
+    reservedGiB?: number;
+}
 /**
  * 
  * @export
@@ -412,7 +514,7 @@ export const ResourceApiAxiosParamCreator = function (configuration?: Configurat
     return {
         /**
          * 
-         * @summary This deletes the specified resource.
+         * @summary Deletes a resource.
          * @param {string} id A GUID as a string that identifies the resource.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -449,8 +551,8 @@ export const ResourceApiAxiosParamCreator = function (configuration?: Configurat
         },
         /**
          * 
-         * @summary This returns the resource for the specified id.
-         * @param {string} id A GUID as a string that identifies the resource.
+         * @summary Returns the resource with a specified id.
+         * @param {string} id The resource id.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -486,7 +588,7 @@ export const ResourceApiAxiosParamCreator = function (configuration?: Configurat
         },
         /**
          * 
-         * @summary This returns a list of all resources the current user has access to.
+         * @summary Returns a list of all resources the current user has access to.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -519,8 +621,8 @@ export const ResourceApiAxiosParamCreator = function (configuration?: Configurat
         },
         /**
          * 
-         * @summary This returns if the current user is the creator of the specified resource.
-         * @param {string} id A GUID as a string that identifies the resource.
+         * @summary Returns whether or not the current user is creator of a specified resource.
+         * @param {string} id The resource id.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -556,7 +658,7 @@ export const ResourceApiAxiosParamCreator = function (configuration?: Configurat
         },
         /**
          * 
-         * @summary This returns the read only status of the given resource.
+         * @summary Sets a read only status of a given resource.
          * @param {string} id A GUID as a string that identifies the resource.
          * @param {boolean} [status] A boolean value that specifies if the resource is archived.
          * @param {*} [options] Override http request option.
@@ -598,7 +700,7 @@ export const ResourceApiAxiosParamCreator = function (configuration?: Configurat
         },
         /**
          * 
-         * @summary This stores the provided resource object for the specified project.
+         * @summary Stores the provided resource object in a specified project.
          * @param {string} projectId A GUID as a string that identifies the resource.
          * @param {ResourceObject} resourceObject Entry representing the user
          * @param {*} [options] Override http request option.
@@ -641,8 +743,8 @@ export const ResourceApiAxiosParamCreator = function (configuration?: Configurat
         },
         /**
          * 
-         * @summary This returns if the current user is the creator of the specified resource.
-         * @param {string} id A GUID as a string that identifies the resource.
+         * @summary Updates a resource.
+         * @param {string} id The resource id.
          * @param {ResourceObject} resourceObject Entry representing the user
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -694,7 +796,7 @@ export const ResourceApiFp = function(configuration?: Configuration) {
     return {
         /**
          * 
-         * @summary This deletes the specified resource.
+         * @summary Deletes a resource.
          * @param {string} id A GUID as a string that identifies the resource.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -705,8 +807,8 @@ export const ResourceApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary This returns the resource for the specified id.
-         * @param {string} id A GUID as a string that identifies the resource.
+         * @summary Returns the resource with a specified id.
+         * @param {string} id The resource id.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -716,7 +818,7 @@ export const ResourceApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary This returns a list of all resources the current user has access to.
+         * @summary Returns a list of all resources the current user has access to.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -726,8 +828,8 @@ export const ResourceApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary This returns if the current user is the creator of the specified resource.
-         * @param {string} id A GUID as a string that identifies the resource.
+         * @summary Returns whether or not the current user is creator of a specified resource.
+         * @param {string} id The resource id.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -737,7 +839,7 @@ export const ResourceApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary This returns the read only status of the given resource.
+         * @summary Sets a read only status of a given resource.
          * @param {string} id A GUID as a string that identifies the resource.
          * @param {boolean} [status] A boolean value that specifies if the resource is archived.
          * @param {*} [options] Override http request option.
@@ -749,7 +851,7 @@ export const ResourceApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary This stores the provided resource object for the specified project.
+         * @summary Stores the provided resource object in a specified project.
          * @param {string} projectId A GUID as a string that identifies the resource.
          * @param {ResourceObject} resourceObject Entry representing the user
          * @param {*} [options] Override http request option.
@@ -761,8 +863,8 @@ export const ResourceApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary This returns if the current user is the creator of the specified resource.
-         * @param {string} id A GUID as a string that identifies the resource.
+         * @summary Updates a resource.
+         * @param {string} id The resource id.
          * @param {ResourceObject} resourceObject Entry representing the user
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -783,7 +885,7 @@ export const ResourceApiFactory = function (configuration?: Configuration, baseP
     return {
         /**
          * 
-         * @summary This deletes the specified resource.
+         * @summary Deletes a resource.
          * @param {string} id A GUID as a string that identifies the resource.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -793,8 +895,8 @@ export const ResourceApiFactory = function (configuration?: Configuration, baseP
         },
         /**
          * 
-         * @summary This returns the resource for the specified id.
-         * @param {string} id A GUID as a string that identifies the resource.
+         * @summary Returns the resource with a specified id.
+         * @param {string} id The resource id.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -803,7 +905,7 @@ export const ResourceApiFactory = function (configuration?: Configuration, baseP
         },
         /**
          * 
-         * @summary This returns a list of all resources the current user has access to.
+         * @summary Returns a list of all resources the current user has access to.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -812,8 +914,8 @@ export const ResourceApiFactory = function (configuration?: Configuration, baseP
         },
         /**
          * 
-         * @summary This returns if the current user is the creator of the specified resource.
-         * @param {string} id A GUID as a string that identifies the resource.
+         * @summary Returns whether or not the current user is creator of a specified resource.
+         * @param {string} id The resource id.
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
@@ -822,7 +924,7 @@ export const ResourceApiFactory = function (configuration?: Configuration, baseP
         },
         /**
          * 
-         * @summary This returns the read only status of the given resource.
+         * @summary Sets a read only status of a given resource.
          * @param {string} id A GUID as a string that identifies the resource.
          * @param {boolean} [status] A boolean value that specifies if the resource is archived.
          * @param {*} [options] Override http request option.
@@ -833,7 +935,7 @@ export const ResourceApiFactory = function (configuration?: Configuration, baseP
         },
         /**
          * 
-         * @summary This stores the provided resource object for the specified project.
+         * @summary Stores the provided resource object in a specified project.
          * @param {string} projectId A GUID as a string that identifies the resource.
          * @param {ResourceObject} resourceObject Entry representing the user
          * @param {*} [options] Override http request option.
@@ -844,8 +946,8 @@ export const ResourceApiFactory = function (configuration?: Configuration, baseP
         },
         /**
          * 
-         * @summary This returns if the current user is the creator of the specified resource.
-         * @param {string} id A GUID as a string that identifies the resource.
+         * @summary Updates a resource.
+         * @param {string} id The resource id.
          * @param {ResourceObject} resourceObject Entry representing the user
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
@@ -865,7 +967,7 @@ export const ResourceApiFactory = function (configuration?: Configuration, baseP
 export class ResourceApi extends BaseAPI {
     /**
      * 
-     * @summary This deletes the specified resource.
+     * @summary Deletes a resource.
      * @param {string} id A GUID as a string that identifies the resource.
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
@@ -877,8 +979,8 @@ export class ResourceApi extends BaseAPI {
 
     /**
      * 
-     * @summary This returns the resource for the specified id.
-     * @param {string} id A GUID as a string that identifies the resource.
+     * @summary Returns the resource with a specified id.
+     * @param {string} id The resource id.
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof ResourceApi
@@ -889,7 +991,7 @@ export class ResourceApi extends BaseAPI {
 
     /**
      * 
-     * @summary This returns a list of all resources the current user has access to.
+     * @summary Returns a list of all resources the current user has access to.
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof ResourceApi
@@ -900,8 +1002,8 @@ export class ResourceApi extends BaseAPI {
 
     /**
      * 
-     * @summary This returns if the current user is the creator of the specified resource.
-     * @param {string} id A GUID as a string that identifies the resource.
+     * @summary Returns whether or not the current user is creator of a specified resource.
+     * @param {string} id The resource id.
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof ResourceApi
@@ -912,7 +1014,7 @@ export class ResourceApi extends BaseAPI {
 
     /**
      * 
-     * @summary This returns the read only status of the given resource.
+     * @summary Sets a read only status of a given resource.
      * @param {string} id A GUID as a string that identifies the resource.
      * @param {boolean} [status] A boolean value that specifies if the resource is archived.
      * @param {*} [options] Override http request option.
@@ -925,7 +1027,7 @@ export class ResourceApi extends BaseAPI {
 
     /**
      * 
-     * @summary This stores the provided resource object for the specified project.
+     * @summary Stores the provided resource object in a specified project.
      * @param {string} projectId A GUID as a string that identifies the resource.
      * @param {ResourceObject} resourceObject Entry representing the user
      * @param {*} [options] Override http request option.
@@ -938,8 +1040,8 @@ export class ResourceApi extends BaseAPI {
 
     /**
      * 
-     * @summary This returns if the current user is the creator of the specified resource.
-     * @param {string} id A GUID as a string that identifies the resource.
+     * @summary Updates a resource.
+     * @param {string} id The resource id.
      * @param {ResourceObject} resourceObject Entry representing the user
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
@@ -951,6 +1053,193 @@ export class ResourceApi extends BaseAPI {
 }
 
 
+/**
+ * ResourceQuotaApi - axios parameter creator
+ * @export
+ */
+export const ResourceQuotaApiAxiosParamCreator = function (configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @summary Retrieves the resource quota for an individual resource.
+         * @param {string} id Id of the resource.
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        resourceQuotaGetResourceQuota: async (id: string, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'id' is not null or undefined
+            assertParamExists('resourceQuotaGetResourceQuota', 'id', id)
+            const localVarPath = `/ResourceQuota/{id}`
+                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
+            // 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 JWT token 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,
+            };
+        },
+        /**
+         * 
+         * @summary Updates the resource quota for an individual resource.
+         * @param {string} id Id of the resource.
+         * @param {UpdateResourceObject} updateResourceObject Contains the resource id and the new quota.
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        resourceQuotaUpdateResourceQuota: async (id: string, updateResourceObject: UpdateResourceObject, options: any = {}): Promise<RequestArgs> => {
+            // verify required parameter 'id' is not null or undefined
+            assertParamExists('resourceQuotaUpdateResourceQuota', 'id', id)
+            // verify required parameter 'updateResourceObject' is not null or undefined
+            assertParamExists('resourceQuotaUpdateResourceQuota', 'updateResourceObject', updateResourceObject)
+            const localVarPath = `/ResourceQuota/{id}`
+                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
+            // 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 JWT token 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(updateResourceObject, localVarRequestOptions, configuration)
+
+            return {
+                url: toPathString(localVarUrlObj),
+                options: localVarRequestOptions,
+            };
+        },
+    }
+};
+
+/**
+ * ResourceQuotaApi - functional programming interface
+ * @export
+ */
+export const ResourceQuotaApiFp = function(configuration?: Configuration) {
+    const localVarAxiosParamCreator = ResourceQuotaApiAxiosParamCreator(configuration)
+    return {
+        /**
+         * 
+         * @summary Retrieves the resource quota for an individual resource.
+         * @param {string} id Id of the resource.
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async resourceQuotaGetResourceQuota(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ResourceQuotaReturnObject>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.resourceQuotaGetResourceQuota(id, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+        /**
+         * 
+         * @summary Updates the resource quota for an individual resource.
+         * @param {string} id Id of the resource.
+         * @param {UpdateResourceObject} updateResourceObject Contains the resource id and the new quota.
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async resourceQuotaUpdateResourceQuota(id: string, updateResourceObject: UpdateResourceObject, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
+            const localVarAxiosArgs = await localVarAxiosParamCreator.resourceQuotaUpdateResourceQuota(id, updateResourceObject, options);
+            return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+        },
+    }
+};
+
+/**
+ * ResourceQuotaApi - factory interface
+ * @export
+ */
+export const ResourceQuotaApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    const localVarFp = ResourceQuotaApiFp(configuration)
+    return {
+        /**
+         * 
+         * @summary Retrieves the resource quota for an individual resource.
+         * @param {string} id Id of the resource.
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        resourceQuotaGetResourceQuota(id: string, options?: any): AxiosPromise<ResourceQuotaReturnObject> {
+            return localVarFp.resourceQuotaGetResourceQuota(id, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary Updates the resource quota for an individual resource.
+         * @param {string} id Id of the resource.
+         * @param {UpdateResourceObject} updateResourceObject Contains the resource id and the new quota.
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        resourceQuotaUpdateResourceQuota(id: string, updateResourceObject: UpdateResourceObject, options?: any): AxiosPromise<any> {
+            return localVarFp.resourceQuotaUpdateResourceQuota(id, updateResourceObject, options).then((request) => request(axios, basePath));
+        },
+    };
+};
+
+/**
+ * ResourceQuotaApi - object-oriented interface
+ * @export
+ * @class ResourceQuotaApi
+ * @extends {BaseAPI}
+ */
+export class ResourceQuotaApi extends BaseAPI {
+    /**
+     * 
+     * @summary Retrieves the resource quota for an individual resource.
+     * @param {string} id Id of the resource.
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ResourceQuotaApi
+     */
+    public resourceQuotaGetResourceQuota(id: string, options?: any) {
+        return ResourceQuotaApiFp(this.configuration).resourceQuotaGetResourceQuota(id, options).then((request) => request(this.axios, this.basePath));
+    }
+
+    /**
+     * 
+     * @summary Updates the resource quota for an individual resource.
+     * @param {string} id Id of the resource.
+     * @param {UpdateResourceObject} updateResourceObject Contains the resource id and the new quota.
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ResourceQuotaApi
+     */
+    public resourceQuotaUpdateResourceQuota(id: string, updateResourceObject: UpdateResourceObject, options?: any) {
+        return ResourceQuotaApiFp(this.configuration).resourceQuotaUpdateResourceQuota(id, updateResourceObject, options).then((request) => request(this.axios, this.basePath));
+    }
+}
+
+
 /**
  * ResourceTypeApi - axios parameter creator
  * @export
diff --git a/src/Coscine.Api.Resources/base.ts b/src/Coscine.Api.Resources/base.ts
index 2d99f25..711a501 100644
--- a/src/Coscine.Api.Resources/base.ts
+++ b/src/Coscine.Api.Resources/base.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Resources
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.8.3
+ * The version of the OpenAPI document: 2.9.6
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Resources/common.ts b/src/Coscine.Api.Resources/common.ts
index 965d041..43607ee 100644
--- a/src/Coscine.Api.Resources/common.ts
+++ b/src/Coscine.Api.Resources/common.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Resources
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.8.3
+ * The version of the OpenAPI document: 2.9.6
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Resources/configuration.ts b/src/Coscine.Api.Resources/configuration.ts
index 3903420..cc3a6d8 100644
--- a/src/Coscine.Api.Resources/configuration.ts
+++ b/src/Coscine.Api.Resources/configuration.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Resources
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.8.3
+ * The version of the OpenAPI document: 2.9.6
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Resources/index.ts b/src/Coscine.Api.Resources/index.ts
index 0def9b4..a4986d9 100644
--- a/src/Coscine.Api.Resources/index.ts
+++ b/src/Coscine.Api.Resources/index.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Resources
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.8.3
+ * The version of the OpenAPI document: 2.9.6
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Tree/api.ts b/src/Coscine.Api.Tree/api.ts
index fcd51ca..d4a1c02 100644
--- a/src/Coscine.Api.Tree/api.ts
+++ b/src/Coscine.Api.Tree/api.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Tree
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.6.4
+ * The version of the OpenAPI document: 2.8.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Tree/base.ts b/src/Coscine.Api.Tree/base.ts
index d407d9d..fd8bcfa 100644
--- a/src/Coscine.Api.Tree/base.ts
+++ b/src/Coscine.Api.Tree/base.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Tree
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.6.4
+ * The version of the OpenAPI document: 2.8.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -18,7 +18,7 @@ import { Configuration } from "./configuration";
 // @ts-ignore
 import globalAxios, { AxiosPromise, AxiosInstance } from 'axios';
 
-export const BASE_PATH = "https://d-sp23.devlef.campus.rwth-aachen.de/coscine/api/Coscine.Api.Tree".replace(/\/+$/, "");
+export const BASE_PATH = "https://d-sp16.devlef.campus.rwth-aachen.de/coscine/api/Coscine.Api.Tree".replace(/\/+$/, "");
 
 /**
  *
diff --git a/src/Coscine.Api.Tree/common.ts b/src/Coscine.Api.Tree/common.ts
index d84becd..364ceda 100644
--- a/src/Coscine.Api.Tree/common.ts
+++ b/src/Coscine.Api.Tree/common.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Tree
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.6.4
+ * The version of the OpenAPI document: 2.8.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Tree/configuration.ts b/src/Coscine.Api.Tree/configuration.ts
index f2bfb8b..07559ca 100644
--- a/src/Coscine.Api.Tree/configuration.ts
+++ b/src/Coscine.Api.Tree/configuration.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Tree
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.6.4
+ * The version of the OpenAPI document: 2.8.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.Tree/index.ts b/src/Coscine.Api.Tree/index.ts
index c2a6aa7..c19459a 100644
--- a/src/Coscine.Api.Tree/index.ts
+++ b/src/Coscine.Api.Tree/index.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.Tree
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.6.4
+ * The version of the OpenAPI document: 2.8.1
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.User/api.ts b/src/Coscine.Api.User/api.ts
index 21d1dbf..99b9a22 100644
--- a/src/Coscine.Api.User/api.ts
+++ b/src/Coscine.Api.User/api.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.User
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.3.2
+ * The version of the OpenAPI document: 3.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.User/base.ts b/src/Coscine.Api.User/base.ts
index a761c45..66cc7b6 100644
--- a/src/Coscine.Api.User/base.ts
+++ b/src/Coscine.Api.User/base.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.User
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.3.2
+ * The version of the OpenAPI document: 3.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.User/common.ts b/src/Coscine.Api.User/common.ts
index 56d0cff..8f10d2c 100644
--- a/src/Coscine.Api.User/common.ts
+++ b/src/Coscine.Api.User/common.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.User
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.3.2
+ * The version of the OpenAPI document: 3.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.User/configuration.ts b/src/Coscine.Api.User/configuration.ts
index 42fd6c5..5bbfee3 100644
--- a/src/Coscine.Api.User/configuration.ts
+++ b/src/Coscine.Api.User/configuration.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.User
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.3.2
+ * The version of the OpenAPI document: 3.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/Coscine.Api.User/index.ts b/src/Coscine.Api.User/index.ts
index d9d1d5b..6f8fb14 100644
--- a/src/Coscine.Api.User/index.ts
+++ b/src/Coscine.Api.User/index.ts
@@ -4,7 +4,7 @@
  * Coscine.Api.User
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  *
- * The version of the OpenAPI document: 2.3.2
+ * The version of the OpenAPI document: 3.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/src/apis.ts b/src/apis.ts
index 8085c62..5e02365 100644
--- a/src/apis.ts
+++ b/src/apis.ts
@@ -10,13 +10,14 @@ import { OrganizationApiFactory } from './Coscine.Api.Organization/api';
 import { DisciplineApiFactory } from './Coscine.Api.Project/api';
 import { LicenseApiFactory } from './Coscine.Api.Project/api';
 import { ProjectApiFactory } from './Coscine.Api.Project/api';
+import { ProjectQuotaApiFactory } from './Coscine.Api.Project/api';
 import { ProjectRoleApiFactory } from './Coscine.Api.Project/api';
 import { RoleApiFactory } from './Coscine.Api.Project/api';
 import { SearchApiFactory } from './Coscine.Api.Project/api';
 import { SubProjectApiFactory } from './Coscine.Api.Project/api';
 import { VisibilityApiFactory } from './Coscine.Api.Project/api';
-import { QuotaApiFactory } from './Coscine.Api.Quota/api';
 import { ResourceApiFactory } from './Coscine.Api.Resources/api';
+import { ResourceQuotaApiFactory } from './Coscine.Api.Resources/api';
 import { ResourceTypeApiFactory } from './Coscine.Api.Resources/api';
 import { SemanticSearchApiFactory } from './Coscine.Api.Search/api';
 import { TokenApiFactory } from './Coscine.Api.Token/api';
@@ -63,9 +64,10 @@ function implementations(axios?: AxiosInstance) {
     NoticeApi: NoticeApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Notices', axios),
     OrganizationApi: OrganizationApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Organization', axios),
     ProjectApi: ProjectApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Project', axios),
+    ProjectQuotaApi: ProjectQuotaApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Project', axios),
     ProjectRoleApi: ProjectRoleApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Project', axios),
-    QuotaApi: QuotaApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Quota', axios),
     ResourceApi: ResourceApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Resources', axios),
+    ResourceQuotaApi: ResourceQuotaApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Resources', axios),
     ResourceTypeApi: ResourceTypeApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Resources', axios),
     RoleApi: RoleApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Project', axios),
     SearchApi: SearchApiFactory(new Configuration({ 'accessToken': accessToken }), 'https://' + getHostName() + '/coscine/api/Coscine.Api.Project', axios),
diff --git a/src/index.ts b/src/index.ts
index 3a89a17..c64a7ef 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -14,9 +14,10 @@ export const MetadataApi = apis.MetadataApi;
 export const NoticeApi = apis.NoticeApi;
 export const OrganizationApi = apis.OrganizationApi;
 export const ProjectApi = apis.ProjectApi;
+export const ProjectQuotaApi = apis.ProjectQuotaApi;
 export const ProjectRoleApi = apis.ProjectRoleApi;
-export const QuotaApi = apis.QuotaApi;
 export const ResourceApi = apis.ResourceApi;
+export const ResourceQuotaApi = apis.ResourceQuotaApi;
 export const ResourceTypeApi = apis.ResourceTypeApi;
 export const RoleApi = apis.RoleApi;
 export const SearchApi = apis.SearchApi;
diff --git a/yarn.lock-workspace b/yarn.lock-workspace
index 2feab5e..e6b3333 100644
--- a/yarn.lock-workspace
+++ b/yarn.lock-workspace
@@ -23,7 +23,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7":
+"@babel/code-frame@npm:^7.0.0":
   version: 7.16.7
   resolution: "@babel/code-frame@npm:7.16.7"
   dependencies:
@@ -32,167 +32,150 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/compat-data@npm:^7.17.7":
-  version: 7.17.7
-  resolution: "@babel/compat-data@npm:7.17.7"
-  checksum: bf13476676884ce9afc199747ff82f3bcd6d42a9cfb01ce91bdb762b83ea11ec619b6ec532d1a80469ab14f191f33b5d4b9f8796fa8be3bc728d42b0c5e737e3
+"@babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/code-frame@npm:7.18.6"
+  dependencies:
+    "@babel/highlight": ^7.18.6
+  checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba
+  languageName: node
+  linkType: hard
+
+"@babel/compat-data@npm:^7.18.6":
+  version: 7.18.8
+  resolution: "@babel/compat-data@npm:7.18.8"
+  checksum: 3096aafad74936477ebdd039bcf342fba84eb3100e608f3360850fb63e1efa1c66037c4824f814d62f439ab47d25164439343a6e92e9b4357024fdf571505eb9
   languageName: node
   linkType: hard
 
 "@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0":
-  version: 7.17.9
-  resolution: "@babel/core@npm:7.17.9"
+  version: 7.18.6
+  resolution: "@babel/core@npm:7.18.6"
   dependencies:
     "@ampproject/remapping": ^2.1.0
-    "@babel/code-frame": ^7.16.7
-    "@babel/generator": ^7.17.9
-    "@babel/helper-compilation-targets": ^7.17.7
-    "@babel/helper-module-transforms": ^7.17.7
-    "@babel/helpers": ^7.17.9
-    "@babel/parser": ^7.17.9
-    "@babel/template": ^7.16.7
-    "@babel/traverse": ^7.17.9
-    "@babel/types": ^7.17.0
+    "@babel/code-frame": ^7.18.6
+    "@babel/generator": ^7.18.6
+    "@babel/helper-compilation-targets": ^7.18.6
+    "@babel/helper-module-transforms": ^7.18.6
+    "@babel/helpers": ^7.18.6
+    "@babel/parser": ^7.18.6
+    "@babel/template": ^7.18.6
+    "@babel/traverse": ^7.18.6
+    "@babel/types": ^7.18.6
     convert-source-map: ^1.7.0
     debug: ^4.1.0
     gensync: ^1.0.0-beta.2
     json5: ^2.2.1
     semver: ^6.3.0
-  checksum: 2d301e4561a170bb584a735ec412de8fdc40b2052e12380d4a5e36781be5af1fd2a60552e7f0764b0a491a242f20105265bd2a10ff57b30c2842684f02dbb5a2
+  checksum: 711459ebf7afab7b8eff88b7155c3f4a62690545f1c8c2eb6ba5ebaed01abeecb984cf9657847a2151ad24a5645efce765832aa343ce0f0386f311b67b59589a
   languageName: node
   linkType: hard
 
-"@babel/generator@npm:^7.17.3":
-  version: 7.17.7
-  resolution: "@babel/generator@npm:7.17.7"
+"@babel/generator@npm:^7.18.6, @babel/generator@npm:^7.18.7, @babel/generator@npm:^7.7.2":
+  version: 7.18.7
+  resolution: "@babel/generator@npm:7.18.7"
   dependencies:
-    "@babel/types": ^7.17.0
+    "@babel/types": ^7.18.7
+    "@jridgewell/gen-mapping": ^0.3.2
     jsesc: ^2.5.1
-    source-map: ^0.5.0
-  checksum: e7344b9b4559115f2754ecc2ae9508412ea6a8f617544cd3d3f17cabc727bd30630765f96c8a4ebc8901ded1492a3a6c23d695a4f1e8f3042f860b30c891985c
+  checksum: aad4b6873130165e9483af2888bce5a3a5ad9cca0757fc90ae11a0396757d0b295a3bff49282c8df8ab01b31972cc855ae88fd9ddc9ab00d9427dc0e01caeea9
   languageName: node
   linkType: hard
 
-"@babel/generator@npm:^7.17.9, @babel/generator@npm:^7.7.2":
-  version: 7.17.9
-  resolution: "@babel/generator@npm:7.17.9"
+"@babel/helper-compilation-targets@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helper-compilation-targets@npm:7.18.6"
   dependencies:
-    "@babel/types": ^7.17.0
-    jsesc: ^2.5.1
-    source-map: ^0.5.0
-  checksum: afbdd4afbf731ba0a17e7e2d9a2291e6461259af887f88f1178f63514a86e9c18cec462ae8f9cd6df9ba15a18296f47b0e151202bb4f834f7338ac0c07ec8dc8
-  languageName: node
-  linkType: hard
-
-"@babel/helper-compilation-targets@npm:^7.17.7":
-  version: 7.17.7
-  resolution: "@babel/helper-compilation-targets@npm:7.17.7"
-  dependencies:
-    "@babel/compat-data": ^7.17.7
-    "@babel/helper-validator-option": ^7.16.7
-    browserslist: ^4.17.5
+    "@babel/compat-data": ^7.18.6
+    "@babel/helper-validator-option": ^7.18.6
+    browserslist: ^4.20.2
     semver: ^6.3.0
   peerDependencies:
     "@babel/core": ^7.0.0
-  checksum: 24bf851539d5ec8e73779304b5d1ad5b0be09a74459ecc7d9baee9a0fa38ad016e9eaf4b5704504ae8da32f91ce0e31857bbbd9686854caeffd38f58226d3760
+  checksum: f09ddaddc83c241cb7a040025e2ba558daa1c950ce878604d91230aed8d8a90f10dfd5bb0b67bc5b3db8af1576a0d0dac1d65959a06a17259243dbb5730d0ed1
   languageName: node
   linkType: hard
 
-"@babel/helper-environment-visitor@npm:^7.16.7":
-  version: 7.16.7
-  resolution: "@babel/helper-environment-visitor@npm:7.16.7"
-  dependencies:
-    "@babel/types": ^7.16.7
-  checksum: c03a10105d9ebd1fe632a77356b2e6e2f3c44edba9a93b0dc3591b6a66bd7a2e323dd9502f9ce96fc6401234abff1907aa877b6674f7826b61c953f7c8204bbe
+"@babel/helper-environment-visitor@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helper-environment-visitor@npm:7.18.6"
+  checksum: 64fce65a26efb50d2496061ab2de669dc4c42175a8e05c82279497127e5c542538ed22b38194f6f5a4e86bed6ef5a4890aed23408480db0555728b4ca660fc9c
   languageName: node
   linkType: hard
 
-"@babel/helper-function-name@npm:^7.16.7":
-  version: 7.16.7
-  resolution: "@babel/helper-function-name@npm:7.16.7"
+"@babel/helper-function-name@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helper-function-name@npm:7.18.6"
   dependencies:
-    "@babel/helper-get-function-arity": ^7.16.7
-    "@babel/template": ^7.16.7
-    "@babel/types": ^7.16.7
-  checksum: fc77cbe7b10cfa2a262d7a37dca575c037f20419dfe0c5d9317f589599ca24beb5f5c1057748011159149eaec47fe32338c6c6412376fcded68200df470161e1
+    "@babel/template": ^7.18.6
+    "@babel/types": ^7.18.6
+  checksum: bf84c2e0699aa07c3559d4262d199d4a9d0320037c2932efe3246866c3e01ce042c9c2131b5db32ba2409a9af01fb468171052819af759babc8ca93bdc6c9aeb
   languageName: node
   linkType: hard
 
-"@babel/helper-function-name@npm:^7.17.9":
-  version: 7.17.9
-  resolution: "@babel/helper-function-name@npm:7.17.9"
+"@babel/helper-hoist-variables@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helper-hoist-variables@npm:7.18.6"
   dependencies:
-    "@babel/template": ^7.16.7
-    "@babel/types": ^7.17.0
-  checksum: a59b2e5af56d8f43b9b0019939a43774754beb7cb01a211809ca8031c71890999d07739e955343135ec566c4d8ff725435f1f60fb0af3bb546837c1f9f84f496
+    "@babel/types": ^7.18.6
+  checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f
   languageName: node
   linkType: hard
 
-"@babel/helper-get-function-arity@npm:^7.16.7":
-  version: 7.16.7
-  resolution: "@babel/helper-get-function-arity@npm:7.16.7"
+"@babel/helper-module-imports@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helper-module-imports@npm:7.18.6"
   dependencies:
-    "@babel/types": ^7.16.7
-  checksum: 25d969fb207ff2ad5f57a90d118f6c42d56a0171022e200aaa919ba7dc95ae7f92ec71cdea6c63ef3629a0dc962ab4c78e09ca2b437185ab44539193f796e0c3
+    "@babel/types": ^7.18.6
+  checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def
   languageName: node
   linkType: hard
 
-"@babel/helper-hoist-variables@npm:^7.16.7":
-  version: 7.16.7
-  resolution: "@babel/helper-hoist-variables@npm:7.16.7"
-  dependencies:
-    "@babel/types": ^7.16.7
-  checksum: 6ae1641f4a751cd9045346e3f61c3d9ec1312fd779ab6d6fecfe2a96e59a481ad5d7e40d2a840894c13b3fd6114345b157f9e3062fc5f1580f284636e722de60
-  languageName: node
-  linkType: hard
-
-"@babel/helper-module-imports@npm:^7.16.7":
-  version: 7.16.7
-  resolution: "@babel/helper-module-imports@npm:7.16.7"
+"@babel/helper-module-transforms@npm:^7.18.6":
+  version: 7.18.8
+  resolution: "@babel/helper-module-transforms@npm:7.18.8"
   dependencies:
-    "@babel/types": ^7.16.7
-  checksum: ddd2c4a600a2e9a4fee192ab92bf35a627c5461dbab4af31b903d9ba4d6b6e59e0ff3499fde4e2e9a0eebe24906f00b636f8b4d9bd72ff24d50e6618215c3212
+    "@babel/helper-environment-visitor": ^7.18.6
+    "@babel/helper-module-imports": ^7.18.6
+    "@babel/helper-simple-access": ^7.18.6
+    "@babel/helper-split-export-declaration": ^7.18.6
+    "@babel/helper-validator-identifier": ^7.18.6
+    "@babel/template": ^7.18.6
+    "@babel/traverse": ^7.18.8
+    "@babel/types": ^7.18.8
+  checksum: 6aaf436d14495050987b9e0b30259ca58b02cc2466edd0c5d6883d92867e2cc2a311afe5815d5e10ef2511af1fb200de0e593f797b25a6d9a2bb49722bc16d95
   languageName: node
   linkType: hard
 
-"@babel/helper-module-transforms@npm:^7.17.7":
-  version: 7.17.7
-  resolution: "@babel/helper-module-transforms@npm:7.17.7"
-  dependencies:
-    "@babel/helper-environment-visitor": ^7.16.7
-    "@babel/helper-module-imports": ^7.16.7
-    "@babel/helper-simple-access": ^7.17.7
-    "@babel/helper-split-export-declaration": ^7.16.7
-    "@babel/helper-validator-identifier": ^7.16.7
-    "@babel/template": ^7.16.7
-    "@babel/traverse": ^7.17.3
-    "@babel/types": ^7.17.0
-  checksum: 0b8f023aa7ff82dc4864349d54c4557865ad8ba54d78f6d78a86b05ca40f65c2d60acb4a54c5c309e7a4356beb9a89b876e54af4b3c4801ad25f62ec3721f0ae
+"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helper-plugin-utils@npm:7.18.6"
+  checksum: 3dbfceb6c10fdf6c78a0e57f24e991ff8967b8a0bd45fe0314fb4a8ccf7c8ad4c3778c319a32286e7b1f63d507173df56b4e69fb31b71e1b447a73efa1ca723e
   languageName: node
   linkType: hard
 
-"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.8.0":
-  version: 7.16.7
-  resolution: "@babel/helper-plugin-utils@npm:7.16.7"
-  checksum: d08dd86554a186c2538547cd537552e4029f704994a9201d41d82015c10ed7f58f9036e8d1527c3760f042409163269d308b0b3706589039c5f1884619c6d4ce
+"@babel/helper-plugin-utils@npm:^7.8.0":
+  version: 7.17.12
+  resolution: "@babel/helper-plugin-utils@npm:7.17.12"
+  checksum: 4813cf0ddb0f143de032cb88d4207024a2334951db330f8216d6fa253ea320c02c9b2667429ef1a34b5e95d4cfbd085f6cb72d418999751c31d0baf2422cc61d
   languageName: node
   linkType: hard
 
-"@babel/helper-simple-access@npm:^7.17.7":
-  version: 7.17.7
-  resolution: "@babel/helper-simple-access@npm:7.17.7"
+"@babel/helper-simple-access@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helper-simple-access@npm:7.18.6"
   dependencies:
-    "@babel/types": ^7.17.0
-  checksum: 58a9bfd054720024f6ff47fbb113c96061dc2bd31a5e5285756bd3c2e83918c6926900e00150d0fb175d899494fe7d69bf2a8b278c32ef6f6bea8d032e6a3831
+    "@babel/types": ^7.18.6
+  checksum: 37cd36eef199e0517845763c1e6ff6ea5e7876d6d707a6f59c9267c547a50aa0e84260ba9285d49acfaf2cfa0a74a772d92967f32ac1024c961517d40b6c16a5
   languageName: node
   linkType: hard
 
-"@babel/helper-split-export-declaration@npm:^7.16.7":
-  version: 7.16.7
-  resolution: "@babel/helper-split-export-declaration@npm:7.16.7"
+"@babel/helper-split-export-declaration@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helper-split-export-declaration@npm:7.18.6"
   dependencies:
-    "@babel/types": ^7.16.7
-  checksum: e10aaf135465c55114627951b79115f24bc7af72ecbb58d541d66daf1edaee5dde7cae3ec8c3639afaf74526c03ae3ce723444e3b5b3dc77140c456cd84bcaa1
+    "@babel/types": ^7.18.6
+  checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b
   languageName: node
   linkType: hard
 
@@ -203,32 +186,39 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/helper-validator-option@npm:^7.16.7":
-  version: 7.16.7
-  resolution: "@babel/helper-validator-option@npm:7.16.7"
-  checksum: c5ccc451911883cc9f12125d47be69434f28094475c1b9d2ada7c3452e6ac98a1ee8ddd364ca9e3f9855fcdee96cdeafa32543ebd9d17fee7a1062c202e80570
+"@babel/helper-validator-identifier@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helper-validator-identifier@npm:7.18.6"
+  checksum: e295254d616bbe26e48c196a198476ab4d42a73b90478c9842536cf910ead887f5af6b5c4df544d3052a25ccb3614866fa808dc1e3a5a4291acd444e243c0648
   languageName: node
   linkType: hard
 
-"@babel/helpers@npm:^7.17.9":
-  version: 7.17.9
-  resolution: "@babel/helpers@npm:7.17.9"
+"@babel/helper-validator-option@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helper-validator-option@npm:7.18.6"
+  checksum: f9cc6eb7cc5d759c5abf006402180f8d5e4251e9198197428a97e05d65eb2f8ae5a0ce73b1dfd2d35af41d0eb780627a64edf98a4e71f064eeeacef8de58f2cf
+  languageName: node
+  linkType: hard
+
+"@babel/helpers@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/helpers@npm:7.18.6"
   dependencies:
-    "@babel/template": ^7.16.7
-    "@babel/traverse": ^7.17.9
-    "@babel/types": ^7.17.0
-  checksum: 3c6db861e4c82fff2de3efb4ad12e32658c50c29920597cd0979390659b202e5849acd9542e0e2453167a52ccc30156ee4455d64d0e330f020d991d7551566f8
+    "@babel/template": ^7.18.6
+    "@babel/traverse": ^7.18.6
+    "@babel/types": ^7.18.6
+  checksum: 5dea4fa53776703ae4190cacd3f81464e6e00cf0b6908ea9b0af2b3d9992153f3746dd8c33d22ec198f77a8eaf13a273d83cd8847f7aef983801e7bfafa856ec
   languageName: node
   linkType: hard
 
-"@babel/highlight@npm:^7.10.4":
-  version: 7.17.9
-  resolution: "@babel/highlight@npm:7.17.9"
+"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.18.6":
+  version: 7.18.6
+  resolution: "@babel/highlight@npm:7.18.6"
   dependencies:
-    "@babel/helper-validator-identifier": ^7.16.7
+    "@babel/helper-validator-identifier": ^7.18.6
     chalk: ^2.0.0
     js-tokens: ^4.0.0
-  checksum: 7bdf10228f2e4d18f48f114411ed584380d356e7c168d7582c14abd8df9909b2fc09e0a7cd334f47c3eb0bc17e639e0c8d9688c6afd5d09a2bdbf0ac193b11fd
+  checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789
   languageName: node
   linkType: hard
 
@@ -243,21 +233,12 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.17.9":
-  version: 7.17.9
-  resolution: "@babel/parser@npm:7.17.9"
-  bin:
-    parser: ./bin/babel-parser.js
-  checksum: ea59c985ebfae7c0299c8ea63ed34903202f51665db8d59c55b4366e20270b74d7367a2c211fdd2db20f25750df89adcc85ab6c8692061c6459a88efb79f43e6
-  languageName: node
-  linkType: hard
-
-"@babel/parser@npm:^7.16.7, @babel/parser@npm:^7.17.3":
-  version: 7.17.7
-  resolution: "@babel/parser@npm:7.17.7"
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.6, @babel/parser@npm:^7.18.8":
+  version: 7.18.8
+  resolution: "@babel/parser@npm:7.18.8"
   bin:
     parser: ./bin/babel-parser.js
-  checksum: d2612c2597838a605bcbe921fd2c7381b3ab75603c7907020df037c22a3d27f0507285da74553cd75f403300ca76642323ca2e72ba55cc4222d4a20b87505b0c
+  checksum: b8426083f753a000bdb4929cb18c6ce5b68c23759245bf123515bf86cacb9f6e7ff61341a6e0d01a779a9a8a826c86062a0f4db424b88b5b51f67e121985d400
   languageName: node
   linkType: hard
 
@@ -394,64 +375,56 @@ __metadata:
   linkType: hard
 
 "@babel/plugin-syntax-typescript@npm:^7.7.2":
-  version: 7.16.7
-  resolution: "@babel/plugin-syntax-typescript@npm:7.16.7"
+  version: 7.18.6
+  resolution: "@babel/plugin-syntax-typescript@npm:7.18.6"
   dependencies:
-    "@babel/helper-plugin-utils": ^7.16.7
+    "@babel/helper-plugin-utils": ^7.18.6
   peerDependencies:
     "@babel/core": ^7.0.0-0
-  checksum: 661e636060609ede9a402e22603b01784c21fabb0a637e65f561c8159351fe0130bbc11fdefe31902107885e3332fc34d95eb652ac61d3f61f2d61f5da20609e
+  checksum: 2cde73725ec51118ebf410bf02d78781c03fa4d3185993fcc9d253b97443381b621c44810084c5dd68b92eb8bdfae0e5b163e91b32bebbb33852383d1815c05d
   languageName: node
   linkType: hard
 
-"@babel/template@npm:^7.16.7, @babel/template@npm:^7.3.3":
-  version: 7.16.7
-  resolution: "@babel/template@npm:7.16.7"
+"@babel/template@npm:^7.18.6, @babel/template@npm:^7.3.3":
+  version: 7.18.6
+  resolution: "@babel/template@npm:7.18.6"
   dependencies:
-    "@babel/code-frame": ^7.16.7
-    "@babel/parser": ^7.16.7
-    "@babel/types": ^7.16.7
-  checksum: 10cd112e89276e00f8b11b55a51c8b2f1262c318283a980f4d6cdb0286dc05734b9aaeeb9f3ad3311900b09bc913e02343fcaa9d4a4f413964aaab04eb84ac4a
+    "@babel/code-frame": ^7.18.6
+    "@babel/parser": ^7.18.6
+    "@babel/types": ^7.18.6
+  checksum: cb02ed804b7b1938dbecef4e01562013b80681843dd391933315b3dd9880820def3b5b1bff6320d6e4c6a1d63d1d5799630d658ec6b0369c5505e7e4029c38fb
   languageName: node
   linkType: hard
 
-"@babel/traverse@npm:^7.17.3":
-  version: 7.17.3
-  resolution: "@babel/traverse@npm:7.17.3"
+"@babel/traverse@npm:^7.18.6, @babel/traverse@npm:^7.18.8, @babel/traverse@npm:^7.7.2":
+  version: 7.18.8
+  resolution: "@babel/traverse@npm:7.18.8"
   dependencies:
-    "@babel/code-frame": ^7.16.7
-    "@babel/generator": ^7.17.3
-    "@babel/helper-environment-visitor": ^7.16.7
-    "@babel/helper-function-name": ^7.16.7
-    "@babel/helper-hoist-variables": ^7.16.7
-    "@babel/helper-split-export-declaration": ^7.16.7
-    "@babel/parser": ^7.17.3
-    "@babel/types": ^7.17.0
+    "@babel/code-frame": ^7.18.6
+    "@babel/generator": ^7.18.7
+    "@babel/helper-environment-visitor": ^7.18.6
+    "@babel/helper-function-name": ^7.18.6
+    "@babel/helper-hoist-variables": ^7.18.6
+    "@babel/helper-split-export-declaration": ^7.18.6
+    "@babel/parser": ^7.18.8
+    "@babel/types": ^7.18.8
     debug: ^4.1.0
     globals: ^11.1.0
-  checksum: 780d7ecf711758174989794891af08d378f81febdb8932056c0d9979524bf0298e28f8e7708a872d7781151506c28f56c85c63ea3f1f654662c2fcb8a3eb9fdc
+  checksum: c406e01f45f13a666083f6e4ea32d2d5e20ce3a51ea48f6c8fe9d6a0469069f857af06866749959c4396f191393e39e7e6e7b2a8769afca7f50ca1046d6172bd
   languageName: node
   linkType: hard
 
-"@babel/traverse@npm:^7.17.9, @babel/traverse@npm:^7.7.2":
-  version: 7.17.9
-  resolution: "@babel/traverse@npm:7.17.9"
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.7, @babel/types@npm:^7.18.8, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3":
+  version: 7.18.8
+  resolution: "@babel/types@npm:7.18.8"
   dependencies:
-    "@babel/code-frame": ^7.16.7
-    "@babel/generator": ^7.17.9
-    "@babel/helper-environment-visitor": ^7.16.7
-    "@babel/helper-function-name": ^7.17.9
-    "@babel/helper-hoist-variables": ^7.16.7
-    "@babel/helper-split-export-declaration": ^7.16.7
-    "@babel/parser": ^7.17.9
-    "@babel/types": ^7.17.0
-    debug: ^4.1.0
-    globals: ^11.1.0
-  checksum: d907c71d1617589cc0cddc9837cb27bcb9b8f2117c379e13e72653745abe01da24e8c072bd0c91b9db33323ddb1086722756fbc50b487b2608733baf9dd6fd2c
+    "@babel/helper-validator-identifier": ^7.18.6
+    to-fast-properties: ^2.0.0
+  checksum: a485531faa9ff3b83ea94ba6502321dd66e39202c46d7765e4336cb4aff2ff69ebc77d97b17e21331a8eedde1f5490ce00e8a430c1041fc26854d636e6701919
   languageName: node
   linkType: hard
 
-"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.7, @babel/types@npm:^7.17.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.8.3":
+"@babel/types@npm:^7.8.3":
   version: 7.17.0
   resolution: "@babel/types@npm:7.17.0"
   dependencies:
@@ -503,13 +476,13 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@commitlint/config-validator@npm:^16.2.1":
-  version: 16.2.1
-  resolution: "@commitlint/config-validator@npm:16.2.1"
+"@commitlint/config-validator@npm:^17.0.3":
+  version: 17.0.3
+  resolution: "@commitlint/config-validator@npm:17.0.3"
   dependencies:
-    "@commitlint/types": ^16.2.1
-    ajv: ^6.12.6
-  checksum: 1b86832dc03fc7f9442f9358c6c73d42974e9006944b8524bc4b4cd2ce946e50f3eca972737844dc7765a874c465ff5f18dad210f979491f9ee07c831b0eb8d3
+    "@commitlint/types": ^17.0.0
+    ajv: ^8.11.0
+  checksum: bc543193bbe132e1fc351bd912434a7214055e8b865ea661b016c6e05c84714d75d8dc54ac6dcc1d53e872ef3665e4a0cf0e3817cff88a01201bf0b37d23744f
   languageName: node
   linkType: hard
 
@@ -530,10 +503,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@commitlint/execute-rule@npm:^16.2.1":
-  version: 16.2.1
-  resolution: "@commitlint/execute-rule@npm:16.2.1"
-  checksum: 83be0e858fa415ba7d844fc68c7c8bcc3b14074fe862f2129e03ce5fd07a58876d88d080e0d2fbf25e10f6d3189a04bca024def48206fa0f0f1c5890d689539c
+"@commitlint/execute-rule@npm:^17.0.0":
+  version: 17.0.0
+  resolution: "@commitlint/execute-rule@npm:17.0.0"
+  checksum: cb37e5c6e0e16bf04e8f344094146ed2de8155456191da88fb9a1b943a9b5a98e0f6ef49c55b239104eb68634df681fd3be05311bf2da0cb6b171fdd24371669
   languageName: node
   linkType: hard
 
@@ -570,21 +543,21 @@ __metadata:
   linkType: hard
 
 "@commitlint/load@npm:>6.1.1":
-  version: 16.2.4
-  resolution: "@commitlint/load@npm:16.2.4"
+  version: 17.0.3
+  resolution: "@commitlint/load@npm:17.0.3"
   dependencies:
-    "@commitlint/config-validator": ^16.2.1
-    "@commitlint/execute-rule": ^16.2.1
-    "@commitlint/resolve-extends": ^16.2.1
-    "@commitlint/types": ^16.2.1
+    "@commitlint/config-validator": ^17.0.3
+    "@commitlint/execute-rule": ^17.0.0
+    "@commitlint/resolve-extends": ^17.0.3
+    "@commitlint/types": ^17.0.0
     "@types/node": ">=12"
-    chalk: ^4.0.0
+    chalk: ^4.1.0
     cosmiconfig: ^7.0.0
-    cosmiconfig-typescript-loader: ^1.0.0
+    cosmiconfig-typescript-loader: ^2.0.0
     lodash: ^4.17.19
     resolve-from: ^5.0.0
-    typescript: ^4.4.3
-  checksum: b12b6ba2a7fc9ce934b38a22a507a0e414e2d5f95921314049478e2a22c658768570d6db0caafd58411a57369aa9b12e93f313069eb5e136ee10e578d97b7739
+    typescript: ^4.6.4
+  checksum: 786b7064470b4c38577a10910ad725b4371e9f649fbcd4b6018ec4dec2b7f30bc60c6f02807b154ca59f5d5fd347f3d4a46523c9f44e324c05902a2fd29dfb17
   languageName: node
   linkType: hard
 
@@ -647,17 +620,17 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@commitlint/resolve-extends@npm:^16.2.1":
-  version: 16.2.1
-  resolution: "@commitlint/resolve-extends@npm:16.2.1"
+"@commitlint/resolve-extends@npm:^17.0.3":
+  version: 17.0.3
+  resolution: "@commitlint/resolve-extends@npm:17.0.3"
   dependencies:
-    "@commitlint/config-validator": ^16.2.1
-    "@commitlint/types": ^16.2.1
+    "@commitlint/config-validator": ^17.0.3
+    "@commitlint/types": ^17.0.0
     import-fresh: ^3.0.0
     lodash: ^4.17.19
     resolve-from: ^5.0.0
     resolve-global: ^1.0.0
-  checksum: e710fcb24573e1027bf0b7336983cd0539c32734b01831eb0da8a7f500d0734669d38ea75ff93e90c162417fd4db5cc460c2f122d772dfa0f4577f49caaee687
+  checksum: 384fc59a5a8f3da2b4551b92b2734f8d22c39ba389ca31df2f7a8ea1e68e8c15b137faf4ae20529a7b826ca6a7f5e5cd30ab2c903f9d65f74d0b43dcac5f8e0c
   languageName: node
   linkType: hard
 
@@ -699,12 +672,12 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@commitlint/types@npm:^16.2.1":
-  version: 16.2.1
-  resolution: "@commitlint/types@npm:16.2.1"
+"@commitlint/types@npm:^17.0.0":
+  version: 17.0.0
+  resolution: "@commitlint/types@npm:17.0.0"
   dependencies:
-    chalk: ^4.0.0
-  checksum: 93af3c26c36f3b11d99f0cbbb09c8952581eed2a6b7763eb728c0e7e7ecff5072de064a208b80225fb51533823af84ee3117d9c2efbcb63d1f5cfbf6fbfb8ed8
+    chalk: ^4.1.0
+  checksum: 210636d3923f93f7cfc409eac04376b0fe50356a0e08f25a37b43d5cd9ca4363f7b03ca2e7736cbf95b62d67733fe8e1028269d35b4fddd1b3f2a653c90ca85c
   languageName: node
   linkType: hard
 
@@ -762,19 +735,12 @@ __metadata:
   languageName: unknown
   linkType: soft
 
-"@cspotcode/source-map-consumer@npm:0.8.0":
-  version: 0.8.0
-  resolution: "@cspotcode/source-map-consumer@npm:0.8.0"
-  checksum: c0c16ca3d2f58898f1bd74c4f41a189dbcc202e642e60e489cbcc2e52419c4e89bdead02c886a12fb13ea37798ede9e562b2321df997ebc210ae9bd881561b4e
-  languageName: node
-  linkType: hard
-
-"@cspotcode/source-map-support@npm:0.7.0":
-  version: 0.7.0
-  resolution: "@cspotcode/source-map-support@npm:0.7.0"
+"@cspotcode/source-map-support@npm:^0.8.0":
+  version: 0.8.1
+  resolution: "@cspotcode/source-map-support@npm:0.8.1"
   dependencies:
-    "@cspotcode/source-map-consumer": 0.8.0
-  checksum: 9faddda7757cd778b5fd6812137b2cc265810043680d6399acc20441668fafcdc874053be9dccd0d9110087287bfad27eb3bf342f72bceca9aa9059f5d0c4be8
+    "@jridgewell/trace-mapping": 0.3.9
+  checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa
   languageName: node
   linkType: hard
 
@@ -1094,6 +1060,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@jridgewell/gen-mapping@npm:^0.3.2":
+  version: 0.3.2
+  resolution: "@jridgewell/gen-mapping@npm:0.3.2"
+  dependencies:
+    "@jridgewell/set-array": ^1.0.1
+    "@jridgewell/sourcemap-codec": ^1.4.10
+    "@jridgewell/trace-mapping": ^0.3.9
+  checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882
+  languageName: node
+  linkType: hard
+
 "@jridgewell/resolve-uri@npm:^3.0.3":
   version: 3.0.5
   resolution: "@jridgewell/resolve-uri@npm:3.0.5"
@@ -1101,6 +1078,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@jridgewell/set-array@npm:^1.0.1":
+  version: 1.1.2
+  resolution: "@jridgewell/set-array@npm:1.1.2"
+  checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e
+  languageName: node
+  linkType: hard
+
 "@jridgewell/sourcemap-codec@npm:^1.4.10":
   version: 1.4.11
   resolution: "@jridgewell/sourcemap-codec@npm:1.4.11"
@@ -1108,6 +1092,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@jridgewell/trace-mapping@npm:0.3.9":
+  version: 0.3.9
+  resolution: "@jridgewell/trace-mapping@npm:0.3.9"
+  dependencies:
+    "@jridgewell/resolve-uri": ^3.0.3
+    "@jridgewell/sourcemap-codec": ^1.4.10
+  checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef
+  languageName: node
+  linkType: hard
+
 "@jridgewell/trace-mapping@npm:^0.3.0":
   version: 0.3.4
   resolution: "@jridgewell/trace-mapping@npm:0.3.4"
@@ -1118,6 +1112,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@jridgewell/trace-mapping@npm:^0.3.9":
+  version: 0.3.13
+  resolution: "@jridgewell/trace-mapping@npm:0.3.13"
+  dependencies:
+    "@jridgewell/resolve-uri": ^3.0.3
+    "@jridgewell/sourcemap-codec": ^1.4.10
+  checksum: e38254e830472248ca10a6ed1ae75af5e8514f0680245a5e7b53bc3c030fd8691d4d3115d80595b45d3badead68269769ed47ecbbdd67db1343a11f05700e75a
+  languageName: node
+  linkType: hard
+
 "@nodelib/fs.scandir@npm:2.1.5":
   version: 2.1.5
   resolution: "@nodelib/fs.scandir@npm:2.1.5"
@@ -1498,18 +1502,18 @@ __metadata:
   linkType: hard
 
 "@rollup/plugin-node-resolve@npm:^13.0.4":
-  version: 13.2.1
-  resolution: "@rollup/plugin-node-resolve@npm:13.2.1"
+  version: 13.3.0
+  resolution: "@rollup/plugin-node-resolve@npm:13.3.0"
   dependencies:
     "@rollup/pluginutils": ^3.1.0
     "@types/resolve": 1.17.1
-    builtin-modules: ^3.1.0
     deepmerge: ^4.2.2
+    is-builtin-module: ^3.1.0
     is-module: ^1.0.0
     resolve: ^1.19.0
   peerDependencies:
     rollup: ^2.42.0
-  checksum: d0ba3b6f35440b5ebc203a4f62a6c0d2c565491aed9746448288b71d0cd603d1d12fdd9d1381c1be0a4b192f167412e53c34b89fd25413db4ba7d1fa910a29a2
+  checksum: ec5418e6b3c23a9e30683056b3010e9d325316dcfae93fbc673ae64dad8e56a2ce761c15c48f5e2dcfe0c822fdc4a4905ee6346e3dcf90603ba2260afef5a5e6
   languageName: node
   linkType: hard
 
@@ -1734,30 +1738,30 @@ __metadata:
   linkType: hard
 
 "@tsconfig/node10@npm:^1.0.7":
-  version: 1.0.8
-  resolution: "@tsconfig/node10@npm:1.0.8"
-  checksum: b8d5fffbc6b17ef64ef74f7fdbccee02a809a063ade785c3648dae59406bc207f70ea2c4296f92749b33019fa36a5ae716e42e49cc7f1bbf0fd147be0d6b970a
+  version: 1.0.9
+  resolution: "@tsconfig/node10@npm:1.0.9"
+  checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df
   languageName: node
   linkType: hard
 
 "@tsconfig/node12@npm:^1.0.7":
-  version: 1.0.9
-  resolution: "@tsconfig/node12@npm:1.0.9"
-  checksum: a01b2400ab3582b86b589c6d31dcd0c0656f333adecde85d6d7d4086adb059808b82692380bb169546d189bf771ae21d02544a75b57bd6da4a5dd95f8567bec9
+  version: 1.0.11
+  resolution: "@tsconfig/node12@npm:1.0.11"
+  checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a
   languageName: node
   linkType: hard
 
 "@tsconfig/node14@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "@tsconfig/node14@npm:1.0.1"
-  checksum: 976345e896c0f059867f94f8d0f6ddb8b1844fb62bf36b727de8a9a68f024857e5db97ed51d3325e23e0616a5e48c034ff51a8d595b3fe7e955f3587540489be
+  version: 1.0.3
+  resolution: "@tsconfig/node14@npm:1.0.3"
+  checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d
   languageName: node
   linkType: hard
 
 "@tsconfig/node16@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "@tsconfig/node16@npm:1.0.2"
-  checksum: ca94d3639714672bbfd55f03521d3f56bb6a25479bd425da81faf21f13e1e9d15f40f97377dedbbf477a5841c5b0c8f4cd1b391f33553d750b9202c54c2c07aa
+  version: 1.0.3
+  resolution: "@tsconfig/node16@npm:1.0.3"
+  checksum: 3a8b657dd047495b7ad23437d6afd20297ce90380ff0bdee93fc7d39a900dbd8d9e26e53ff6b465e7967ce2adf0b218782590ce9013285121e6a5928fbd6819f
   languageName: node
   linkType: hard
 
@@ -1815,9 +1819,9 @@ __metadata:
   linkType: hard
 
 "@types/estree@npm:*":
-  version: 0.0.51
-  resolution: "@types/estree@npm:0.0.51"
-  checksum: e56a3bcf759fd9185e992e7fdb3c6a5f81e8ff120e871641607581fb3728d16c811702a7d40fa5f869b7f7b4437ab6a87eb8d98ffafeee51e85bbe955932a189
+  version: 0.0.52
+  resolution: "@types/estree@npm:0.0.52"
+  checksum: d1cba22160e7aebf865ea0dbc30807bee272fdafdb57d8dd25749f4b312cd9a99e9e933340b7b26284d7a47c8805aba43bb46cf5f1df00cdaaec67bbdc894d4a
   languageName: node
   linkType: hard
 
@@ -1870,12 +1874,12 @@ __metadata:
   linkType: hard
 
 "@types/jest@npm:^27.0.1":
-  version: 27.4.1
-  resolution: "@types/jest@npm:27.4.1"
+  version: 27.5.2
+  resolution: "@types/jest@npm:27.5.2"
   dependencies:
     jest-matcher-utils: ^27.0.0
     pretty-format: ^27.0.0
-  checksum: 5184f3eef4832d01ee8f59bed15eec45ccc8e29c724a5e6ce37bf74396b37bdf04f557000f45ba4fc38ae6075cf9cfcce3d7a75abc981023c61ceb27230a93e4
+  checksum: 7e11c6826aa429ad990dc262e4e4b54aa36573287fddf15773e4137f07d11d3105f0dd9f1baff73252160a057df23f5529bb83b1bf83cd3f45f9460a5ca5c22e
   languageName: node
   linkType: hard
 
@@ -1926,16 +1930,16 @@ __metadata:
   linkType: hard
 
 "@types/node@npm:>=12":
-  version: 17.0.30
-  resolution: "@types/node@npm:17.0.30"
-  checksum: b3cd2db6474aae3ddac5a312f340f6e4ca200429371e62cb74698fe7f23d7414d0200f643204ddfaa797846328539359e3797d7f2baaf3cdd643b159cf53baa6
+  version: 18.0.3
+  resolution: "@types/node@npm:18.0.3"
+  checksum: 5dec59fbbc1186c808b53df1ca717dad034dbd6a901c75f5b052c845618b531b05f27217122c6254db99529a68618e4cfc534ae3dbf4e88754e9e572df80defa
   languageName: node
   linkType: hard
 
 "@types/node@npm:^16.7.8":
-  version: 16.11.32
-  resolution: "@types/node@npm:16.11.32"
-  checksum: 21f1bcd4f47a443f8a78a58b6ca3488dd9418c71b1185ba067d02222047fb194a3bfba244c32259bcb0cae4d55870b43a908b1f2832ec4aa4f31158f809625fe
+  version: 16.11.43
+  resolution: "@types/node@npm:16.11.43"
+  checksum: 96d09e68347c49ebf84fe1443360edc3f98336f0794256abc8e4f29ef3070546357cae17083d6fd9767b631239367c4f245fe64accff4af057d17bd6694f0b2b
   languageName: node
   linkType: hard
 
@@ -1954,9 +1958,9 @@ __metadata:
   linkType: hard
 
 "@types/prettier@npm:^2.1.5":
-  version: 2.6.0
-  resolution: "@types/prettier@npm:2.6.0"
-  checksum: 946f1f82ce6f31664e023a5d65931c31b7d677b454f528f67dce851d72e7fcfe713076f4251b16c3646eecf1545f5f5b909b4962966341ed9ddf5b80113b3674
+  version: 2.6.3
+  resolution: "@types/prettier@npm:2.6.3"
+  checksum: e1836699ca189fff6d2a73dc22e028b6a6f693ed1180d5998ac29fa197caf8f85aa92cb38db642e4a370e616b451cb5722ad2395dab11c78e025a1455f37d1f0
   languageName: node
   linkType: hard
 
@@ -2215,7 +2219,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"ajv@npm:^6.10.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.6":
+"ajv@npm:^6.10.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4":
   version: 6.12.6
   resolution: "ajv@npm:6.12.6"
   dependencies:
@@ -2227,7 +2231,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"ajv@npm:^8.0.1":
+"ajv@npm:^8.0.1, ajv@npm:^8.11.0":
   version: 8.11.0
   resolution: "ajv@npm:8.11.0"
   dependencies:
@@ -2240,9 +2244,9 @@ __metadata:
   linkType: hard
 
 "ansi-colors@npm:^4.1.1":
-  version: 4.1.1
-  resolution: "ansi-colors@npm:4.1.1"
-  checksum: 138d04a51076cb085da0a7e2d000c5c0bb09f6e772ed5c65c53cb118d37f6c5f1637506d7155fb5f330f0abcf6f12fa2e489ac3f8cdab9da393bf1bb4f9a32b0
+  version: 4.1.3
+  resolution: "ansi-colors@npm:4.1.3"
+  checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e
   languageName: node
   linkType: hard
 
@@ -2480,13 +2484,20 @@ __metadata:
   languageName: node
   linkType: hard
 
-"async@npm:3.2.3, async@npm:^3.2.3":
+"async@npm:3.2.3":
   version: 3.2.3
   resolution: "async@npm:3.2.3"
   checksum: c4bee57ab2249af3dc83ca3ef9acfa8e822c0d5e5aa41bae3eaf7f673648343cd64ecd7d26091ffd357f3f044428b17b5f00098494b6cf8b6b3e9681f0636ca1
   languageName: node
   linkType: hard
 
+"async@npm:^3.2.3":
+  version: 3.2.4
+  resolution: "async@npm:3.2.4"
+  checksum: 43d07459a4e1d09b84a20772414aa684ff4de085cbcaec6eea3c7a8f8150e8c62aa6cd4e699fe8ee93c3a5b324e777d34642531875a0817a35697522c1b02e89
+  languageName: node
+  linkType: hard
+
 "asynckit@npm:^0.4.0":
   version: 0.4.0
   resolution: "asynckit@npm:0.4.0"
@@ -2696,18 +2707,18 @@ __metadata:
   languageName: node
   linkType: hard
 
-"browserslist@npm:^4.17.5":
-  version: 4.20.0
-  resolution: "browserslist@npm:4.20.0"
+"browserslist@npm:^4.20.2":
+  version: 4.20.4
+  resolution: "browserslist@npm:4.20.4"
   dependencies:
-    caniuse-lite: ^1.0.30001313
-    electron-to-chromium: ^1.4.76
+    caniuse-lite: ^1.0.30001349
+    electron-to-chromium: ^1.4.147
     escalade: ^3.1.1
-    node-releases: ^2.0.2
+    node-releases: ^2.0.5
     picocolors: ^1.0.0
   bin:
     browserslist: cli.js
-  checksum: 6d77f54bd43e7e1b86c3f10a3aa84b6c198f2ecc8b345ebd42cb9feb1c143554ad62a0eaf1365f28d14589a4d1fb12b367ade3798fa493dab5cff4ca525384aa
+  checksum: 0e56c42da765524e5c31bc9a1f08afaa8d5dba085071137cf21e56dc78d0cf0283764143df4c7d1c0cd18c3187fc9494e1d93fa0255004f0be493251a28635f9
   languageName: node
   linkType: hard
 
@@ -2736,10 +2747,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"builtin-modules@npm:^3.1.0":
-  version: 3.2.0
-  resolution: "builtin-modules@npm:3.2.0"
-  checksum: 0265aa1ba78e1a16f4e18668d815cb43fb364e6a6b8aa9189c6f44c7b894a551a43b323c40206959d2d4b2568c1f2805607ad6c88adc306a776ce6904cca6715
+"builtin-modules@npm:^3.0.0":
+  version: 3.3.0
+  resolution: "builtin-modules@npm:3.3.0"
+  checksum: db021755d7ed8be048f25668fe2117620861ef6703ea2c65ed2779c9e3636d5c3b82325bd912244293959ff3ae303afa3471f6a15bf5060c103e4cc3a839749d
   languageName: node
   linkType: hard
 
@@ -2926,10 +2937,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"caniuse-lite@npm:^1.0.30001313":
-  version: 1.0.30001317
-  resolution: "caniuse-lite@npm:1.0.30001317"
-  checksum: 0a5fc7fb8c54dde515c2d468e5fc9e0cf2e82dd40d596cdffed90f64c50b5dadd0ab0c25e04769d86488b3115f949abd31d54d1f74d0029b45fa8206a031f47a
+"caniuse-lite@npm:^1.0.30001349":
+  version: 1.0.30001352
+  resolution: "caniuse-lite@npm:1.0.30001352"
+  checksum: 575ad031349e56224471859decd100d0f90c804325bf1b543789b212d6126f6e18925766b325b1d96f75e48df0036e68f92af26d1fb175803fd6ad935bc807ac
   languageName: node
   linkType: hard
 
@@ -3002,9 +3013,9 @@ __metadata:
   linkType: hard
 
 "ci-info@npm:^3.2.0":
-  version: 3.3.0
-  resolution: "ci-info@npm:3.3.0"
-  checksum: c3d86fe374938ecda5093b1ba39acb535d8309185ba3f23587747c6a057e63f45419b406d880304dbc0e1d72392c9a33e42fe9a1e299209bc0ded5efaa232b66
+  version: 3.3.2
+  resolution: "ci-info@npm:3.3.2"
+  checksum: fd81f1edd2d3b0f6cb077b2e84365136d87b9db8c055928c1ad69da8a76c2c2f19cba8ea51b90238302157ca927f91f92b653e933f2398dde4867500f08d6e62
   languageName: node
   linkType: hard
 
@@ -3620,17 +3631,17 @@ __metadata:
   languageName: node
   linkType: hard
 
-"cosmiconfig-typescript-loader@npm:^1.0.0":
-  version: 1.0.9
-  resolution: "cosmiconfig-typescript-loader@npm:1.0.9"
+"cosmiconfig-typescript-loader@npm:^2.0.0":
+  version: 2.0.2
+  resolution: "cosmiconfig-typescript-loader@npm:2.0.2"
   dependencies:
     cosmiconfig: ^7
-    ts-node: ^10.7.0
+    ts-node: ^10.8.1
   peerDependencies:
     "@types/node": "*"
     cosmiconfig: ">=7"
     typescript: ">=3"
-  checksum: 26a0198e03e81a9e7e1a6ce880d7309fdd056c7a3a23b587253e6d1d1224154d3f9edf727d9c0310628e89752353211b75de151b705298b4d0741fa1740c661e
+  checksum: 0c9a777e2e3ff7594d753e5781e8c3817ce5ba493a4e69cfde698a8e231b438695248dcc62a16c661f93ada7f762ac6e24457889439c94f58c094a24aecbd982
   languageName: node
   linkType: hard
 
@@ -3975,6 +3986,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"define-properties@npm:^1.1.4":
+  version: 1.1.4
+  resolution: "define-properties@npm:1.1.4"
+  dependencies:
+    has-property-descriptors: ^1.0.0
+    object-keys: ^1.1.1
+  checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b
+  languageName: node
+  linkType: hard
+
 "del@npm:^6.0.0":
   version: 6.0.0
   resolution: "del@npm:6.0.0"
@@ -4135,9 +4156,9 @@ __metadata:
   linkType: hard
 
 "duplexer3@npm:^0.1.4":
-  version: 0.1.4
-  resolution: "duplexer3@npm:0.1.4"
-  checksum: c2fd6969314607d23439c583699aaa43c4100d66b3e161df55dccd731acc57d5c81a64bb4f250805fbe434ddb1d2623fee2386fb890f5886ca1298690ec53415
+  version: 0.1.5
+  resolution: "duplexer3@npm:0.1.5"
+  checksum: e677cb4c48f031ca728601d6a20bf6aed4c629d69ef9643cb89c67583d673c4ec9317cc6427501f38bd8c368d3a18f173987cc02bd99d8cf8fe3d94259a22a20
   languageName: node
   linkType: hard
 
@@ -4151,10 +4172,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"electron-to-chromium@npm:^1.4.76":
-  version: 1.4.84
-  resolution: "electron-to-chromium@npm:1.4.84"
-  checksum: f38c3694465705f698094f3228c81237d00da9baba627a4b258195a2c136f30f1204cb4a651f870e05aeed71e0f77069c124554b2ee15372e06c275e0b24978d
+"electron-to-chromium@npm:^1.4.147":
+  version: 1.4.151
+  resolution: "electron-to-chromium@npm:1.4.151"
+  checksum: 03be4f1f1f08da6962a2983ae7a092a61edc736010ed10e42c612ce3fa13d47e360313230ddc101bec71f5da5689546d7eee541ea5e1fe4082b09355b30311ec
   languageName: node
   linkType: hard
 
@@ -4261,16 +4282,18 @@ __metadata:
   languageName: node
   linkType: hard
 
-"es-abstract@npm:^1.19.2":
-  version: 1.19.5
-  resolution: "es-abstract@npm:1.19.5"
+"es-abstract@npm:^1.19.2, es-abstract@npm:^1.19.5":
+  version: 1.20.1
+  resolution: "es-abstract@npm:1.20.1"
   dependencies:
     call-bind: ^1.0.2
     es-to-primitive: ^1.2.1
     function-bind: ^1.1.1
+    function.prototype.name: ^1.1.5
     get-intrinsic: ^1.1.1
     get-symbol-description: ^1.0.0
     has: ^1.0.3
+    has-property-descriptors: ^1.0.0
     has-symbols: ^1.0.3
     internal-slot: ^1.0.3
     is-callable: ^1.2.4
@@ -4282,10 +4305,11 @@ __metadata:
     object-inspect: ^1.12.0
     object-keys: ^1.1.1
     object.assign: ^4.1.2
-    string.prototype.trimend: ^1.0.4
-    string.prototype.trimstart: ^1.0.4
-    unbox-primitive: ^1.0.1
-  checksum: 55199b0f179a12b3b0ec9c9f2e3a27a7561686e4f88d46f9ef32c836448a336e367c14d8f792612fc83a64113896e478259e4dffbbcffb3efdd06650f6360324
+    regexp.prototype.flags: ^1.4.3
+    string.prototype.trimend: ^1.0.5
+    string.prototype.trimstart: ^1.0.5
+    unbox-primitive: ^1.0.2
+  checksum: 28da27ae0ed9c76df7ee8ef5c278df79dcfdb554415faf7068bb7c58f8ba8e2a16bfb59e586844be6429ab4c302ca7748979d48442224cb1140b051866d74b7f
   languageName: node
   linkType: hard
 
@@ -5044,6 +5068,18 @@ __metadata:
   languageName: node
   linkType: hard
 
+"function.prototype.name@npm:^1.1.5":
+  version: 1.1.5
+  resolution: "function.prototype.name@npm:1.1.5"
+  dependencies:
+    call-bind: ^1.0.2
+    define-properties: ^1.1.3
+    es-abstract: ^1.19.0
+    functions-have-names: ^1.2.2
+  checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27
+  languageName: node
+  linkType: hard
+
 "functional-red-black-tree@npm:^1.0.1":
   version: 1.0.1
   resolution: "functional-red-black-tree@npm:1.0.1"
@@ -5051,6 +5087,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"functions-have-names@npm:^1.2.2":
+  version: 1.2.3
+  resolution: "functions-have-names@npm:1.2.3"
+  checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5
+  languageName: node
+  linkType: hard
+
 "gauge@npm:^4.0.0":
   version: 4.0.3
   resolution: "gauge@npm:4.0.3"
@@ -5336,7 +5379,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"glob@npm:*, glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.1.7, glob@npm:^7.2.0":
+"glob@npm:*, glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0":
   version: 7.2.0
   resolution: "glob@npm:7.2.0"
   dependencies:
@@ -5364,6 +5407,20 @@ __metadata:
   languageName: node
   linkType: hard
 
+"glob@npm:^7.0.0, glob@npm:^7.1.2, glob@npm:^7.1.6, glob@npm:^7.1.7":
+  version: 7.2.3
+  resolution: "glob@npm:7.2.3"
+  dependencies:
+    fs.realpath: ^1.0.0
+    inflight: ^1.0.4
+    inherits: 2
+    minimatch: ^3.1.1
+    once: ^1.3.0
+    path-is-absolute: ^1.0.0
+  checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133
+  languageName: node
+  linkType: hard
+
 "global-dirs@npm:^0.1.1":
   version: 0.1.1
   resolution: "global-dirs@npm:0.1.1"
@@ -5547,6 +5604,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"has-bigints@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "has-bigints@npm:1.0.2"
+  checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b
+  languageName: node
+  linkType: hard
+
 "has-flag@npm:^3.0.0":
   version: 3.0.0
   resolution: "has-flag@npm:3.0.0"
@@ -5561,6 +5625,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"has-property-descriptors@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "has-property-descriptors@npm:1.0.0"
+  dependencies:
+    get-intrinsic: ^1.1.1
+  checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb
+  languageName: node
+  linkType: hard
+
 "has-symbol-support-x@npm:^1.4.1":
   version: 1.4.2
   resolution: "has-symbol-support-x@npm:1.4.2"
@@ -5985,6 +6058,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"is-builtin-module@npm:^3.1.0":
+  version: 3.1.0
+  resolution: "is-builtin-module@npm:3.1.0"
+  dependencies:
+    builtin-modules: ^3.0.0
+  checksum: f1e5dd2cd5f252d4d799b20a0c8c4f7e9c399c4d141749af76ca0121058d4062c3015d026f1b1409dd3d2a4ddfb9b15cf6eb9c370fed53fea8652ce35b5e95cb
+  languageName: node
+  linkType: hard
+
 "is-callable@npm:^1.1.4, is-callable@npm:^1.2.4":
   version: 1.2.4
   resolution: "is-callable@npm:1.2.4"
@@ -6001,7 +6083,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"is-core-module@npm:^2.2.0":
+"is-core-module@npm:^2.2.0, is-core-module@npm:^2.9.0":
   version: 2.9.0
   resolution: "is-core-module@npm:2.9.0"
   dependencies:
@@ -7907,7 +7989,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"minimatch@npm:^3.0.0, minimatch@npm:^3.0.4, minimatch@npm:^3.1.2":
+"minimatch@npm:^3.0.0, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
   version: 3.1.2
   resolution: "minimatch@npm:3.1.2"
   dependencies:
@@ -8180,10 +8262,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"node-releases@npm:^2.0.2":
-  version: 2.0.2
-  resolution: "node-releases@npm:2.0.2"
-  checksum: da858bf86b4d512842379749f5a5e4196ddab05ba18ffcf29f05bf460beceaca927f070f4430bb5046efec18941ddbc85e4c5fdbb83afc28a38dd6069a2f255e
+"node-releases@npm:^2.0.5":
+  version: 2.0.5
+  resolution: "node-releases@npm:2.0.5"
+  checksum: e85d949addd19f8827f32569d2be5751e7812ccf6cc47879d49f79b5234ff4982225e39a3929315f96370823b070640fb04d79fc0ddec8b515a969a03493a42f
   languageName: node
   linkType: hard
 
@@ -8456,9 +8538,9 @@ __metadata:
   linkType: hard
 
 "nwsapi@npm:^2.2.0":
-  version: 2.2.0
-  resolution: "nwsapi@npm:2.2.0"
-  checksum: 5ef4a9bc0c1a5b7f2e014aa6a4b359a257503b796618ed1ef0eb852098f77e772305bb0e92856e4bbfa3e6c75da48c0113505c76f144555ff38867229c2400a7
+  version: 2.2.1
+  resolution: "nwsapi@npm:2.2.1"
+  checksum: 6c21fcb6950538012516b39137ed9b53ed56843e521362e977282c781169f229e7bca8ec6e207165b19912550f360806b222f77b6c9202bb8d66818456875c3d
   languageName: node
   linkType: hard
 
@@ -9075,11 +9157,11 @@ __metadata:
   linkType: hard
 
 "prettier@npm:^2.3.2":
-  version: 2.6.2
-  resolution: "prettier@npm:2.6.2"
+  version: 2.7.1
+  resolution: "prettier@npm:2.7.1"
   bin:
     prettier: bin-prettier.js
-  checksum: 48d08dde8e9fb1f5bccdd205baa7f192e9fc8bc98f86e1b97d919de804e28c806b0e6cc685e4a88211aa7987fa9668f30baae19580d87ced3ed0f2ec6572106f
+  checksum: 55a4409182260866ab31284d929b3cb961e5fdb91fe0d2e099dac92eaecec890f36e524b4c19e6ceae839c99c6d7195817579cdffc8e2c80da0cb794463a748b
   languageName: node
   linkType: hard
 
@@ -9185,13 +9267,20 @@ __metadata:
   languageName: node
   linkType: hard
 
-"psl@npm:^1.1.28, psl@npm:^1.1.33":
+"psl@npm:^1.1.28":
   version: 1.8.0
   resolution: "psl@npm:1.8.0"
   checksum: 6150048ed2da3f919478bee8a82f3828303bc0fc730fb015a48f83c9977682c7b28c60ab01425a72d82a2891a1681627aa530a991d50c086b48a3be27744bde7
   languageName: node
   linkType: hard
 
+"psl@npm:^1.1.33":
+  version: 1.9.0
+  resolution: "psl@npm:1.9.0"
+  checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d
+  languageName: node
+  linkType: hard
+
 "pump@npm:^3.0.0":
   version: 3.0.0
   resolution: "pump@npm:3.0.0"
@@ -9484,6 +9573,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"regexp.prototype.flags@npm:^1.4.3":
+  version: 1.4.3
+  resolution: "regexp.prototype.flags@npm:1.4.3"
+  dependencies:
+    call-bind: ^1.0.2
+    define-properties: ^1.1.3
+    functions-have-names: ^1.2.2
+  checksum: 51228bae732592adb3ededd5e15426be25f289e9c4ef15212f4da73f4ec3919b6140806374b8894036a86020d054a8d2657d3fee6bb9b4d35d8939c20030b7a6
+  languageName: node
+  linkType: hard
+
 "regexpp@npm:^3.1.0":
   version: 3.2.0
   resolution: "regexpp@npm:3.2.0"
@@ -9510,15 +9610,15 @@ __metadata:
   linkType: hard
 
 "replace-in-file@npm:^6.2.0":
-  version: 6.3.2
-  resolution: "replace-in-file@npm:6.3.2"
+  version: 6.3.5
+  resolution: "replace-in-file@npm:6.3.5"
   dependencies:
     chalk: ^4.1.2
     glob: ^7.2.0
     yargs: ^17.2.1
   bin:
     replace-in-file: bin/cli.js
-  checksum: ae3a0486711edfc1d7d769782764902934aeb327e54a56fbf8a92df22862a56312d86dbe0067274fb3666da668457576f6a775f814742acceea70f5aedb01f49
+  checksum: e5ac3bfee531dcb70cfbb327e6d4ec86bcf4c8045f292e46fb0e4c8743bd70a274c2402918d2609a25fde829862b6e1fe5f09f6c171aabbdde142a9f33008cf1
   languageName: node
   linkType: hard
 
@@ -9623,7 +9723,20 @@ __metadata:
   languageName: node
   linkType: hard
 
-"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0":
+"resolve@npm:^1.1.6, resolve@npm:^1.17.0, resolve@npm:^1.19.0":
+  version: 1.22.1
+  resolution: "resolve@npm:1.22.1"
+  dependencies:
+    is-core-module: ^2.9.0
+    path-parse: ^1.0.7
+    supports-preserve-symlinks-flag: ^1.0.0
+  bin:
+    resolve: bin/resolve
+  checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e
+  languageName: node
+  linkType: hard
+
+"resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0":
   version: 1.22.0
   resolution: "resolve@npm:1.22.0"
   dependencies:
@@ -9646,7 +9759,20 @@ __metadata:
   languageName: node
   linkType: hard
 
-"resolve@patch:resolve@^1.1.6#~builtin<compat/resolve>, resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.17.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.0#~builtin<compat/resolve>":
+"resolve@patch:resolve@^1.1.6#~builtin<compat/resolve>, resolve@patch:resolve@^1.17.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>":
+  version: 1.22.1
+  resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=07638b"
+  dependencies:
+    is-core-module: ^2.9.0
+    path-parse: ^1.0.7
+    supports-preserve-symlinks-flag: ^1.0.0
+  bin:
+    resolve: bin/resolve
+  checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b
+  languageName: node
+  linkType: hard
+
+"resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.0#~builtin<compat/resolve>":
   version: 1.22.0
   resolution: "resolve@patch:resolve@npm%3A1.22.0#~builtin<compat/resolve>::version=1.22.0&hash=07638b"
   dependencies:
@@ -9776,8 +9902,8 @@ __metadata:
   linkType: hard
 
 "rollup@npm:^2.56.3":
-  version: 2.70.2
-  resolution: "rollup@npm:2.70.2"
+  version: 2.76.0
+  resolution: "rollup@npm:2.76.0"
   dependencies:
     fsevents: ~2.3.2
   dependenciesMeta:
@@ -9785,7 +9911,7 @@ __metadata:
       optional: true
   bin:
     rollup: dist/bin/rollup
-  checksum: eb04eb9b87b30517308cb41018d57a23976f42b269c3229e4124746d3136a77aa16ba8b891a3fa571931dd72419eea40642a334835fe4f33161fea30d0b803f7
+  checksum: 58293e1c63c11d4afcfcf619601d5c5136dd3d0c9d3bd6a0b6141fede32027edc1eb53873bbb9a9c1e95e86c67f6ad66185720031b6eadf325972174d1d8fbcb
   languageName: node
   linkType: hard
 
@@ -9815,11 +9941,11 @@ __metadata:
   linkType: hard
 
 "rxjs@npm:^7.5.1":
-  version: 7.5.5
-  resolution: "rxjs@npm:7.5.5"
+  version: 7.5.6
+  resolution: "rxjs@npm:7.5.6"
   dependencies:
     tslib: ^2.1.0
-  checksum: e034f60805210cce756dd2f49664a8108780b117cf5d0e2281506e9e6387f7b4f1532d974a8c8b09314fa7a16dd2f6cff3462072a5789672b5dcb45c4173f3c6
+  checksum: fc05f01364a74dac57490fb3e07ea63b422af04017fae1db641a009073f902ef69f285c5daac31359620dc8d9aee7d81e42b370ca2a8573d1feae0b04329383b
   languageName: node
   linkType: hard
 
@@ -10121,13 +10247,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"source-map@npm:^0.5.0":
-  version: 0.5.7
-  resolution: "source-map@npm:0.5.7"
-  checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d
-  languageName: node
-  linkType: hard
-
 "source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1":
   version: 0.6.1
   resolution: "source-map@npm:0.6.1"
@@ -10360,6 +10479,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"string.prototype.trimend@npm:^1.0.5":
+  version: 1.0.5
+  resolution: "string.prototype.trimend@npm:1.0.5"
+  dependencies:
+    call-bind: ^1.0.2
+    define-properties: ^1.1.4
+    es-abstract: ^1.19.5
+  checksum: d44f543833112f57224e79182debadc9f4f3bf9d48a0414d6f0cbd2a86f2b3e8c0ca1f95c3f8e5b32ae83e91554d79d932fc746b411895f03f93d89ed3dfb6bc
+  languageName: node
+  linkType: hard
+
 "string.prototype.trimstart@npm:^1.0.4":
   version: 1.0.4
   resolution: "string.prototype.trimstart@npm:1.0.4"
@@ -10370,6 +10500,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"string.prototype.trimstart@npm:^1.0.5":
+  version: 1.0.5
+  resolution: "string.prototype.trimstart@npm:1.0.5"
+  dependencies:
+    call-bind: ^1.0.2
+    define-properties: ^1.1.4
+    es-abstract: ^1.19.5
+  checksum: a4857c5399ad709d159a77371eeaa8f9cc284469a0b5e1bfe405de16f1fd4166a8ea6f4180e55032f348d1b679b1599fd4301fbc7a8b72bdb3e795e43f7b1048
+  languageName: node
+  linkType: hard
+
 "string_decoder@npm:^1.1.1":
   version: 1.3.0
   resolution: "string_decoder@npm:1.3.0"
@@ -10829,8 +10970,8 @@ __metadata:
   linkType: hard
 
 "ts-jest@npm:^27.0.5":
-  version: 27.1.4
-  resolution: "ts-jest@npm:27.1.4"
+  version: 27.1.5
+  resolution: "ts-jest@npm:27.1.5"
   dependencies:
     bs-logger: 0.x
     fast-json-stable-stringify: 2.x
@@ -10857,15 +10998,15 @@ __metadata:
       optional: true
   bin:
     ts-jest: cli.js
-  checksum: d2cc2719ed2884a880ab50d2c14c311834be9c88bc79d0064fa0189afce5c296d7676314d26cc3f7e82ddd52df272c2d4137a832c89616f30cbe8f43e30f9a29
+  checksum: 3ef51c538b82f49b3f529331c1a017871a2f90e7a9a6e69333304755036d121818c6b120e2ce32dd161ff8bb2487efec0c790753ecd39b46a9ed1ce0d241464c
   languageName: node
   linkType: hard
 
-"ts-node@npm:^10.2.1, ts-node@npm:^10.7.0":
-  version: 10.7.0
-  resolution: "ts-node@npm:10.7.0"
+"ts-node@npm:^10.2.1, ts-node@npm:^10.8.1":
+  version: 10.8.2
+  resolution: "ts-node@npm:10.8.2"
   dependencies:
-    "@cspotcode/source-map-support": 0.7.0
+    "@cspotcode/source-map-support": ^0.8.0
     "@tsconfig/node10": ^1.0.7
     "@tsconfig/node12": ^1.0.7
     "@tsconfig/node14": ^1.0.0
@@ -10876,7 +11017,7 @@ __metadata:
     create-require: ^1.1.0
     diff: ^4.0.1
     make-error: ^1.1.1
-    v8-compile-cache-lib: ^3.0.0
+    v8-compile-cache-lib: ^3.0.1
     yn: 3.1.1
   peerDependencies:
     "@swc/core": ">=1.2.50"
@@ -10895,7 +11036,7 @@ __metadata:
     ts-node-script: dist/bin-script.js
     ts-node-transpile-only: dist/bin-transpile.js
     ts-script: dist/bin-script-deprecated.js
-  checksum: 2a379e43f7478d0b79e1e63af91fe222d83857727957df4bd3bdf3c0a884de5097b12feb9bbf530074526b8874c0338b0e6328cf334f3a5e2c49c71e837273f7
+  checksum: 1eede939beed9f4db35bcc88d78ef803815b99dcdbed1ecac728d861d74dc694918a7f0f437aa08d026193743a31e7e00e2ee34f875f909b5879981c1808e2a7
   languageName: node
   linkType: hard
 
@@ -11111,13 +11252,13 @@ __metadata:
   languageName: node
   linkType: hard
 
-"typescript@npm:^4.4.3":
-  version: 4.6.4
-  resolution: "typescript@npm:4.6.4"
+"typescript@npm:^4.4.3, typescript@npm:^4.6.4":
+  version: 4.7.4
+  resolution: "typescript@npm:4.7.4"
   bin:
     tsc: bin/tsc
     tsserver: bin/tsserver
-  checksum: e7bfcc39cd4571a63a54e5ea21f16b8445268b9900bf55aee0e02ad981be576acc140eba24f1af5e3c1457767c96cea6d12861768fb386cf3ffb34013718631a
+  checksum: 5750181b1cd7e6482c4195825547e70f944114fb47e58e4aa7553e62f11b3f3173766aef9c281783edfd881f7b8299cf35e3ca8caebe73d8464528c907a164df
   languageName: node
   linkType: hard
 
@@ -11131,13 +11272,13 @@ __metadata:
   languageName: node
   linkType: hard
 
-"typescript@patch:typescript@^4.4.3#~builtin<compat/typescript>":
-  version: 4.6.4
-  resolution: "typescript@patch:typescript@npm%3A4.6.4#~builtin<compat/typescript>::version=4.6.4&hash=bda367"
+"typescript@patch:typescript@^4.4.3#~builtin<compat/typescript>, typescript@patch:typescript@^4.6.4#~builtin<compat/typescript>":
+  version: 4.7.4
+  resolution: "typescript@patch:typescript@npm%3A4.7.4#~builtin<compat/typescript>::version=4.7.4&hash=bda367"
   bin:
     tsc: bin/tsc
     tsserver: bin/tsserver
-  checksum: 1cb434fbc637d347be90e3a0c6cd05e33c38f941713c8786d3031faf1842c2c148ba91d2fac01e7276b0ae3249b8633f1660e32686cc7a8c6a8fd5361dc52c66
+  checksum: 96d3030cb01143570567cb4f3a616b10df65f658f0e74e853e77a089a6a954e35c800be7db8b9bfe9a1ae05d9c2897e281359f65e4caa1caf266368e1c4febd3
   languageName: node
   linkType: hard
 
@@ -11172,6 +11313,18 @@ __metadata:
   languageName: node
   linkType: hard
 
+"unbox-primitive@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "unbox-primitive@npm:1.0.2"
+  dependencies:
+    call-bind: ^1.0.2
+    has-bigints: ^1.0.2
+    has-symbols: ^1.0.3
+    which-boxed-primitive: ^1.0.2
+  checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9
+  languageName: node
+  linkType: hard
+
 "unique-filename@npm:^1.1.1":
   version: 1.1.1
   resolution: "unique-filename@npm:1.1.1"
@@ -11277,7 +11430,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"v8-compile-cache-lib@npm:^3.0.0":
+"v8-compile-cache-lib@npm:^3.0.1":
   version: 3.0.1
   resolution: "v8-compile-cache-lib@npm:3.0.1"
   checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0
@@ -11571,8 +11724,8 @@ __metadata:
   linkType: hard
 
 "ws@npm:^7.4.6":
-  version: 7.5.7
-  resolution: "ws@npm:7.5.7"
+  version: 7.5.8
+  resolution: "ws@npm:7.5.8"
   peerDependencies:
     bufferutil: ^4.0.1
     utf-8-validate: ^5.0.2
@@ -11581,7 +11734,7 @@ __metadata:
       optional: true
     utf-8-validate:
       optional: true
-  checksum: 5c1f669a166fb57560b4e07f201375137fa31d9186afde78b1508926345ce546332f109081574ddc4e38cc474c5406b5fc71c18d71eb75f6e2d2245576976cba
+  checksum: 49479ccf3ddab6500c5906fbcc316e9c8cd44b0ffb3903a6c1caf9b38cb9e06691685722a4c642cfa7d4c6eb390424fc3142cd4f8b940cfc7a9ce9761b1cd65b
   languageName: node
   linkType: hard
 
@@ -11676,8 +11829,8 @@ __metadata:
   linkType: hard
 
 "yargs@npm:^17.0.0, yargs@npm:^17.2.1":
-  version: 17.4.1
-  resolution: "yargs@npm:17.4.1"
+  version: 17.5.1
+  resolution: "yargs@npm:17.5.1"
   dependencies:
     cliui: ^7.0.2
     escalade: ^3.1.1
@@ -11686,7 +11839,7 @@ __metadata:
     string-width: ^4.2.3
     y18n: ^5.0.5
     yargs-parser: ^21.0.0
-  checksum: e9012322870d7e4e912a6ae1f63b203e365f911c0cf158be92c36edefddfb3bd38ce17eb9ef0d18858a4777f047c50589ea22dacb44bd949169ba37dc6d34bee
+  checksum: 00d58a2c052937fa044834313f07910fd0a115dec5ee35919e857eeee3736b21a4eafa8264535800ba8bac312991ce785ecb8a51f4d2cc8c4676d865af1cfbde
   languageName: node
   linkType: hard
 
-- 
GitLab