diff --git a/package-lock.json b/package-lock.json
index 922c7405a885a92f0df0070321471aa13c9cc70c..7a95399dee4e35450cdf875e094186c0c1d5641b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34,7 +34,7 @@
       "devDependencies": {
         "@esbuild-plugins/node-globals-polyfill": "~0.2.3",
         "@esbuild-plugins/node-modules-polyfill": "~0.2.2",
-        "@rushstack/eslint-patch": "~1.7.0",
+        "@rushstack/eslint-patch": "~1.8.0",
         "@tsconfig/node20": "^20.1.2",
         "@types/bootstrap": "~5.2.0",
         "@types/dompurify": "~3.0.0",
@@ -51,12 +51,12 @@
         "eslint-plugin-vue": "~9.23.0",
         "highlight.js": "^11.9.0",
         "npm-run-all": "~4.1.5",
-        "openapi-typescript-codegen": "^0.27.0",
+        "openapi-typescript-codegen": "^0.28.0",
         "prettier": "~3.2.0",
         "rollup-plugin-node-polyfills": "~0.2.1",
         "sass": "^1.66.0",
         "typescript": "~5.3.0",
-        "vite": "~5.1.0",
+        "vite": "~5.2.0",
         "vue-tsc": "~2.0.0"
       }
     },
@@ -70,16 +70,14 @@
       }
     },
     "node_modules/@apidevtools/json-schema-ref-parser": {
-      "version": "10.1.0",
-      "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-10.1.0.tgz",
-      "integrity": "sha512-3e+viyMuXdrcK8v5pvP+SDoAQ77FH6OyRmuK48SZKmdHJRFm87RsSs8qm6kP39a/pOPURByJw+OXzQIqcfmKtA==",
+      "version": "11.5.4",
+      "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.4.tgz",
+      "integrity": "sha512-o2fsypTGU0WxRxbax8zQoHiIB4dyrkwYfcm8TxZ+bx9pCzcWZbQtiMqpgBvWA/nJ2TrGjK5adCLfTH8wUeU/Wg==",
       "dev": true,
       "dependencies": {
         "@jsdevtools/ono": "^7.1.3",
-        "@types/json-schema": "^7.0.11",
-        "@types/lodash.clonedeep": "^4.5.7",
-        "js-yaml": "^4.1.0",
-        "lodash.clonedeep": "^4.5.0"
+        "@types/json-schema": "^7.0.15",
+        "js-yaml": "^4.1.0"
       },
       "engines": {
         "node": ">= 16"
@@ -214,9 +212,9 @@
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@aws-sdk/client-s3": {
-      "version": "3.536.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.536.0.tgz",
-      "integrity": "sha512-UM5txJxq8qKzLDVuW9c904bpb7+u1jOeyJITLz79WpyHSOP6ERHoTx/ltEuGJ4zQVazfkgthqR0lIn09sXEEuw==",
+      "version": "3.537.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.537.0.tgz",
+      "integrity": "sha512-EMPN2toHz1QtSiDeLKS1zrazh+8J0g1Y5t5lCq25iTXqCSV9vB2jCKwG5+OB6L5tAKkwyl1uZofeWLmdFkztEg==",
       "dependencies": {
         "@aws-crypto/sha1-browser": "3.0.0",
         "@aws-crypto/sha256-browser": "3.0.0",
@@ -233,7 +231,7 @@
         "@aws-sdk/middleware-recursion-detection": "3.535.0",
         "@aws-sdk/middleware-sdk-s3": "3.535.0",
         "@aws-sdk/middleware-signing": "3.535.0",
-        "@aws-sdk/middleware-ssec": "3.535.0",
+        "@aws-sdk/middleware-ssec": "3.537.0",
         "@aws-sdk/middleware-user-agent": "3.535.0",
         "@aws-sdk/region-config-resolver": "3.535.0",
         "@aws-sdk/signature-v4-multi-region": "3.535.0",
@@ -572,9 +570,9 @@
       }
     },
     "node_modules/@aws-sdk/lib-storage": {
-      "version": "3.536.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.536.0.tgz",
-      "integrity": "sha512-jeHnxHy02n2oEaXZx0fwNbZwnA1LZvSC6mEQZYlz3trhhqE3Ryn8HnODGR+cUKb8i+iyVCWdKRa4mfz1Xu+sQw==",
+      "version": "3.537.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.537.0.tgz",
+      "integrity": "sha512-BcOGaPJVuswfgcKmmeJA1KQzwpilAfvYXvhm5IFyLRHtlZxbLhObl8QWH4tjl1bNLN05IHuHovs2AEnXBjHZpQ==",
       "dependencies": {
         "@smithy/abort-controller": "^2.2.0",
         "@smithy/middleware-endpoint": "^2.5.0",
@@ -731,9 +729,9 @@
       }
     },
     "node_modules/@aws-sdk/middleware-ssec": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.535.0.tgz",
-      "integrity": "sha512-QAQ++9my7VZzusUPOFcUMdhTnjpGRyy/OvPC+jg9usdfcaSZeQbfzbdaVBalcm2Wt+1qxh3LZSTS+LxKikm02Q==",
+      "version": "3.537.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.537.0.tgz",
+      "integrity": "sha512-2QWMrbwd5eBy5KCYn9a15JEWBgrK2qFEKQN2lqb/6z0bhtevIOxIRfC99tzvRuPt6nixFQ+ynKuBjcfT4ZFrdQ==",
       "dependencies": {
         "@aws-sdk/types": "3.535.0",
         "@smithy/types": "^2.12.0",
@@ -775,9 +773,9 @@
       }
     },
     "node_modules/@aws-sdk/s3-request-presigner": {
-      "version": "3.536.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.536.0.tgz",
-      "integrity": "sha512-bMz7nxYfSjCkw72Hah40o0c9scwU2LQWoT3CkTcWs9OCrG4MCzMTBJNlzRUpxOpfGTZqVzrCaUGINIjh3jP/tQ==",
+      "version": "3.537.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.537.0.tgz",
+      "integrity": "sha512-jG3u9PTl9LpMFr+AY4jx4HvN3+qCFN5vy45U4E8zPagsQ4MbEseUcYpyyC9SHo+3DIgAJQLNV8Zv3LrtdiB5vQ==",
       "dependencies": {
         "@aws-sdk/signature-v4-multi-region": "3.535.0",
         "@aws-sdk/types": "3.535.0",
@@ -984,7 +982,6 @@
       "os": [
         "aix"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1001,7 +998,6 @@
       "os": [
         "android"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1018,7 +1014,6 @@
       "os": [
         "android"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1035,7 +1030,6 @@
       "os": [
         "android"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1052,7 +1046,6 @@
       "os": [
         "darwin"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1069,7 +1062,6 @@
       "os": [
         "darwin"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1086,7 +1078,6 @@
       "os": [
         "freebsd"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1103,7 +1094,6 @@
       "os": [
         "freebsd"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1120,7 +1110,6 @@
       "os": [
         "linux"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1137,7 +1126,6 @@
       "os": [
         "linux"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1154,7 +1142,6 @@
       "os": [
         "linux"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1171,7 +1158,6 @@
       "os": [
         "linux"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1188,7 +1174,6 @@
       "os": [
         "linux"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1205,7 +1190,6 @@
       "os": [
         "linux"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1222,7 +1206,6 @@
       "os": [
         "linux"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1239,7 +1222,6 @@
       "os": [
         "linux"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1256,7 +1238,6 @@
       "os": [
         "linux"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1273,7 +1254,6 @@
       "os": [
         "netbsd"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1290,7 +1270,6 @@
       "os": [
         "openbsd"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1307,7 +1286,6 @@
       "os": [
         "sunos"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1324,7 +1302,6 @@
       "os": [
         "win32"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1341,7 +1318,6 @@
       "os": [
         "win32"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1358,7 +1334,6 @@
       "os": [
         "win32"
       ],
-      "peer": true,
       "engines": {
         "node": ">=12"
       }
@@ -1769,9 +1744,9 @@
       ]
     },
     "node_modules/@rushstack/eslint-patch": {
-      "version": "1.7.2",
-      "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz",
-      "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==",
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.8.0.tgz",
+      "integrity": "sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ==",
       "dev": true
     },
     "node_modules/@smithy/abort-controller": {
@@ -2448,21 +2423,6 @@
       "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
       "dev": true
     },
-    "node_modules/@types/lodash": {
-      "version": "4.17.0",
-      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz",
-      "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==",
-      "dev": true
-    },
-    "node_modules/@types/lodash.clonedeep": {
-      "version": "4.5.9",
-      "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz",
-      "integrity": "sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q==",
-      "dev": true,
-      "dependencies": {
-        "@types/lodash": "*"
-      }
-    },
     "node_modules/@types/node": {
       "version": "20.11.30",
       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz",
@@ -2706,30 +2666,30 @@
       }
     },
     "node_modules/@volar/language-core": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.1.2.tgz",
-      "integrity": "sha512-5qsDp0Gf6fE09UWCeK7bkVn6NxMwC9OqFWQkMMkeej8h8XjyABPdRygC2RCrqDrfVdGijqlMQeXs6yRS+vfZYA==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.1.3.tgz",
+      "integrity": "sha512-F93KYZYqcYltG7NihfnLt/omMZOtrQtsh2+wj+cgx3xolopU+TZvmwlZWOjw3ObZGFj3SKBb4jJn6VSfSch6RA==",
       "dev": true,
       "dependencies": {
-        "@volar/source-map": "2.1.2"
+        "@volar/source-map": "2.1.3"
       }
     },
     "node_modules/@volar/source-map": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.1.2.tgz",
-      "integrity": "sha512-yFJqsuLm1OaWrsz9E3yd3bJcYIlHqdZ8MbmIoZLrAzMYQDcoF26/INIhgziEXSdyHc8xd7rd/tJdSnUyh0gH4Q==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.1.3.tgz",
+      "integrity": "sha512-j+R+NG/OlDgdNMttADxNuSM9Z26StT/Bjw0NgSydI05Vihngn9zvaP/xXwfWs5qQrRzbKVFxJebS2ks5m/URuA==",
       "dev": true,
       "dependencies": {
         "muggle-string": "^0.4.0"
       }
     },
     "node_modules/@volar/typescript": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.1.2.tgz",
-      "integrity": "sha512-lhTancZqamvaLvoz0u/uth8dpudENNt2LFZOWCw9JZiX14xRFhdhfzmphiCRb7am9E6qAJSbdS/gMt1utXAoHQ==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.1.3.tgz",
+      "integrity": "sha512-ZZqLMih4mvu2eJAW3UCFm84OM/ojYMoA/BU/W1TctT5F2nVzNJmW4jxMWmP3wQzxCbATfTa5gLb1+BSI9NBMBg==",
       "dev": true,
       "dependencies": {
-        "@volar/language-core": "2.1.2",
+        "@volar/language-core": "2.1.3",
         "path-browserify": "^1.0.1"
       }
     },
@@ -2844,12 +2804,12 @@
       }
     },
     "node_modules/@vue/language-core": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.6.tgz",
-      "integrity": "sha512-UzqU12tzf9XLqRO3TiWPwRNpP4fyUzE6MAfOQWQNZ4jy6a30ARRUpmODDKq6O8C4goMc2AlPqTmjOHPjHkilSg==",
+      "version": "2.0.7",
+      "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.7.tgz",
+      "integrity": "sha512-Vh1yZX3XmYjn9yYLkjU8DN6L0ceBtEcapqiyclHne8guG84IaTzqtvizZB1Yfxm3h6m7EIvjerLO5fvOZO6IIQ==",
       "dev": true,
       "dependencies": {
-        "@volar/language-core": "~2.1.2",
+        "@volar/language-core": "~2.1.3",
         "@vue/compiler-dom": "^3.4.0",
         "@vue/shared": "^3.4.0",
         "computeds": "^0.0.1",
@@ -3315,12 +3275,12 @@
       }
     },
     "node_modules/commander": {
-      "version": "11.1.0",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
-      "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+      "version": "12.0.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz",
+      "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==",
       "dev": true,
       "engines": {
-        "node": ">=16"
+        "node": ">=18"
       }
     },
     "node_modules/computeds": {
@@ -3673,7 +3633,6 @@
       "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
       "dev": true,
       "hasInstallScript": true,
-      "peer": true,
       "bin": {
         "esbuild": "bin/esbuild"
       },
@@ -4075,9 +4034,9 @@
       }
     },
     "node_modules/filesize": {
-      "version": "10.1.0",
-      "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.0.tgz",
-      "integrity": "sha512-GTLKYyBSDz3nPhlLVPjPWZCnhkd9TrrRArNcy8Z+J2cqScB7h2McAzR6NBX6nYOoWafql0roY8hrocxnZBv9CQ==",
+      "version": "10.1.1",
+      "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.1.tgz",
+      "integrity": "sha512-L0cdwZrKlwZQkMSFnCflJ6J2Y+5egO/p3vgRSDQGxQt++QbUZe5gMbRO6kg6gzwQDPvq2Fk9AmoxUNfZ5gdqaQ==",
       "engines": {
         "node": ">= 10.4.0"
       }
@@ -5021,12 +4980,6 @@
       "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
       "dev": true
     },
-    "node_modules/lodash.clonedeep": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
-      "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
-      "dev": true
-    },
     "node_modules/lodash.merge": {
       "version": "4.6.2",
       "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -5449,14 +5402,14 @@
       }
     },
     "node_modules/openapi-typescript-codegen": {
-      "version": "0.27.0",
-      "resolved": "https://registry.npmjs.org/openapi-typescript-codegen/-/openapi-typescript-codegen-0.27.0.tgz",
-      "integrity": "sha512-QyQEod/vuel3zfnTRC3GgmYsqLPSBzB2OL4ojMYjO9hJmfYW02T+7tbQWEnuqWdhh2KSOBf3L8h59vLStr6vwA==",
+      "version": "0.28.0",
+      "resolved": "https://registry.npmjs.org/openapi-typescript-codegen/-/openapi-typescript-codegen-0.28.0.tgz",
+      "integrity": "sha512-BZTsMUwhA/h2zCzisjagLUPQNHE64N1EN074yGB+WqA0LFlJwy8sKQYrXH5G4phbjj9KSPx7xuWKO4hkPIOARw==",
       "dev": true,
       "dependencies": {
-        "@apidevtools/json-schema-ref-parser": "^10.1.0",
+        "@apidevtools/json-schema-ref-parser": "^11.5.4",
         "camelcase": "^6.3.0",
-        "commander": "^11.1.0",
+        "commander": "^12.0.0",
         "fs-extra": "^11.2.0",
         "handlebars": "^4.7.8"
       },
@@ -5682,9 +5635,9 @@
       }
     },
     "node_modules/postcss": {
-      "version": "8.4.36",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz",
-      "integrity": "sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==",
+      "version": "8.4.38",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+      "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
       "funding": [
         {
           "type": "opencollective",
@@ -5702,7 +5655,7 @@
       "dependencies": {
         "nanoid": "^3.3.7",
         "picocolors": "^1.0.0",
-        "source-map-js": "^1.1.0"
+        "source-map-js": "^1.2.0"
       },
       "engines": {
         "node": "^10 || ^12 || >=14"
@@ -6216,9 +6169,9 @@
       }
     },
     "node_modules/source-map-js": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.1.0.tgz",
-      "integrity": "sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+      "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
       "engines": {
         "node": ">=0.10.0"
       }
@@ -6640,14 +6593,14 @@
       }
     },
     "node_modules/vite": {
-      "version": "5.1.6",
-      "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.6.tgz",
-      "integrity": "sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==",
+      "version": "5.2.2",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.2.tgz",
+      "integrity": "sha512-FWZbz0oSdLq5snUI0b6sULbz58iXFXdvkZfZWR/F0ZJuKTSPO7v72QPXt6KqYeMFb0yytNp6kZosxJ96Nr/wDQ==",
       "dev": true,
       "dependencies": {
-        "esbuild": "^0.19.3",
-        "postcss": "^8.4.35",
-        "rollup": "^4.2.0"
+        "esbuild": "^0.20.1",
+        "postcss": "^8.4.36",
+        "rollup": "^4.13.0"
       },
       "bin": {
         "vite": "bin/vite.js"
@@ -6694,412 +6647,6 @@
         }
       }
     },
-    "node_modules/vite/node_modules/@esbuild/aix-ppc64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz",
-      "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==",
-      "cpu": [
-        "ppc64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "aix"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/android-arm": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz",
-      "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==",
-      "cpu": [
-        "arm"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "android"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/android-arm64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz",
-      "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==",
-      "cpu": [
-        "arm64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "android"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/android-x64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz",
-      "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "android"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/darwin-arm64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz",
-      "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==",
-      "cpu": [
-        "arm64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "darwin"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/darwin-x64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz",
-      "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "darwin"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/freebsd-arm64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz",
-      "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==",
-      "cpu": [
-        "arm64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "freebsd"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/freebsd-x64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz",
-      "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "freebsd"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/linux-arm": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz",
-      "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==",
-      "cpu": [
-        "arm"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/linux-arm64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz",
-      "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==",
-      "cpu": [
-        "arm64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/linux-ia32": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz",
-      "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==",
-      "cpu": [
-        "ia32"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/linux-loong64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz",
-      "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==",
-      "cpu": [
-        "loong64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/linux-mips64el": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz",
-      "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==",
-      "cpu": [
-        "mips64el"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/linux-ppc64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz",
-      "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==",
-      "cpu": [
-        "ppc64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/linux-riscv64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz",
-      "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==",
-      "cpu": [
-        "riscv64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/linux-s390x": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz",
-      "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==",
-      "cpu": [
-        "s390x"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/linux-x64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz",
-      "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "linux"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/netbsd-x64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz",
-      "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "netbsd"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/openbsd-x64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz",
-      "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "openbsd"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/sunos-x64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz",
-      "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "sunos"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/win32-arm64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz",
-      "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==",
-      "cpu": [
-        "arm64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/win32-ia32": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz",
-      "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==",
-      "cpu": [
-        "ia32"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/win32-x64": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
-      "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/esbuild": {
-      "version": "0.19.12",
-      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
-      "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
-      "dev": true,
-      "hasInstallScript": true,
-      "bin": {
-        "esbuild": "bin/esbuild"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "optionalDependencies": {
-        "@esbuild/aix-ppc64": "0.19.12",
-        "@esbuild/android-arm": "0.19.12",
-        "@esbuild/android-arm64": "0.19.12",
-        "@esbuild/android-x64": "0.19.12",
-        "@esbuild/darwin-arm64": "0.19.12",
-        "@esbuild/darwin-x64": "0.19.12",
-        "@esbuild/freebsd-arm64": "0.19.12",
-        "@esbuild/freebsd-x64": "0.19.12",
-        "@esbuild/linux-arm": "0.19.12",
-        "@esbuild/linux-arm64": "0.19.12",
-        "@esbuild/linux-ia32": "0.19.12",
-        "@esbuild/linux-loong64": "0.19.12",
-        "@esbuild/linux-mips64el": "0.19.12",
-        "@esbuild/linux-ppc64": "0.19.12",
-        "@esbuild/linux-riscv64": "0.19.12",
-        "@esbuild/linux-s390x": "0.19.12",
-        "@esbuild/linux-x64": "0.19.12",
-        "@esbuild/netbsd-x64": "0.19.12",
-        "@esbuild/openbsd-x64": "0.19.12",
-        "@esbuild/sunos-x64": "0.19.12",
-        "@esbuild/win32-arm64": "0.19.12",
-        "@esbuild/win32-ia32": "0.19.12",
-        "@esbuild/win32-x64": "0.19.12"
-      }
-    },
     "node_modules/vue": {
       "version": "3.4.21",
       "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.21.tgz",
@@ -7178,13 +6725,13 @@
       }
     },
     "node_modules/vue-tsc": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.6.tgz",
-      "integrity": "sha512-kK50W4XqQL34vHRkxlRWLicrT6+F9xfgCgJ4KSmCHcytKzc1u3c94XXgI+CjmhOSxyw0krpExF7Obo7y4+0dVQ==",
+      "version": "2.0.7",
+      "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.7.tgz",
+      "integrity": "sha512-LYa0nInkfcDBB7y8jQ9FQ4riJTRNTdh98zK/hzt4gEpBZQmf30dPhP+odzCa+cedGz6B/guvJEd0BavZaRptjg==",
       "dev": true,
       "dependencies": {
-        "@volar/typescript": "~2.1.2",
-        "@vue/language-core": "2.0.6",
+        "@volar/typescript": "~2.1.3",
+        "@vue/language-core": "2.0.7",
         "semver": "^7.5.4"
       },
       "bin": {
diff --git a/package.json b/package.json
index 350b6c4284c222cf0b4bb32ed9f0a93e9309a917..bfb4b05cf54eeb8cb69cb36c9922837e201428cb 100644
--- a/package.json
+++ b/package.json
@@ -41,7 +41,7 @@
   "devDependencies": {
     "@esbuild-plugins/node-globals-polyfill": "~0.2.3",
     "@esbuild-plugins/node-modules-polyfill": "~0.2.2",
-    "@rushstack/eslint-patch": "~1.7.0",
+    "@rushstack/eslint-patch": "~1.8.0",
     "@tsconfig/node20": "^20.1.2",
     "@types/bootstrap": "~5.2.0",
     "@types/dompurify": "~3.0.0",
@@ -58,12 +58,12 @@
     "eslint-plugin-vue": "~9.23.0",
     "highlight.js": "^11.9.0",
     "npm-run-all": "~4.1.5",
-    "openapi-typescript-codegen": "^0.27.0",
+    "openapi-typescript-codegen": "^0.28.0",
     "prettier": "~3.2.0",
     "rollup-plugin-node-polyfills": "~0.2.1",
     "sass": "^1.66.0",
     "typescript": "~5.3.0",
-    "vite": "~5.1.0",
+    "vite": "~5.2.0",
     "vue-tsc": "~2.0.0"
   }
 }
diff --git a/src/client/auth/core/ApiError.ts b/src/client/auth/core/ApiError.ts
index d6b8fcc3ad0b6b2bdf1aa4df97ec598e64995648..ec7b16af6f41b1323a8e3aa3d529bf2324959e66 100644
--- a/src/client/auth/core/ApiError.ts
+++ b/src/client/auth/core/ApiError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/core/ApiRequestOptions.ts b/src/client/auth/core/ApiRequestOptions.ts
index c19adcc94dc5f015865368d6d64751de5c243aa3..93143c3ce1ba5323894d4ac10299f62493f030f6 100644
--- a/src/client/auth/core/ApiRequestOptions.ts
+++ b/src/client/auth/core/ApiRequestOptions.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/core/ApiResult.ts b/src/client/auth/core/ApiResult.ts
index ad8fef2bc334c2aedf5c043896fd394229453ff0..ee1126e2ccd1e37dba97511c38c56a282ceac4dc 100644
--- a/src/client/auth/core/ApiResult.ts
+++ b/src/client/auth/core/ApiResult.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/core/CancelablePromise.ts b/src/client/auth/core/CancelablePromise.ts
index eb02246c31f61b897667a6433d55b8b413bafbc1..d70de92946d977e9da7970871375117a8b04770a 100644
--- a/src/client/auth/core/CancelablePromise.ts
+++ b/src/client/auth/core/CancelablePromise.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
@@ -85,9 +85,9 @@ export class CancelablePromise<T> implements Promise<T> {
         });
     }
 
-     get [Symbol.toStringTag]() {
-            return "Cancellable Promise";
-     }
+    get [Symbol.toStringTag]() {
+        return "Cancellable Promise";
+    }
 
     public then<TResult1 = T, TResult2 = never>(
         onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,
diff --git a/src/client/auth/core/OpenAPI.ts b/src/client/auth/core/OpenAPI.ts
index 9484fb91af3169d50a2a4fee46d01bed59b08907..0f6eb187b0cec075a8d22e60fc2bb652cb7d3ee7 100644
--- a/src/client/auth/core/OpenAPI.ts
+++ b/src/client/auth/core/OpenAPI.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/core/request.ts b/src/client/auth/core/request.ts
index c6a0602a006d2d1855c2ab50d2d7f43c2eb1bab4..1dc6fef4aab4086ff57b48d26b20ec26bb8fa472 100644
--- a/src/client/auth/core/request.ts
+++ b/src/client/auth/core/request.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
@@ -175,7 +175,7 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptio
         headers['Authorization'] = `Basic ${credentials}`;
     }
 
-    if (options.body) {
+    if (options.body !== undefined) {
         if (options.mediaType) {
             headers['Content-Type'] = options.mediaType;
         } else if (isBlob(options.body)) {
@@ -215,6 +215,7 @@ export const sendRequest = async <T>(
         data: body ?? formData,
         method: options.method,
         withCredentials: config.WITH_CREDENTIALS,
+        withXSRFToken: config.CREDENTIALS === 'include' ? config.WITH_CREDENTIALS : false,
         cancelToken: source.token,
     };
 
diff --git a/src/client/auth/index.ts b/src/client/auth/index.ts
index e7078bd1a954b8bcc121ab77b85298540c58efa8..016081e45f1b86aa33a4ac54f09bfecbeb88a5f8 100644
--- a/src/client/auth/index.ts
+++ b/src/client/auth/index.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/models/ErrorDetail.ts b/src/client/auth/models/ErrorDetail.ts
index 69dd37eb86bc15e2ab2037f3f82516493801e74d..3b8a588e591ca42adc538757044eee2cf6b5881a 100644
--- a/src/client/auth/models/ErrorDetail.ts
+++ b/src/client/auth/models/ErrorDetail.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/models/HTTPValidationError.ts b/src/client/auth/models/HTTPValidationError.ts
index 892e4257ccbb49769737cb2e78e0aad49d81a3b1..f9b1a79e2c6debaa712bb1660d4353552f6fbfad 100644
--- a/src/client/auth/models/HTTPValidationError.ts
+++ b/src/client/auth/models/HTTPValidationError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/models/OIDCProvider.ts b/src/client/auth/models/OIDCProvider.ts
index 6bcf072eac6eea7b89228c999bf7e1954b8933ab..55d0ffe88b5308c7482c32344c7397a340b2770b 100644
--- a/src/client/auth/models/OIDCProvider.ts
+++ b/src/client/auth/models/OIDCProvider.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/models/RoleEnum.ts b/src/client/auth/models/RoleEnum.ts
index d1a23ae7bd28accb81fa3d196c78cafd7aebe846..66c17a59edee7c6ac452ac757275260821cdd48f 100644
--- a/src/client/auth/models/RoleEnum.ts
+++ b/src/client/auth/models/RoleEnum.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/models/User.ts b/src/client/auth/models/User.ts
index 5a1a2a0818d6fde1ed83cf5085a558edd232589b..537adb1841d16979e6ee0939fa21a4f96a232c00 100644
--- a/src/client/auth/models/User.ts
+++ b/src/client/auth/models/User.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/models/ValidationError.ts b/src/client/auth/models/ValidationError.ts
index f2ff49a2b9ad95d18a90c95dc2a7c0b60b7e85e7..aaf1c921e8b674c3da9543cc2cb597e8e90d6d8f 100644
--- a/src/client/auth/models/ValidationError.ts
+++ b/src/client/auth/models/ValidationError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/services/AuthService.ts b/src/client/auth/services/AuthService.ts
index d1874e142839f9cd4b1fab476bce3665e7aed035..5cddd82bd5288be20e5ea44be156dbff0bab998d 100644
--- a/src/client/auth/services/AuthService.ts
+++ b/src/client/auth/services/AuthService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/auth/services/UserService.ts b/src/client/auth/services/UserService.ts
index 99bdb40e5345009387559aa2731b4cad02909f96..37b02f80d6aeaf418bab6a02d9ffa4e1b01fbacf 100644
--- a/src/client/auth/services/UserService.ts
+++ b/src/client/auth/services/UserService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/core/ApiError.ts b/src/client/resource/core/ApiError.ts
index d6b8fcc3ad0b6b2bdf1aa4df97ec598e64995648..ec7b16af6f41b1323a8e3aa3d529bf2324959e66 100644
--- a/src/client/resource/core/ApiError.ts
+++ b/src/client/resource/core/ApiError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/core/ApiRequestOptions.ts b/src/client/resource/core/ApiRequestOptions.ts
index c19adcc94dc5f015865368d6d64751de5c243aa3..93143c3ce1ba5323894d4ac10299f62493f030f6 100644
--- a/src/client/resource/core/ApiRequestOptions.ts
+++ b/src/client/resource/core/ApiRequestOptions.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/core/ApiResult.ts b/src/client/resource/core/ApiResult.ts
index ad8fef2bc334c2aedf5c043896fd394229453ff0..ee1126e2ccd1e37dba97511c38c56a282ceac4dc 100644
--- a/src/client/resource/core/ApiResult.ts
+++ b/src/client/resource/core/ApiResult.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/core/CancelablePromise.ts b/src/client/resource/core/CancelablePromise.ts
index eb02246c31f61b897667a6433d55b8b413bafbc1..d70de92946d977e9da7970871375117a8b04770a 100644
--- a/src/client/resource/core/CancelablePromise.ts
+++ b/src/client/resource/core/CancelablePromise.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
@@ -85,9 +85,9 @@ export class CancelablePromise<T> implements Promise<T> {
         });
     }
 
-     get [Symbol.toStringTag]() {
-            return "Cancellable Promise";
-     }
+    get [Symbol.toStringTag]() {
+        return "Cancellable Promise";
+    }
 
     public then<TResult1 = T, TResult2 = never>(
         onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,
diff --git a/src/client/resource/core/OpenAPI.ts b/src/client/resource/core/OpenAPI.ts
index 6b53d3b96ba6dd7e71fd2068a1a9e3a0a139eab6..0ead9e182ad0cce6f9abc4021dec0367eb60cb63 100644
--- a/src/client/resource/core/OpenAPI.ts
+++ b/src/client/resource/core/OpenAPI.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/core/request.ts b/src/client/resource/core/request.ts
index c6a0602a006d2d1855c2ab50d2d7f43c2eb1bab4..1dc6fef4aab4086ff57b48d26b20ec26bb8fa472 100644
--- a/src/client/resource/core/request.ts
+++ b/src/client/resource/core/request.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
@@ -175,7 +175,7 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptio
         headers['Authorization'] = `Basic ${credentials}`;
     }
 
-    if (options.body) {
+    if (options.body !== undefined) {
         if (options.mediaType) {
             headers['Content-Type'] = options.mediaType;
         } else if (isBlob(options.body)) {
@@ -215,6 +215,7 @@ export const sendRequest = async <T>(
         data: body ?? formData,
         method: options.method,
         withCredentials: config.WITH_CREDENTIALS,
+        withXSRFToken: config.CREDENTIALS === 'include' ? config.WITH_CREDENTIALS : false,
         cancelToken: source.token,
     };
 
diff --git a/src/client/resource/index.ts b/src/client/resource/index.ts
index 52dfc0e292618fbe4fa8d1d04d0659bc2f16857c..8a53b0b2f563ff6d17c66114d31cfa106d74c038 100644
--- a/src/client/resource/index.ts
+++ b/src/client/resource/index.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/ErrorDetail.ts b/src/client/resource/models/ErrorDetail.ts
index 69dd37eb86bc15e2ab2037f3f82516493801e74d..3b8a588e591ca42adc538757044eee2cf6b5881a 100644
--- a/src/client/resource/models/ErrorDetail.ts
+++ b/src/client/resource/models/ErrorDetail.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/FileTree.ts b/src/client/resource/models/FileTree.ts
index 351cd8136de51e66926f5e7302cc5eb919913681..1771d7910d84faca0d50045561a8b879a2980d84 100644
--- a/src/client/resource/models/FileTree.ts
+++ b/src/client/resource/models/FileTree.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/HTTPValidationError.ts b/src/client/resource/models/HTTPValidationError.ts
index 892e4257ccbb49769737cb2e78e0aad49d81a3b1..f9b1a79e2c6debaa712bb1660d4353552f6fbfad 100644
--- a/src/client/resource/models/HTTPValidationError.ts
+++ b/src/client/resource/models/HTTPValidationError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/ResourceIn.ts b/src/client/resource/models/ResourceIn.ts
index 661058019f2de83f2b1f3df27aeea194827daae7..2f6c25344f26b22af9af2f6e1299a61686178613 100644
--- a/src/client/resource/models/ResourceIn.ts
+++ b/src/client/resource/models/ResourceIn.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/ResourceOut.ts b/src/client/resource/models/ResourceOut.ts
index f708c6ba3ae5d4dcc1e3ddd2c50326cfa2a34c71..60b1290a47dc8151de42df19e72fcaf143092f6f 100644
--- a/src/client/resource/models/ResourceOut.ts
+++ b/src/client/resource/models/ResourceOut.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/ResourceVersionIn.ts b/src/client/resource/models/ResourceVersionIn.ts
index 68eb986b9852ca442172b4d9ac7ba2b1e33d8d00..c4421228c96da6c8a0530d37ed86fdecdbb99628 100644
--- a/src/client/resource/models/ResourceVersionIn.ts
+++ b/src/client/resource/models/ResourceVersionIn.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/ResourceVersionOut.ts b/src/client/resource/models/ResourceVersionOut.ts
index 7ab1dda6759829a8e9a4e3c4b0b9cf3658c8cb56..321971c86c97589a8f29f8bd73c99ae854ef04bb 100644
--- a/src/client/resource/models/ResourceVersionOut.ts
+++ b/src/client/resource/models/ResourceVersionOut.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/Status.ts b/src/client/resource/models/Status.ts
index e6f95179ce78544b3dba364c2fcfe0062ccfc08e..71fd950a1903618a6dacb1e94e7a2cbf7489db34 100644
--- a/src/client/resource/models/Status.ts
+++ b/src/client/resource/models/Status.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/UserRequestAnswer.ts b/src/client/resource/models/UserRequestAnswer.ts
index daf61d2400223daea12e2569b997bde58a9b405e..371bc72fdc40b0acccdcbf3c43ad5444c1721454 100644
--- a/src/client/resource/models/UserRequestAnswer.ts
+++ b/src/client/resource/models/UserRequestAnswer.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/UserSynchronizationRequestIn.ts b/src/client/resource/models/UserSynchronizationRequestIn.ts
index 702eed71b5a59f39bcd82546da602af51b9c13f7..14f1c691227c3a3dd0e9e3cab7010991e03a52b9 100644
--- a/src/client/resource/models/UserSynchronizationRequestIn.ts
+++ b/src/client/resource/models/UserSynchronizationRequestIn.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/UserSynchronizationRequestOut.ts b/src/client/resource/models/UserSynchronizationRequestOut.ts
index 7ad5039705f3f52edb26bb1a1ebc8a0bcd037faf..9f0bd3d6e70bcb52675bfe961a0b60fc6c591903 100644
--- a/src/client/resource/models/UserSynchronizationRequestOut.ts
+++ b/src/client/resource/models/UserSynchronizationRequestOut.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/models/ValidationError.ts b/src/client/resource/models/ValidationError.ts
index f2ff49a2b9ad95d18a90c95dc2a7c0b60b7e85e7..aaf1c921e8b674c3da9543cc2cb597e8e90d6d8f 100644
--- a/src/client/resource/models/ValidationError.ts
+++ b/src/client/resource/models/ValidationError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/services/ResourceService.ts b/src/client/resource/services/ResourceService.ts
index 7edb06371331d7e1c3589d1074cdfc781c11a41a..cc6bbea61cf3f6367fbb3e19be00dee1488ab14e 100644
--- a/src/client/resource/services/ResourceService.ts
+++ b/src/client/resource/services/ResourceService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/resource/services/ResourceVersionService.ts b/src/client/resource/services/ResourceVersionService.ts
index 50430260e825429f87986449a2fc29d96a2d5768..07c338369313a43ac36d1940cef78ea88acb77df 100644
--- a/src/client/resource/services/ResourceVersionService.ts
+++ b/src/client/resource/services/ResourceVersionService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/core/ApiError.ts b/src/client/s3proxy/core/ApiError.ts
index d6b8fcc3ad0b6b2bdf1aa4df97ec598e64995648..ec7b16af6f41b1323a8e3aa3d529bf2324959e66 100644
--- a/src/client/s3proxy/core/ApiError.ts
+++ b/src/client/s3proxy/core/ApiError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/core/ApiRequestOptions.ts b/src/client/s3proxy/core/ApiRequestOptions.ts
index c19adcc94dc5f015865368d6d64751de5c243aa3..93143c3ce1ba5323894d4ac10299f62493f030f6 100644
--- a/src/client/s3proxy/core/ApiRequestOptions.ts
+++ b/src/client/s3proxy/core/ApiRequestOptions.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/core/ApiResult.ts b/src/client/s3proxy/core/ApiResult.ts
index ad8fef2bc334c2aedf5c043896fd394229453ff0..ee1126e2ccd1e37dba97511c38c56a282ceac4dc 100644
--- a/src/client/s3proxy/core/ApiResult.ts
+++ b/src/client/s3proxy/core/ApiResult.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/core/CancelablePromise.ts b/src/client/s3proxy/core/CancelablePromise.ts
index eb02246c31f61b897667a6433d55b8b413bafbc1..d70de92946d977e9da7970871375117a8b04770a 100644
--- a/src/client/s3proxy/core/CancelablePromise.ts
+++ b/src/client/s3proxy/core/CancelablePromise.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
@@ -85,9 +85,9 @@ export class CancelablePromise<T> implements Promise<T> {
         });
     }
 
-     get [Symbol.toStringTag]() {
-            return "Cancellable Promise";
-     }
+    get [Symbol.toStringTag]() {
+        return "Cancellable Promise";
+    }
 
     public then<TResult1 = T, TResult2 = never>(
         onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,
diff --git a/src/client/s3proxy/core/OpenAPI.ts b/src/client/s3proxy/core/OpenAPI.ts
index f18fb9aeed82d0fd92b854566f9b61b5d519e1ca..35524ea4ce5a4157bdab674f394ae304ee6f0a35 100644
--- a/src/client/s3proxy/core/OpenAPI.ts
+++ b/src/client/s3proxy/core/OpenAPI.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/core/request.ts b/src/client/s3proxy/core/request.ts
index c6a0602a006d2d1855c2ab50d2d7f43c2eb1bab4..1dc6fef4aab4086ff57b48d26b20ec26bb8fa472 100644
--- a/src/client/s3proxy/core/request.ts
+++ b/src/client/s3proxy/core/request.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
@@ -175,7 +175,7 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptio
         headers['Authorization'] = `Basic ${credentials}`;
     }
 
-    if (options.body) {
+    if (options.body !== undefined) {
         if (options.mediaType) {
             headers['Content-Type'] = options.mediaType;
         } else if (isBlob(options.body)) {
@@ -215,6 +215,7 @@ export const sendRequest = async <T>(
         data: body ?? formData,
         method: options.method,
         withCredentials: config.WITH_CREDENTIALS,
+        withXSRFToken: config.CREDENTIALS === 'include' ? config.WITH_CREDENTIALS : false,
         cancelToken: source.token,
     };
 
diff --git a/src/client/s3proxy/index.ts b/src/client/s3proxy/index.ts
index fed4296d819361403d19656310823c02f50ab841..ae0ab189c9503085dd7cdbaa77e2bc5bcd08f160 100644
--- a/src/client/s3proxy/index.ts
+++ b/src/client/s3proxy/index.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/BucketIn.ts b/src/client/s3proxy/models/BucketIn.ts
index 9505a6420088ebf53b6601e1700d92a865272eb0..86846020f5817830fa44ea53712a389b1301c862 100644
--- a/src/client/s3proxy/models/BucketIn.ts
+++ b/src/client/s3proxy/models/BucketIn.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/BucketOut.ts b/src/client/s3proxy/models/BucketOut.ts
index bdd7171b00d8e1f08c4634273459e6b04aa9538e..f2fd7dd0b46dcad36bc88533172a2e05be934612 100644
--- a/src/client/s3proxy/models/BucketOut.ts
+++ b/src/client/s3proxy/models/BucketOut.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/BucketPermissionIn.ts b/src/client/s3proxy/models/BucketPermissionIn.ts
index e0e38255d47fedaf9bf6abda58b1e8e5e5537ef5..91014d0f8c2964cc56032732738118cd83a6fc9e 100644
--- a/src/client/s3proxy/models/BucketPermissionIn.ts
+++ b/src/client/s3proxy/models/BucketPermissionIn.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/BucketPermissionOut.ts b/src/client/s3proxy/models/BucketPermissionOut.ts
index e6fc7a7db9b7b2daed4f4cd520ffdf36ecdabc5d..fe4e066ab2928ee5882828b3ef42b530b4ebd86f 100644
--- a/src/client/s3proxy/models/BucketPermissionOut.ts
+++ b/src/client/s3proxy/models/BucketPermissionOut.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/BucketPermissionParameters.ts b/src/client/s3proxy/models/BucketPermissionParameters.ts
index 47c7576e18ad4ec0e6ff29040c723153eeee612b..6bc643a6bb5b6dd6abd7f544a76d64bb38ce4b8b 100644
--- a/src/client/s3proxy/models/BucketPermissionParameters.ts
+++ b/src/client/s3proxy/models/BucketPermissionParameters.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/BucketType.ts b/src/client/s3proxy/models/BucketType.ts
index 8001a27664273bd2a5ad360f6f10444be2e7046d..a974bb8026a85c4a3f683118ddd719e7e8c37bef 100644
--- a/src/client/s3proxy/models/BucketType.ts
+++ b/src/client/s3proxy/models/BucketType.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/Constraint.ts b/src/client/s3proxy/models/Constraint.ts
index 99043221bd2e12d3e2a112ae9308437d99e7df40..f33ad3b6dd99f415ef7c58226d0f026946cad402 100644
--- a/src/client/s3proxy/models/Constraint.ts
+++ b/src/client/s3proxy/models/Constraint.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/ErrorDetail.ts b/src/client/s3proxy/models/ErrorDetail.ts
index 69dd37eb86bc15e2ab2037f3f82516493801e74d..3b8a588e591ca42adc538757044eee2cf6b5881a 100644
--- a/src/client/s3proxy/models/ErrorDetail.ts
+++ b/src/client/s3proxy/models/ErrorDetail.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/HTTPValidationError.ts b/src/client/s3proxy/models/HTTPValidationError.ts
index 892e4257ccbb49769737cb2e78e0aad49d81a3b1..f9b1a79e2c6debaa712bb1660d4353552f6fbfad 100644
--- a/src/client/s3proxy/models/HTTPValidationError.ts
+++ b/src/client/s3proxy/models/HTTPValidationError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/Permission.ts b/src/client/s3proxy/models/Permission.ts
index 33aebf753f36ab7b85a50e0de9d47501f3ff8709..e8896fc75f77bfe5636267d2c12e557cfb0ec402 100644
--- a/src/client/s3proxy/models/Permission.ts
+++ b/src/client/s3proxy/models/Permission.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/PermissionStatus.ts b/src/client/s3proxy/models/PermissionStatus.ts
index 0d858f08edd1fdb664ee83cc5805423dc3dd93f5..4d3c03cdbfba2ec55e1526f355f944f348c61dbc 100644
--- a/src/client/s3proxy/models/PermissionStatus.ts
+++ b/src/client/s3proxy/models/PermissionStatus.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/S3Key.ts b/src/client/s3proxy/models/S3Key.ts
index ebd17dbbf449b8507cad4fdf08082643238cd387..84bdd82f8c45c04d10fe0919505c4d2428329d46 100644
--- a/src/client/s3proxy/models/S3Key.ts
+++ b/src/client/s3proxy/models/S3Key.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/models/ValidationError.ts b/src/client/s3proxy/models/ValidationError.ts
index f2ff49a2b9ad95d18a90c95dc2a7c0b60b7e85e7..aaf1c921e8b674c3da9543cc2cb597e8e90d6d8f 100644
--- a/src/client/s3proxy/models/ValidationError.ts
+++ b/src/client/s3proxy/models/ValidationError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/services/BucketPermissionService.ts b/src/client/s3proxy/services/BucketPermissionService.ts
index cc7df4bde5a8bba26e6f82c7f84bf5674032ab3f..c8b5b77acb0ec882a00eebacfde15a361e3493a0 100644
--- a/src/client/s3proxy/services/BucketPermissionService.ts
+++ b/src/client/s3proxy/services/BucketPermissionService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/services/BucketService.ts b/src/client/s3proxy/services/BucketService.ts
index 5f73fa5031498e7bbfce37fad8f21872ffd68549..75d01ee454cb0e952b4fdd9b0c4b1b3ca1e00558 100644
--- a/src/client/s3proxy/services/BucketService.ts
+++ b/src/client/s3proxy/services/BucketService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/s3proxy/services/S3KeyService.ts b/src/client/s3proxy/services/S3KeyService.ts
index 1d08223c7679f17b8200457fc327fb3954333fa1..58f2f589547a448652785a8765be5067d5fa3d48 100644
--- a/src/client/s3proxy/services/S3KeyService.ts
+++ b/src/client/s3proxy/services/S3KeyService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/core/ApiError.ts b/src/client/workflow/core/ApiError.ts
index d6b8fcc3ad0b6b2bdf1aa4df97ec598e64995648..ec7b16af6f41b1323a8e3aa3d529bf2324959e66 100644
--- a/src/client/workflow/core/ApiError.ts
+++ b/src/client/workflow/core/ApiError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/core/ApiRequestOptions.ts b/src/client/workflow/core/ApiRequestOptions.ts
index c19adcc94dc5f015865368d6d64751de5c243aa3..93143c3ce1ba5323894d4ac10299f62493f030f6 100644
--- a/src/client/workflow/core/ApiRequestOptions.ts
+++ b/src/client/workflow/core/ApiRequestOptions.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/core/ApiResult.ts b/src/client/workflow/core/ApiResult.ts
index ad8fef2bc334c2aedf5c043896fd394229453ff0..ee1126e2ccd1e37dba97511c38c56a282ceac4dc 100644
--- a/src/client/workflow/core/ApiResult.ts
+++ b/src/client/workflow/core/ApiResult.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/core/CancelablePromise.ts b/src/client/workflow/core/CancelablePromise.ts
index eb02246c31f61b897667a6433d55b8b413bafbc1..d70de92946d977e9da7970871375117a8b04770a 100644
--- a/src/client/workflow/core/CancelablePromise.ts
+++ b/src/client/workflow/core/CancelablePromise.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
@@ -85,9 +85,9 @@ export class CancelablePromise<T> implements Promise<T> {
         });
     }
 
-     get [Symbol.toStringTag]() {
-            return "Cancellable Promise";
-     }
+    get [Symbol.toStringTag]() {
+        return "Cancellable Promise";
+    }
 
     public then<TResult1 = T, TResult2 = never>(
         onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,
diff --git a/src/client/workflow/core/OpenAPI.ts b/src/client/workflow/core/OpenAPI.ts
index af264be25a464af3a2b3dcc57232c87766ac0180..c81a8eb67c222d70f094b26ab861ecd3265a081f 100644
--- a/src/client/workflow/core/OpenAPI.ts
+++ b/src/client/workflow/core/OpenAPI.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/core/request.ts b/src/client/workflow/core/request.ts
index c6a0602a006d2d1855c2ab50d2d7f43c2eb1bab4..1dc6fef4aab4086ff57b48d26b20ec26bb8fa472 100644
--- a/src/client/workflow/core/request.ts
+++ b/src/client/workflow/core/request.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
@@ -175,7 +175,7 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptio
         headers['Authorization'] = `Basic ${credentials}`;
     }
 
-    if (options.body) {
+    if (options.body !== undefined) {
         if (options.mediaType) {
             headers['Content-Type'] = options.mediaType;
         } else if (isBlob(options.body)) {
@@ -215,6 +215,7 @@ export const sendRequest = async <T>(
         data: body ?? formData,
         method: options.method,
         withCredentials: config.WITH_CREDENTIALS,
+        withXSRFToken: config.CREDENTIALS === 'include' ? config.WITH_CREDENTIALS : false,
         cancelToken: source.token,
     };
 
diff --git a/src/client/workflow/index.ts b/src/client/workflow/index.ts
index b7f66603ac980c9106fcf2fecc1ae97ee5ba91d2..77c1f4857bde4dca693b3d68711b38874193fb50 100644
--- a/src/client/workflow/index.ts
+++ b/src/client/workflow/index.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/AnonymizedWorkflowExecution.ts b/src/client/workflow/models/AnonymizedWorkflowExecution.ts
index cc68ea3be9a98c612dae5a8a1fdc646e26b039ac..271df1bd1de51d908c544286bce2d0f6fe489899 100644
--- a/src/client/workflow/models/AnonymizedWorkflowExecution.ts
+++ b/src/client/workflow/models/AnonymizedWorkflowExecution.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/Body_Workflow_Version_upload_workflow_version_icon.ts b/src/client/workflow/models/Body_Workflow_Version_upload_workflow_version_icon.ts
index 01160c3790e18bb436fec90de50bf8c267454f18..b9b4fb0e29341a1d6fd9df456f6ceb9734049f5b 100644
--- a/src/client/workflow/models/Body_Workflow_Version_upload_workflow_version_icon.ts
+++ b/src/client/workflow/models/Body_Workflow_Version_upload_workflow_version_icon.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/DevWorkflowExecutionIn.ts b/src/client/workflow/models/DevWorkflowExecutionIn.ts
index ad6cbd949c0011a656dfd2ef699cfe7e90c180ac..f65f6ebdab303ad85e1ba0ba7705702b59bc0877 100644
--- a/src/client/workflow/models/DevWorkflowExecutionIn.ts
+++ b/src/client/workflow/models/DevWorkflowExecutionIn.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/DocumentationEnum.ts b/src/client/workflow/models/DocumentationEnum.ts
index 5540c023bc93402dd8d236a41632abe9dbbfe904..9bcb475dbc709abaf07a5faa8067932a1bdafd12 100644
--- a/src/client/workflow/models/DocumentationEnum.ts
+++ b/src/client/workflow/models/DocumentationEnum.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/ErrorDetail.ts b/src/client/workflow/models/ErrorDetail.ts
index 69dd37eb86bc15e2ab2037f3f82516493801e74d..3b8a588e591ca42adc538757044eee2cf6b5881a 100644
--- a/src/client/workflow/models/ErrorDetail.ts
+++ b/src/client/workflow/models/ErrorDetail.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/HTTPValidationError.ts b/src/client/workflow/models/HTTPValidationError.ts
index 892e4257ccbb49769737cb2e78e0aad49d81a3b1..f9b1a79e2c6debaa712bb1660d4353552f6fbfad 100644
--- a/src/client/workflow/models/HTTPValidationError.ts
+++ b/src/client/workflow/models/HTTPValidationError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/IconUpdateOut.ts b/src/client/workflow/models/IconUpdateOut.ts
index 1210a9304608adaafc41a6be01dbbb145f8d9964..c53f21ab315ad28a74e27d42e4561c18e9c04d7d 100644
--- a/src/client/workflow/models/IconUpdateOut.ts
+++ b/src/client/workflow/models/IconUpdateOut.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/ParameterExtension_Input.ts b/src/client/workflow/models/ParameterExtension_Input.ts
index a9b61aee03b5eaef407fd5c210579f5df9902e21..2ff25b5e4e60d09030a26c3ceffae2b8e9ff06f3 100644
--- a/src/client/workflow/models/ParameterExtension_Input.ts
+++ b/src/client/workflow/models/ParameterExtension_Input.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/ParameterExtension_Output.ts b/src/client/workflow/models/ParameterExtension_Output.ts
index da3a66e25f49587bb235d638383621848c184d2c..83175b870272af8bc6f86f74dcefa2ef047c39a7 100644
--- a/src/client/workflow/models/ParameterExtension_Output.ts
+++ b/src/client/workflow/models/ParameterExtension_Output.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/ResourcePath_Input.ts b/src/client/workflow/models/ResourcePath_Input.ts
index c42ec4ee1ccc7a964ce4b68a2e0e176779f6f300..6d0b669495d441fc760e1373386e697c38403c3b 100644
--- a/src/client/workflow/models/ResourcePath_Input.ts
+++ b/src/client/workflow/models/ResourcePath_Input.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/ResourcePath_Output.ts b/src/client/workflow/models/ResourcePath_Output.ts
index e985b797e4c0afd69c7059f5db4841efaef727a0..4b7a73ad21bd4a1d123cc5f89a9d4f0e6f17d897 100644
--- a/src/client/workflow/models/ResourcePath_Output.ts
+++ b/src/client/workflow/models/ResourcePath_Output.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/Status.ts b/src/client/workflow/models/Status.ts
index fd918bd83e94662808073249cf91cc0d8b721fac..db27a378d22e80e9ca6f7a66c7ed6ac9acc591f7 100644
--- a/src/client/workflow/models/Status.ts
+++ b/src/client/workflow/models/Status.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/ValidationError.ts b/src/client/workflow/models/ValidationError.ts
index f2ff49a2b9ad95d18a90c95dc2a7c0b60b7e85e7..aaf1c921e8b674c3da9543cc2cb597e8e90d6d8f 100644
--- a/src/client/workflow/models/ValidationError.ts
+++ b/src/client/workflow/models/ValidationError.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowCredentialsIn.ts b/src/client/workflow/models/WorkflowCredentialsIn.ts
index a3b3c105701dfc4949bd81bb26409275e60a7b64..7887b8f262b348915cd85cd44c90362d4732bd9f 100644
--- a/src/client/workflow/models/WorkflowCredentialsIn.ts
+++ b/src/client/workflow/models/WorkflowCredentialsIn.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowCredentialsOut.ts b/src/client/workflow/models/WorkflowCredentialsOut.ts
index 371252ccef56cbab9fae83919271e08aa6ae198d..3500a19860539a5481a39b56f833b7c6ddaa6b56 100644
--- a/src/client/workflow/models/WorkflowCredentialsOut.ts
+++ b/src/client/workflow/models/WorkflowCredentialsOut.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowExecutionIn.ts b/src/client/workflow/models/WorkflowExecutionIn.ts
index 35c5f06034231f12ae852e8d83da244e62f3463a..6b39b2f28323e5169cc2cb8e3d93238126249cf2 100644
--- a/src/client/workflow/models/WorkflowExecutionIn.ts
+++ b/src/client/workflow/models/WorkflowExecutionIn.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowExecutionOut.ts b/src/client/workflow/models/WorkflowExecutionOut.ts
index 29bf964a4428e93d6330b90678de154661c47766..514ea962aa479014f046a4c05032e37e3a865c45 100644
--- a/src/client/workflow/models/WorkflowExecutionOut.ts
+++ b/src/client/workflow/models/WorkflowExecutionOut.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowExecutionStatus.ts b/src/client/workflow/models/WorkflowExecutionStatus.ts
index 6b92108d72486d7dbf7cd63606e0e5210d479c02..e0bc72f4011a92b6eb1478f7cbc71e409e5a2629 100644
--- a/src/client/workflow/models/WorkflowExecutionStatus.ts
+++ b/src/client/workflow/models/WorkflowExecutionStatus.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowIn.ts b/src/client/workflow/models/WorkflowIn.ts
index c5322ce22a5df57eade165e222023333d7d79dd1..acc74b596d2bde22f15f43cf5cdd563644e24935 100644
--- a/src/client/workflow/models/WorkflowIn.ts
+++ b/src/client/workflow/models/WorkflowIn.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowModeIn.ts b/src/client/workflow/models/WorkflowModeIn.ts
index 7d8d2d439cc4fa451a071aa2edbf5457c2c84c06..c09b4349d3129125b8e3989d1d7ab097c100a915 100644
--- a/src/client/workflow/models/WorkflowModeIn.ts
+++ b/src/client/workflow/models/WorkflowModeIn.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowModeOut.ts b/src/client/workflow/models/WorkflowModeOut.ts
index d3b61d56fadb4e1e93d4ba47a6fb65e2118b6906..3adeebeca35255fd467c705685bd4098366a4d61 100644
--- a/src/client/workflow/models/WorkflowModeOut.ts
+++ b/src/client/workflow/models/WorkflowModeOut.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowOut.ts b/src/client/workflow/models/WorkflowOut.ts
index 90fbae386c4790be3b6063d3cff5db722dcd9d4d..d4968c2c9c30003675c80ffc24fe181e1d4f303b 100644
--- a/src/client/workflow/models/WorkflowOut.ts
+++ b/src/client/workflow/models/WorkflowOut.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowStatistic.ts b/src/client/workflow/models/WorkflowStatistic.ts
index d84e2dc9ce8a30ce6d93a355774e56957fb117e3..ba9815f493841b6192cc61a7ae1eda1fc2afcfff 100644
--- a/src/client/workflow/models/WorkflowStatistic.ts
+++ b/src/client/workflow/models/WorkflowStatistic.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowUpdate.ts b/src/client/workflow/models/WorkflowUpdate.ts
index 879f4bc2d303f3e3bd247b63b3996a14b9fa1b41..9b3dac395a7cc364ad439019492ac29fd4291582 100644
--- a/src/client/workflow/models/WorkflowUpdate.ts
+++ b/src/client/workflow/models/WorkflowUpdate.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowVersion.ts b/src/client/workflow/models/WorkflowVersion.ts
index 5f2f0d1e21d2afb22510dec18a6285e7740b3e52..69cfbee2f1f8e915ae6f76ccc70a78d40e446cf9 100644
--- a/src/client/workflow/models/WorkflowVersion.ts
+++ b/src/client/workflow/models/WorkflowVersion.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/models/WorkflowVersionStatus.ts b/src/client/workflow/models/WorkflowVersionStatus.ts
index 765e6881cbcd8211096130a094584eb7f04ffa1d..9477c1f502dd983e11adf94656318f547606a044 100644
--- a/src/client/workflow/models/WorkflowVersionStatus.ts
+++ b/src/client/workflow/models/WorkflowVersionStatus.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/services/WorkflowCredentialsService.ts b/src/client/workflow/services/WorkflowCredentialsService.ts
index 6e664ec25e60ec6e16c31db2c6f3785981bdeb56..f7e79f5df8c1edee6f0a55ed2332e7e7c0a6fa83 100644
--- a/src/client/workflow/services/WorkflowCredentialsService.ts
+++ b/src/client/workflow/services/WorkflowCredentialsService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/services/WorkflowExecutionService.ts b/src/client/workflow/services/WorkflowExecutionService.ts
index 1b785be2feb1b17bc505033c90275b32c9bf9842..c6d08278a58be2ae34d58a737900a4b98b0c9852 100644
--- a/src/client/workflow/services/WorkflowExecutionService.ts
+++ b/src/client/workflow/services/WorkflowExecutionService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/services/WorkflowModeService.ts b/src/client/workflow/services/WorkflowModeService.ts
index c6f11743367cf3ea1ecc0dcbd08d1b92c509d63a..3d68f8bc35c2ff99a123cfd1af32bf89d3d0a030 100644
--- a/src/client/workflow/services/WorkflowModeService.ts
+++ b/src/client/workflow/services/WorkflowModeService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/services/WorkflowService.ts b/src/client/workflow/services/WorkflowService.ts
index dbed2cf8d9a66b63886050375683ee0438b39af0..06a8be33ed8bcaa20777eff36f63a3cb1b6c3482 100644
--- a/src/client/workflow/services/WorkflowService.ts
+++ b/src/client/workflow/services/WorkflowService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/client/workflow/services/WorkflowVersionService.ts b/src/client/workflow/services/WorkflowVersionService.ts
index ca8d35742d5f792862495273e42a202787679e8c..b247d418f6bab3cf85a14418356d18731e847382 100644
--- a/src/client/workflow/services/WorkflowVersionService.ts
+++ b/src/client/workflow/services/WorkflowVersionService.ts
@@ -1,4 +1,4 @@
-/* generated using openapi-typescript-codegen -- do no edit */
+/* generated using openapi-typescript-codegen -- do not edit */
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
diff --git a/src/components/BootstrapToast.vue b/src/components/BootstrapToast.vue
index 000cdda2566dc3c96deff69fd34597ea945aca0e..0b9d98c282c65979fb0c566fe6bc51eaf52fefc2 100644
--- a/src/components/BootstrapToast.vue
+++ b/src/components/BootstrapToast.vue
@@ -1,18 +1,11 @@
 <script setup lang="ts">
 import { useSlots, computed, type PropType } from "vue";
-
-type colors =
-  | "primary"
-  | "secondary"
-  | "success"
-  | "warning"
-  | "danger"
-  | "info";
+import type { Colors } from "@/types/PropTypes";
 
 const slots = useSlots();
 const props = defineProps({
   colorClass: {
-    type: String as PropType<colors>,
+    type: String as PropType<Colors>,
     required: false,
     default: "success",
   },
diff --git a/src/components/parameter-schema/ParameterSchemaFormComponent.vue b/src/components/parameter-schema/ParameterSchemaFormComponent.vue
index 1322357f2266aa4bc15925bac3d1b42edbd9d3a2..4dad3546107af3c6f5e7d33c555c8a0b1ca39c1a 100644
--- a/src/components/parameter-schema/ParameterSchemaFormComponent.vue
+++ b/src/components/parameter-schema/ParameterSchemaFormComponent.vue
@@ -337,7 +337,7 @@ onMounted(() => {
                   format: 'directory-path',
                   type: 'string',
                 }"
-                border
+                border="secondary"
               />
             </div>
             <label class="mb-3" for="logsS3Path">
@@ -359,7 +359,7 @@ onMounted(() => {
                   format: 'directory-path',
                   type: 'string',
                 }"
-                border
+                border="secondary"
               />
             </div>
             <label class="mb-3" for="provenanceS3Path">
@@ -382,7 +382,7 @@ onMounted(() => {
                   format: 'directory-path',
                   type: 'string',
                 }"
-                border
+                border="secondary"
               />
             </div>
             <label class="mb-3" for="debugS3Path">
diff --git a/src/components/parameter-schema/form-mode/ParameterBooleanInput.vue b/src/components/parameter-schema/form-mode/ParameterBooleanInput.vue
index f78d2bbf736b69eee4ecf74045a965c8a993fd32..30010c4a0bc3fc94365de059d97d4d3cc13d236b 100644
--- a/src/components/parameter-schema/form-mode/ParameterBooleanInput.vue
+++ b/src/components/parameter-schema/form-mode/ParameterBooleanInput.vue
@@ -1,5 +1,6 @@
 <script setup lang="ts">
-import { computed } from "vue";
+import { computed, onMounted, type PropType, watch } from "vue";
+import type { ExtendedColors } from "@/types/PropTypes";
 
 const model = defineModel<boolean | undefined>({ required: true });
 
@@ -8,10 +9,10 @@ const props = defineProps({
     type: Object,
     required: true,
     validator(value: Record<string, never>) {
-      return "number" === value["type"];
+      return "boolean" === value["type"];
     },
   },
-  border: Boolean,
+  border: String as PropType<ExtendedColors>,
 });
 
 const randomIDSuffix = Math.random().toString(16).substring(2, 8);
@@ -22,7 +23,7 @@ const iconPresent = computed<boolean>(() => props.parameter["fa_icon"]);
 const dynamicCssClasses = computed<string[]>(() => {
   const cssClasses = [];
   if (props.border) {
-    cssClasses.push("border", "border-secondary", "text-bg-light");
+    cssClasses.push("border", `border-${props.border}`, "text-bg-light");
   }
   if (!helpTextPresent.value) {
     cssClasses.push("rounded-end");
@@ -32,6 +33,20 @@ const dynamicCssClasses = computed<string[]>(() => {
   }
   return cssClasses;
 });
+
+watch(model, (newVal) => {
+  if (typeof newVal === "number") {
+    // type conversion if true/false is represented by 0/1
+    model.value = !!newVal;
+  }
+});
+
+onMounted(() => {
+  if (model.value != undefined) {
+    // type conversion if true/false is represented by 0/1
+    model.value = model.value ? true : false;
+  }
+});
 </script>
 
 <template>
diff --git a/src/components/parameter-schema/form-mode/ParameterEnumInput.vue b/src/components/parameter-schema/form-mode/ParameterEnumInput.vue
index dcd17309d546a985fd1b19f11b90de3f031123fd..67ca9895d8d4a09da7f9c48b1c14e51939aea21d 100644
--- a/src/components/parameter-schema/form-mode/ParameterEnumInput.vue
+++ b/src/components/parameter-schema/form-mode/ParameterEnumInput.vue
@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { computed, type PropType } from "vue";
-import type { SizeModifierType } from "@/types/PropTypes";
+import type { ExtendedColors, SizeModifierType } from "@/types/PropTypes";
 
 const model = defineModel<string | undefined>({ required: true });
 
@@ -19,7 +19,7 @@ const props = defineProps({
   sizeModifier: {
     type: String as PropType<SizeModifierType>,
   },
-  border: Boolean,
+  border: String as PropType<ExtendedColors>,
 });
 
 const possibleValues = computed<string[]>(() => props.parameter["enum"]);
@@ -30,7 +30,7 @@ const dynamicCssClasses = computed<string[]>(() => {
     cssClasses.push(`form-select-${props.sizeModifier}`);
   }
   if (props.border) {
-    cssClasses.push("border", "border-secondary");
+    cssClasses.push("border", `border-${props.border}`);
   }
   return cssClasses;
 });
diff --git a/src/components/parameter-schema/form-mode/ParameterFileInput.vue b/src/components/parameter-schema/form-mode/ParameterFileInput.vue
index 26f9508487b060e0b6f06abedd6ce81ebea4e8fa..8baa5a09d927d46e4f5d38c2b7d1bd770ce58a14 100644
--- a/src/components/parameter-schema/form-mode/ParameterFileInput.vue
+++ b/src/components/parameter-schema/form-mode/ParameterFileInput.vue
@@ -2,7 +2,7 @@
 import { computed, onMounted, type PropType, reactive, watch } from "vue";
 import { useS3ObjectStore } from "@/stores/s3objects";
 import { useBucketStore } from "@/stores/buckets";
-import type { SizeModifierType } from "@/types/PropTypes";
+import type { ExtendedColors, SizeModifierType } from "@/types/PropTypes";
 
 const model = defineModel<string | undefined>({ required: true });
 const s3Regex = /s3:\/\/([^\s/]*)(\/\S*)?/g;
@@ -22,7 +22,7 @@ const props = defineProps({
   sizeModifier: {
     type: String as PropType<SizeModifierType>,
   },
-  border: Boolean,
+  border: String as PropType<ExtendedColors>,
   allowRaw: Boolean,
 });
 
@@ -35,7 +35,7 @@ const bucketRepository = useBucketStore();
 const randomIDSuffix = Math.random().toString(16).substring(2, 8);
 
 const baseDynamicClass = computed<string[]>(() =>
-  props.border ? ["border", "border-secondary"] : [],
+  props.border ? ["border", `border-${props.border}`] : [],
 );
 
 const selectDynamicClass = computed<string[]>(() => {
diff --git a/src/components/parameter-schema/form-mode/ParameterGroupForm.vue b/src/components/parameter-schema/form-mode/ParameterGroupForm.vue
index 346aceda55bf78290be4c2c591ff5af44930490c..06c25a71ee78705268d7ec380965a14e98bfb1f2 100644
--- a/src/components/parameter-schema/form-mode/ParameterGroupForm.vue
+++ b/src/components/parameter-schema/form-mode/ParameterGroupForm.vue
@@ -106,7 +106,7 @@ function parameterId(parameterName: string): string {
               :parameter="parameter"
               v-model="model[parameterName]"
               :required="parameterRequired(parameterGroup, parameterName)"
-              border
+              border="secondary"
               :resource-parameter="resourceParameters?.includes(parameterName)"
               :allow-raw="showOptional"
             />
diff --git a/src/components/parameter-schema/form-mode/ParameterInput.vue b/src/components/parameter-schema/form-mode/ParameterInput.vue
index 54b53c375e65832a2d4074dd872bff578a536e6b..fb35a1140a2cb246e4e03706263de19942f78d15 100644
--- a/src/components/parameter-schema/form-mode/ParameterInput.vue
+++ b/src/components/parameter-schema/form-mode/ParameterInput.vue
@@ -6,7 +6,7 @@ import ParameterBooleanInput from "@/components/parameter-schema/form-mode/Param
 import ParameterEnumInput from "@/components/parameter-schema/form-mode/ParameterEnumInput.vue";
 import ParameterFileInput from "@/components/parameter-schema/form-mode/ParameterFileInput.vue";
 import ParameterStringInput from "@/components/parameter-schema/form-mode/ParameterStringInput.vue";
-import type { SizeModifierType } from "@/types/PropTypes";
+import type { SizeModifierType, ExtendedColors } from "@/types/PropTypes";
 import type { ResourcePath_Input } from "@/client/workflow";
 
 const model = defineModel<
@@ -24,7 +24,7 @@ const props = defineProps<{
   resourceParameter?: boolean;
   rawModel?: boolean;
   sizeModifier?: SizeModifierType;
-  border?: boolean;
+  border?: ExtendedColors;
   allowRaw?: boolean;
   forceRawFile?: boolean;
 }>();
diff --git a/src/components/parameter-schema/form-mode/ParameterNumberInput.vue b/src/components/parameter-schema/form-mode/ParameterNumberInput.vue
index 194bcb291ab958e914a4efaed6955dac17a6f7c5..b8a429863492238b0d66e7996ca136f747deb8f1 100644
--- a/src/components/parameter-schema/form-mode/ParameterNumberInput.vue
+++ b/src/components/parameter-schema/form-mode/ParameterNumberInput.vue
@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { computed, type PropType } from "vue";
-import type { SizeModifierType } from "@/types/PropTypes";
+import type { ExtendedColors, SizeModifierType } from "@/types/PropTypes";
 
 const model = defineModel<number | undefined>({ required: true });
 
@@ -19,7 +19,7 @@ const props = defineProps({
   sizeModifier: {
     type: String as PropType<SizeModifierType>,
   },
-  border: Boolean,
+  border: String as PropType<ExtendedColors>,
 });
 
 const dynamicCssClasses = computed<string[]>(() => {
@@ -28,7 +28,7 @@ const dynamicCssClasses = computed<string[]>(() => {
     cssClasses.push(`form-control-${props.sizeModifier}`);
   }
   if (props.border) {
-    cssClasses.push("border", "border-secondary");
+    cssClasses.push("border", `border-${props.border}`);
   }
   return cssClasses;
 });
diff --git a/src/components/parameter-schema/form-mode/ParameterResourceInput.vue b/src/components/parameter-schema/form-mode/ParameterResourceInput.vue
index 8166de0d2a0b391add980d9f820cac4c5f2a4a46..a57d6c5d2281a5ae525763ca10d8ad95c8d27e39 100644
--- a/src/components/parameter-schema/form-mode/ParameterResourceInput.vue
+++ b/src/components/parameter-schema/form-mode/ParameterResourceInput.vue
@@ -3,7 +3,7 @@ import type { ResourcePath_Input } from "@/client/workflow";
 import { Status } from "@/client/resource";
 import { computed, onMounted, reactive, watch } from "vue";
 import { useResourceStore } from "@/stores/resources";
-import type { SizeModifierType } from "@/types/PropTypes";
+import type { ExtendedColors, SizeModifierType } from "@/types/PropTypes";
 
 const model = defineModel<string | ResourcePath_Input | undefined>({
   required: true,
@@ -17,7 +17,7 @@ const props = defineProps<{
   required?: boolean;
   rawModel?: boolean;
   sizeModifier?: SizeModifierType;
-  border?: boolean;
+  border?: ExtendedColors;
   allowRaw?: boolean;
 }>();
 
@@ -37,7 +37,7 @@ const resource = reactive<ResourcePath_Input>({
 const helpTextPresent = computed<boolean>(() => props.parameter["help_text"]);
 
 const baseDynamicClass = computed<string[]>(() =>
-  props.border ? ["border", "border-secondary"] : [],
+  props.border ? ["border", `border-${props.border}`] : [],
 );
 
 const selectDynamicClass = computed<string[]>(() => {
diff --git a/src/components/parameter-schema/form-mode/ParameterStringInput.vue b/src/components/parameter-schema/form-mode/ParameterStringInput.vue
index 3871923d73b387bdda31ab5d26dd0fffaa50a57a..dc5d7f575d1024634003dfb829d7fa47afc4ee1e 100644
--- a/src/components/parameter-schema/form-mode/ParameterStringInput.vue
+++ b/src/components/parameter-schema/form-mode/ParameterStringInput.vue
@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { computed, type PropType, ref } from "vue";
-import type { SizeModifierType } from "@/types/PropTypes";
+import type { ExtendedColors, SizeModifierType } from "@/types/PropTypes";
 
 const model = defineModel<string | undefined>({ required: true });
 const props = defineProps({
@@ -18,7 +18,7 @@ const props = defineProps({
   sizeModifier: {
     type: String as PropType<SizeModifierType>,
   },
-  border: Boolean,
+  border: String as PropType<ExtendedColors>,
   resourceParameter: Boolean,
   allowSwitch: Boolean,
 });
@@ -42,7 +42,7 @@ const dynamicCssClass = computed<string[]>(() => {
     cssClasses.push("rounded-end");
   }
   if (props.border) {
-    cssClasses.push("border", "border-secondary");
+    cssClasses.push("border", `border-${props.border}`);
   }
   return cssClasses;
 });
diff --git a/src/stores/workflows.ts b/src/stores/workflows.ts
index 8ecfdb5f732b011a080264335324331d5e6246d4..8f1b70c2b1527ef53e8dadfac4efa212d7e0c986 100644
--- a/src/stores/workflows.ts
+++ b/src/stores/workflows.ts
@@ -2,6 +2,7 @@ import { defineStore } from "pinia";
 import type {
   Body_Workflow_Version_upload_workflow_version_icon,
   IconUpdateOut,
+  ParameterExtension_Input,
   WorkflowCredentialsIn,
   WorkflowIn,
   WorkflowModeOut,
@@ -534,5 +535,48 @@ export const useWorkflowStore = defineStore({
         }
       });
     },
+    updateWorkflowExtension(
+      workflow_id: string,
+      version_id: string,
+      extension: ParameterExtension_Input,
+    ): Promise<WorkflowVersion> {
+      return WorkflowVersionService.workflowVersionUpdateWorkflowVersionParameterExtension(
+        workflow_id,
+        version_id,
+        extension,
+      ).then((version) => {
+        // Update version in workflowMapping
+        if (this.workflowMapping[workflow_id] == undefined) {
+          this.fetchWorkflow(workflow_id, false);
+        } else {
+          const versionIndex1 = this.workflowMapping[
+            workflow_id
+          ].versions.findIndex(
+            (version) => version.workflow_version_id == version_id,
+          );
+          if (versionIndex1 > -1) {
+            this.workflowMapping[workflow_id].versions[versionIndex1].icon_url =
+              null;
+          }
+        }
+
+        // Update version in comprehensiveWorkflowMapping
+        if (this.comprehensiveWorkflowMapping[workflow_id] == undefined) {
+          this.fetchWorkflow(workflow_id, true);
+        } else {
+          const versionIndex2 = this.comprehensiveWorkflowMapping[
+            workflow_id
+          ].versions.findIndex(
+            (version) => version.workflow_version_id == version_id,
+          );
+          if (versionIndex2 > -1) {
+            this.comprehensiveWorkflowMapping[workflow_id].versions[
+              versionIndex2
+            ].icon_url = null;
+          }
+        }
+        return version;
+      });
+    },
   },
 });
diff --git a/src/types/PropTypes.ts b/src/types/PropTypes.ts
index a937fe2c84e2fb896e30c3045fff6caf1f568f8f..0873c6240a53ef06c1e73f5a1a35e8cf7d82b673 100644
--- a/src/types/PropTypes.ts
+++ b/src/types/PropTypes.ts
@@ -1 +1,20 @@
 export type SizeModifierType = "sm" | "lg";
+
+export type Colors =
+  | "primary"
+  | "secondary"
+  | "success"
+  | "warning"
+  | "danger"
+  | "info"
+  | "black"
+  | "white";
+
+export type ExtendedColors =
+  | Colors
+  | "primary-subtle"
+  | "secondary-subtle"
+  | "success-subtle"
+  | "warning-subtle"
+  | "danger-subtle"
+  | "info-subtle";
diff --git a/src/views/workflows/CreateParameterTranslationView.vue b/src/views/workflows/CreateParameterTranslationView.vue
index dc88cd37ff58b6179f74de86384f34e6af17d0f4..7e5ee61f73230be18699287ac4969a4792a8fea1 100644
--- a/src/views/workflows/CreateParameterTranslationView.vue
+++ b/src/views/workflows/CreateParameterTranslationView.vue
@@ -5,23 +5,47 @@ import { computed, onMounted, reactive, ref, watch } from "vue";
 import {
   DocumentationEnum,
   type ParameterExtension_Input,
+  type ResourcePath_Input,
 } from "@/client/workflow";
 import type { ClowmInfo } from "@/types/ClowmInfo";
 import { useResourceStore } from "@/stores/resources";
 import ParameterInput from "@/components/parameter-schema/form-mode/ParameterInput.vue";
+import BootstrapToast from "@/components/BootstrapToast.vue";
+import { Toast } from "bootstrap";
 
+// Props
+// =============================================================================
 const props = defineProps<{
   versionId: string;
   workflowId: string;
 }>();
 
+// HTML refs
+// =============================================================================
+const parameterExtensionForm = ref<HTMLFormElement | null>(null);
+let successToast: Toast | null = null;
+
+// Repositories
+// =============================================================================
+const nameRepository = useNameStore();
+const workflowRepository = useWorkflowStore();
+const resourceRepository = useResourceStore();
+
+// Reactive State
+// =============================================================================
 const parameterState = reactive<{
+  loading: boolean;
   extension: ParameterExtension_Input;
-  resourceParameters: Set<string>;
+  resourceParametersDefault: Set<string>;
+  resourceParametersMapping: Set<string>;
+  mappingParameterValues: Record<string, string>;
   formValidated: boolean;
 }>({
+  loading: true,
   extension: {},
-  resourceParameters: new Set(),
+  resourceParametersDefault: new Set(),
+  resourceParametersMapping: new Set(),
+  mappingParameterValues: {},
   formValidated: false,
 });
 
@@ -33,11 +57,8 @@ const parameterPools = reactive<{
   mapping: [],
 });
 
-const nameRepository = useNameStore();
-const workflowRepository = useWorkflowStore();
-const resourceRepository = useResourceStore();
-const parameterExtensionForm = ref<HTMLFormElement | null>(null);
-
+// Watchers
+// =============================================================================
 watch(
   () =>
     workflowRepository.documentationFiles[props.versionId]?.parameter_schema,
@@ -57,6 +78,25 @@ watch(
   },
 );
 
+// Computed States
+// =============================================================================
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+const parameterSchema = computed<Record<string, Record<string, any>>>(() => {
+  const schema =
+    workflowRepository.documentationFiles[props.versionId ?? ""]
+      ?.parameter_schema;
+  const a = schema?.["properties"] ?? {};
+  for (const group in schema?.["definitions"] ?? {}) {
+    for (const param in schema?.["definitions"]?.[group]?.["properties"] ??
+      {}) {
+      a[param] = schema["definitions"][group]["properties"][param];
+    }
+  }
+  return a;
+});
+
+// Functions
+// =============================================================================
 // eslint-disable-next-line @typescript-eslint/no-explicit-any
 function updateParameterPools(newVal?: object) {
   if (newVal) {
@@ -81,13 +121,32 @@ function updateParameterPools(newVal?: object) {
 }
 
 function updateResourceParameters(newVal?: ClowmInfo) {
-  newVal?.resourceParameters?.forEach((param) =>
-    parameterState.resourceParameters.add(param),
-  );
+  newVal?.resourceParameters?.forEach((param) => {
+    parameterState.resourceParametersDefault.add(param);
+    parameterState.resourceParametersMapping.add(param);
+  });
 }
 
 function submitForm() {
+  if (parameterState.extension?.mapping) {
+    for (const key of Object.keys(parameterState.extension.mapping)) {
+      if (Object.keys(parameterState.extension?.mapping[key]).length === 0) {
+        delete parameterState.extension?.mapping[key];
+      }
+    }
+  }
   parameterState.formValidated = true;
+  if (parameterExtensionForm.value?.checkValidity()) {
+    workflowRepository
+      .updateWorkflowExtension(
+        props.workflowId,
+        props.versionId,
+        parameterState.extension,
+      )
+      .then(() => {
+        successToast?.show();
+      });
+  }
 }
 
 // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -113,52 +172,50 @@ function getParameterSchemaDefault(
   return parameterSchema.value[param]?.["default"];
 }
 
-function addDefaultParameter(param: string, index: number) {
-  parameterState.formValidated = false;
-  if (parameterState.extension.defaults == undefined) {
-    parameterState.extension.defaults = {};
-  }
-  parameterPools.defaults.splice(index, 1);
+function getParamDefault(
+  param: string,
+): string | boolean | number | ResourcePath_Input {
   switch (getParameterType(param)) {
     case "integer": {
-      parameterState.extension.defaults[param] =
-        getParameterSchemaDefault(param) ?? 0;
-      break;
+      return getParameterSchemaDefault(param) ?? 0;
     }
     case "number": {
-      parameterState.extension.defaults[param] =
-        getParameterSchemaDefault(param) ?? 0;
-      break;
+      return getParameterSchemaDefault(param) ?? 0;
     }
     case "boolean": {
-      parameterState.extension.defaults[param] =
-        getParameterSchemaDefault(param) ?? true;
-      break;
+      return getParameterSchemaDefault(param) ?? true;
     }
     case "string": {
-      if (parameterState.resourceParameters.has(param)) {
-        parameterState.extension.defaults[param] = {
+      if (parameterState.resourceParametersDefault.has(param)) {
+        return {
           resource_id: "",
           resource_version_id: "",
         };
-        break;
       }
-      parameterState.extension.defaults[param] =
+      return (
         getParameterSchemaDefault(param) ??
         parameterSchema.value[param]?.["enum"]?.[0] ??
-        "";
-      break;
+        ""
+      );
     }
     default: {
-      parameterState.extension.defaults[param] = "";
-      break;
+      return "";
     }
   }
 }
 
-function makeResourceParameter(param: string) {
+function addDefaultParameter(param: string, index: number) {
+  parameterState.formValidated = false;
+  if (parameterState.extension.defaults == undefined) {
+    parameterState.extension.defaults = {};
+  }
+  parameterPools.defaults.splice(index, 1);
+  parameterState.extension.defaults[param] = getParamDefault(param);
+}
+
+function makeResourceParameterDefault(param: string) {
   parameterState.formValidated = false;
-  parameterState.resourceParameters.add(param);
+  parameterState.resourceParametersDefault.add(param);
   parameterState.extension.defaults![param] = {
     resource_id: "",
     resource_version_id: "",
@@ -171,7 +228,7 @@ function deleteDefaultParameter(param: string) {
       props.versionId
     ]?.clowm_info?.resourceParameters?.includes(param)
   ) {
-    parameterState.resourceParameters.delete(param);
+    parameterState.resourceParametersDefault.delete(param);
   }
   delete parameterState.extension.defaults?.[param];
   parameterPools.defaults.push(param);
@@ -180,22 +237,57 @@ function deleteDefaultParameter(param: string) {
   }
 }
 
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-const parameterSchema = computed<Record<string, Record<string, any>>>(() => {
-  const schema =
-    workflowRepository.documentationFiles[props.versionId ?? ""]
-      ?.parameter_schema;
-  const a = schema?.["properties"] ?? {};
-  for (const group in schema?.["definitions"] ?? {}) {
-    for (const param in schema?.["definitions"]?.[group]?.["properties"] ??
-      {}) {
-      a[param] = schema["definitions"][group]["properties"][param];
-    }
+function addMappingParameter(param: string, index: number) {
+  parameterState.formValidated = false;
+  if (parameterState.extension.mapping == undefined) {
+    parameterState.extension.mapping = {};
   }
-  return a;
-});
+  if (parameterState.extension.mapping[param] == undefined) {
+    parameterState.extension.mapping[param] = {};
+  }
+  parameterState.mappingParameterValues[param] = "";
+  if (index > -1) {
+    parameterPools.mapping.splice(index, 1);
+  }
+}
+
+function addMappingParameterValue(param: string, val: string) {
+  parameterState.formValidated = false;
+  if (parameterState.extension.mapping?.[param] != undefined) {
+    parameterState.extension.mapping[param][val] = getParamDefault(param) as
+      | string
+      | number
+      | ResourcePath_Input;
+    parameterState.mappingParameterValues[param] = "";
+  }
+}
+
+function deleteMappingParameterValue(param: string, val: string) {
+  if (parameterState.extension.mapping?.[param]?.[val] != undefined) {
+    delete parameterState.extension.mapping[param][val];
+  }
+}
+
+function deleteMappingParameter(param: string) {
+  if (
+    !workflowRepository.documentationFiles[
+      props.versionId
+    ]?.clowm_info?.resourceParameters?.includes(param)
+  ) {
+    parameterState.resourceParametersMapping.delete(param);
+  }
+  delete parameterState.extension.mapping?.[param];
+  delete parameterState.mappingParameterValues[param];
+  parameterPools.mapping.push(param);
+  if (Object.keys(parameterState.extension.mapping ?? {}).length === 0) {
+    parameterState.extension.mapping = undefined;
+  }
+}
 
+// Lifecycle Events
+// =============================================================================
 onMounted(() => {
+  successToast = new Toast("#save-parameter-extension-success");
   workflowRepository.fetchWorkflow(props.workflowId, true, () => {
     parameterState.extension =
       workflowRepository.ownVersionMapping[props.versionId]
@@ -216,6 +308,7 @@ onMounted(() => {
         ),
       )
       .finally(() => {
+        parameterState.loading = false;
         updateParameterPools(
           workflowRepository.documentationFiles[props.versionId]
             ?.parameter_schema,
@@ -230,6 +323,34 @@ onMounted(() => {
 </script>
 
 <template>
+  <bootstrap-toast
+    toast-id="save-parameter-extension-success"
+    color-class="success"
+  >
+    <template #default>Successfully saved Parameter Extension</template>
+    <template #body>
+      <div class="d-grid gap-2">
+        <router-link
+          class="btn btn-info btn-sm"
+          role="button"
+          :to="{
+            name: 'workflow-start',
+            params: {
+              versionId: props.versionId,
+              workflowId: props.workflowId,
+            },
+            query: {
+              workflowModeId:
+                workflowRepository.ownVersionMapping[props.versionId]
+                  ?.modes?.[0],
+              viewMode: 'expert',
+            },
+          }"
+          >View
+        </router-link>
+      </div>
+    </template>
+  </bootstrap-toast>
   <div class="row border-bottom mb-4">
     <h2 class="mb-2">
       Add parameter metadata to
@@ -238,34 +359,40 @@ onMounted(() => {
       }}
     </h2>
   </div>
-  <h3>Instance specific default parameters</h3>
-  <div
-    class="d-flex flex-wrap overflow-y-auto p-1 border border-bottom-0 rounded-top border-dashed"
-    style="max-height: 30vh"
-  >
-    <b class="ms-1 w-100">Workflow parameters:</b>
-    <template v-if="parameterPools.defaults.length > 0">
-      <div
-        class="w-fit border px-2 rounded cursor-pointer m-1 parameter-container"
-        v-for="(param, index) in parameterPools.defaults"
-        :key="param"
-        @click="addDefaultParameter(param, index)"
-      >
-        {{ param }}
-      </div>
-    </template>
-    <div v-else class="px-2 text-secondary m-1">
-      <i>Empty</i>
+  <div v-if="parameterState.loading" class="d-flex justify-content-center">
+    <div class="spinner-border" role="status">
+      <span class="visually-hidden">Loading...</span>
     </div>
   </div>
   <form
-    id="parameter-extension-form"
+    v-else
     ref="parameterExtensionForm"
+    id="parameter-extension-form"
     class="mb-2"
     :class="{ 'was-validated': parameterState.formValidated }"
     novalidate
     @submit.prevent="submitForm()"
   >
+    <h3>Instance specific default parameters</h3>
+    <div
+      class="d-flex flex-wrap overflow-y-auto p-1 border border-bottom-0 rounded-top border-dashed"
+      style="max-height: 30vh"
+    >
+      <b class="ms-1 w-100">Workflow parameters:</b>
+      <template v-if="parameterPools.defaults.length > 0">
+        <div
+          class="w-fit border px-2 rounded cursor-pointer m-1 parameter-container"
+          v-for="(param, index) in parameterPools.defaults"
+          :key="param"
+          @click="addDefaultParameter(param, index)"
+        >
+          {{ param }}
+        </div>
+      </template>
+      <div v-else class="px-2 text-secondary m-1">
+        <i>Empty</i>
+      </div>
+    </div>
     <table class="table table-bordered align-middle">
       <thead>
         <tr>
@@ -286,7 +413,7 @@ onMounted(() => {
                 v-model="parameterState.extension.defaults[param]"
                 size-modifier="sm"
                 :resource-parameter="
-                  parameterState.resourceParameters.has(param)
+                  parameterState.resourceParametersDefault.has(param)
                 "
                 raw-model
                 force-raw-file
@@ -294,12 +421,12 @@ onMounted(() => {
             </div>
             <button
               v-if="
-                !parameterState.resourceParameters.has(param) &&
+                !parameterState.resourceParametersDefault.has(param) &&
                 getParameterType(param) === 'string'
               "
               class="btn btn-primary btn-sm ms-2"
               type="button"
-              @click="makeResourceParameter(param)"
+              @click="makeResourceParameterDefault(param)"
             >
               Resource
             </button>
@@ -314,30 +441,131 @@ onMounted(() => {
         </tr>
       </tbody>
     </table>
+    <h3>Parameter Translation</h3>
+    <div
+      class="d-flex flex-wrap overflow-y-auto p-1 border rounded-top border-dashed"
+      style="max-height: 30vh"
+    >
+      <b class="ms-1 w-100">Workflow parameters:</b>
+      <template v-if="parameterPools.mapping.length > 0">
+        <div
+          class="w-fit border px-2 rounded cursor-pointer m-1 parameter-container"
+          v-for="(param, index) in parameterPools.mapping"
+          :key="param"
+          @click="addMappingParameter(param, index)"
+        >
+          {{ param }}
+        </div>
+      </template>
+      <div v-else class="px-2 text-secondary m-1">
+        <i>Empty</i>
+      </div>
+    </div>
+    <div v-if="parameterState.extension.mapping" class="p-0">
+      <div
+        v-for="param in Object.keys(parameterState.extension.mapping)"
+        :key="param"
+        class="p-2 border border-top-0"
+      >
+        <div class="d-flex justify-content-between mb-2">
+          <code class="fs-6 fw-bold bg-secondary-subtle rounded p-1"
+            >--{{ param }}</code
+          >
+          <button
+            type="button"
+            class="btn btn-outline-danger btn-sm"
+            @click="deleteMappingParameter(param)"
+          >
+            Remove
+          </button>
+        </div>
+        <div class="d-flex mb-4">
+          <button
+            type="button"
+            class="btn btn-primary me-2"
+            :disabled="
+              parameterState.mappingParameterValues[param]?.length === 0
+            "
+            @click="
+              addMappingParameterValue(
+                param,
+                parameterState.mappingParameterValues[param],
+              )
+            "
+          >
+            Add
+          </button>
+          <input
+            type="text"
+            class="form-control"
+            v-model="parameterState.mappingParameterValues[param]"
+          />
+        </div>
+        <template v-if="parameterState.extension.mapping[param]">
+          <div
+            v-for="key in Object.keys(parameterState.extension.mapping[param])"
+            :key="key"
+            class="mb-2"
+          >
+            <div class="p-0 d-flex justify-content-between mb-n1">
+              <code
+                class="p-1 rounded-top border-bottom-0 border border-secondary-subtle"
+                >{{ key }}</code
+              >
+              <span
+                class="px-1 pb-1 rounded-top border-bottom-0 border pseudo-danger-btn border-danger-subtle cursor-pointer"
+                @click="deleteMappingParameterValue(param, key)"
+                >Remove</span
+              >
+            </div>
+            <div class="input-group">
+              <parameter-input
+                :parameter="parameterSchema[param]"
+                force-raw-file
+                raw-model
+                required
+                size-modifier="sm"
+                border="secondary-subtle"
+                v-model="parameterState.extension.mapping[param][key]"
+              />
+            </div>
+          </div>
+        </template>
+      </div>
+    </div>
+  </form>
+  <div class="d-grid gap-2">
     <button
       type="submit"
-      class="btn btn-success"
+      class="btn btn-success btn-lh mt-3"
       form="parameter-extension-form"
+      :disabled="
+        parameterState.loading ||
+        Object.keys(parameterState.extension).length === 0
+      "
     >
       Save
     </button>
-  </form>
-  <h6>Parameter Extension</h6>
-  <pre><code>{{
-      parameterState.extension
-    }}</code></pre>
-  <h6>Resource Tree processed</h6>
-  <pre><code>{{ resourceRepository.resourceTreeList }}</code></pre>
-  <h6>Resource Tree raw</h6>
-  <pre><code>{{ resourceRepository.resourceTree }}</code></pre>
-  <h6>Parameter Pools</h6>
-  <pre><code>{{ parameterPools }}</code></pre>
-  <h6>Resource Parameters</h6>
-  <pre><code>{{ [...parameterState.resourceParameters.entries()].map((el) => el[0]) }}</code></pre>
+  </div>
 </template>
 
 <style scoped>
 .parameter-container:hover {
   background: var(--bs-secondary-bg-subtle);
 }
+
+.pseudo-danger-btn {
+  color: var(--bs-danger);
+  background-color: var(--bs-white);
+}
+
+.pseudo-danger-btn:hover {
+  color: var(--bs-white);
+  background-color: var(--bs-danger);
+  border-color: var(--bs-danger);
+}
+
+.mb-n1 {
+  margin-bottom: -0.25rem !important;
+}
 </style>