diff --git a/openapi-clowm.json b/openapi-clowm.json
index 7a3f4447319ef7ac7569ae716645ff39fb51158e..48f63d47f687a81105759ddda7d62af7a1866b75 100644
--- a/openapi-clowm.json
+++ b/openapi-clowm.json
@@ -1 +1 @@
-{"openapi":"3.1.0","info":{"title":"CloWM","description":"\nThis is the API documentation of the CloWM Service.\n\nLook in the [Git repository](https://gitlab.ub.uni-bielefeld.de/cmg/clowm/clowm-backend/-/blob/main/RBAC.md)\nto see which role has which permission.\n","contact":{"name":"Daniel Goebel","url":"https://ekvv.uni-bielefeld.de/pers_publ/publ/PersonDetail.jsp?personId=223066601","smtp":"dgoebel@techfak.uni-bielefeld.de"},"license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0"},"version":"1.0.0"},"servers":[{"url":"/api"}],"paths":{"/auth/login":{"get":{"tags":["Auth"],"summary":"Kickstart the login flow","description":"Redirect route to OIDC provider to kickstart the login process.","operationId":"Auth-login","parameters":[{"name":"invitation_token","in":"query","required":false,"schema":{"type":"string","minLength":43,"maxLength":43,"description":"Unique token to validate an invitation","title":"Invitation Token"},"description":"Unique token to validate an invitation"},{"name":"provider","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OIDCProvider","description":"The OIDC provider to use for login","default":"lifescience"},"description":"The OIDC provider to use for login"},{"name":"next","in":"query","required":false,"schema":{"type":"string","maxLength":128,"description":"Will be appended to redirect response in the callback route as URL query parameter `next`","title":"Next"},"description":"Will be appended to redirect response in the callback route as URL query parameter `next`"}],"responses":{"302":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/callback/{provider}":{"get":{"tags":["Auth"],"summary":"LifeScience Login Callback","description":"Callback for the Life Science Identity Provider.\n\nVisit the route login route to start the login process.\n\nIf the user is already known to the system, then a JWT token will be created and sent via the 'set-cookie' header.\nThe key for this Cookie is 'bearer'.\n\nIf the user is new, he will be created and then a JWT token is issued.\n\nThis JWT has to be sent to all authorized endpoints via the HTTPBearer scheme.","operationId":"Auth-login_callback","parameters":[{"name":"provider","in":"path","required":true,"schema":{"$ref":"#/components/schemas/OIDCProvider"}}],"responses":{"302":{"description":"Successful Response","headers":{"Set-Cookie":{"description":"JWT for accessing the API","schema":{"type":"string","example":"bearer=fake-jwt-cookie; Domain=localhost; Max-Age=691200; Path=/; SameSite=strict; Secure"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/logout":{"get":{"tags":["Auth"],"summary":"Logout","description":"Logout the user from the system by deleting the bearer cookie.","operationId":"Auth-logout","responses":{"302":{"description":"Successful Response","headers":{"Set-Cookie":{"description":"JWT for accessing the API","schema":{"type":"string","example":"bearer=; Domain=localhost; Max-Age=0; Path=/; SameSite=strict; Secure"}}}}}}},"/tokens":{"get":{"tags":["APIToken"],"summary":"List API token","description":"List meta information about all API token.\n\nPermissions `api_token:list_all` required. See parameter `uid` for exception.","operationId":"APIToken-list_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of the user to filter for. Permission `api_token:list` required if current users is the target.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of the user to filter for. Permission `api_token:list` required if current users is the target."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiTokenOut"},"title":"Response Apitoken-List Token"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["APIToken"],"summary":"Create new API token","description":"Create a new API token for the current user.\n\nPermission `api_token:create` required.","operationId":"APIToken-create_token","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenPrivateOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokens/{tid}":{"get":{"tags":["APIToken"],"summary":"Get API token","description":"Get an API token by id.\n\nPermission `api_token:read` required if the current user is the owner of the API token,\notherwise `api_token:read_any` required.","operationId":"APIToken-get_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of an API token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"],"title":"Tid"},"description":"ID of an API token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["APIToken"],"summary":"Delete API token","description":"Delete an API token by id.\n\nPermission `api_token:delete` required if the current user is the owner of the API token,\notherwise `api_token:delete_any` required.","operationId":"APIToken-delete_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of an API token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"],"title":"Tid"},"description":"ID of an API token"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users":{"post":{"tags":["User"],"summary":"Create User","description":"Create a new user in the system and notify him.\n\nPermission `user:create` required.","operationId":"User-create_user","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["User"],"summary":"List users and search by their name","description":"List all users in the system..\n\nPermission `user:list` required.","operationId":"User-list_users","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":false,"schema":{"type":"string","minLength":3,"maxLength":30,"description":"Filter users by a substring in their name.","title":"Name Substring"},"description":"Filter users by a substring in their name."},{"name":"filter_roles","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleEnum"},"description":"Filter users by their role. If multiple are selected, they are concatenating by an OR Expression.","title":"Filter Roles"},"description":"Filter users by their role. If multiple are selected, they are concatenating by an OR Expression."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserOutExtended"},"title":"Response User-List Users"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/search":{"get":{"tags":["User"],"summary":"Search Users","description":"Search for users in the system by their name.\n\nPermission `user: search` required.","operationId":"User-search_users","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":30,"description":"Filter users by a substring in their name.","title":"Name Substring"},"description":"Filter users by a substring in their name."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserOut"},"title":"Response User-Search Users"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/me":{"get":{"tags":["User"],"summary":"Get the logged in user","description":"Return the user associated with the used JWT.\n\nPermission `user:read` required.","operationId":"User-get_logged_in_user","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/users/{uid}":{"get":{"tags":["User"],"summary":"Get a user by its uid","description":"Return the user with the specific uid.\n\nPermission `user:read` required.","operationId":"User-get_user","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/roles":{"put":{"tags":["User"],"summary":"Update user roles","description":"Update the roles of a user.\n\nPermission `user:update` required.","operationId":"User-update_roles","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRoles"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/invitation":{"patch":{"tags":["User"],"summary":"Resend Invitation","description":"Resend the invitation link for an user that has an open invitation.\n\nPermission `user:create` required.","operationId":"User-resend_invitation","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/keys":{"get":{"tags":["S3Key"],"summary":"Get the S3 Access keys from a user","description":"Get all the S3 Access keys for a specific user.\n\nPermission `s3_key:list` required.","operationId":"S3Key-get_user_keys","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/S3Key"},"title":"Response S3Key-Get User Keys"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["S3Key"],"summary":"Create a Access key for a user","description":"Create a S3 Access key for a specific user.\n\nPermission `s3_key:create` required.","operationId":"S3Key-create_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Key"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/keys/{access_id}":{"get":{"tags":["S3Key"],"summary":"Get a specific S3 Access key from a user","description":"Get a specific S3 Access Key for a specific user.\n\nPermission `s3_key:read` required.","operationId":"S3Key-get_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"access_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"],"title":"Access Id"},"description":"ID of the S3 access key"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Key"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["S3Key"],"summary":"Delete a specific S3 Access key from a user","description":"Delete a specific S3 Access key for a specific user.\n\nPermission `s3_key:delete` required if the current user is the target, otherwise `s3_key:delete_any` required.","operationId":"S3Key-delete_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"access_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"],"title":"Access Id"},"description":"ID of the S3 access key"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets":{"get":{"tags":["Bucket"],"summary":"List buckets","description":"List all the buckets in the system or of the desired user where the user has permissions for.\n\nPermission `bucket:list_all` required. See parameter `owner_id` for exception.","operationId":"Bucket-list_buckets","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of the user for whom to fetch the buckets for. Permission `bucket:read_any` required if current user is not the target.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Owner Id"},"description":"UID of the user for whom to fetch the buckets for. Permission `bucket:read_any` required if current user is not the target."},{"name":"bucket_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/BucketType","description":"Type of the bucket to get. Ignored when `user` parameter not set","default":"ALL"},"description":"Type of the bucket to get. Ignored when `user` parameter not set"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketOut"},"title":"Response Bucket-List Buckets"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Bucket"],"summary":"Create a bucket for the current user","description":"Create a bucket for the current user.\n\nThe name of the bucket has some constraints.\nFor more information see the\n[Ceph documentation](https://docs.ceph.com/en/quincy/radosgw/s3/bucketops/#constraints)\n\nPermission `bucket:create` required.","operationId":"Bucket-create_bucket","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/ownership_transfer_request":{"get":{"tags":["Bucket"],"summary":"List bucket OTRs","description":"Get the ownership transfer requests for buckets.\n\nPermission `bucket:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `bucket:list_all`","operationId":"Bucket-list_bucket_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Bucket-List Bucket Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}":{"get":{"tags":["Bucket"],"summary":"Get a bucket by its name","description":"Get a bucket by its name if the current user has READ permissions for the bucket.\n\nPermission `bucket:read` required if the current user is the owner of the bucket,\notherwise `bucket:read_any` required.","operationId":"Bucket-get_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Bucket"],"summary":"Delete a bucket","description":"Delete a bucket by its name. Only the owner of the bucket can delete the bucket.\n\nPermission `bucket:delete` required if the current user is the owner of the bucket,\notherwise `bucket:delete_any` required.","operationId":"Bucket-delete_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"},{"name":"force_delete","in":"query","required":false,"schema":{"type":"boolean","description":"Delete even non-empty bucket","default":false,"title":"Force Delete"},"description":"Delete even non-empty bucket"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/ownership_transfer_request":{"get":{"tags":["Bucket"],"summary":"Get a bucket OTR","description":"Get a specific bucket ownership transfer request.\n\nPermission `bucket:read` required if the current user is the current or new owner of the bucket,\notherwise `bucket:read_any` required.","operationId":"Bucket-get_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Bucket"],"summary":"Create a bucket OTR","description":"Create a ownership transfer request for a specific bucket.\n\nPermission `bucket:update` required if the current user is the current owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-create_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Bucket"],"summary":"Accept a bucket OTR","description":"Accept an ownership transfer request for a specific workflow.\n\nPermission `bucket:update` required if the current user is the new owner of the workflow,\notherwise `bucket:update_any` required.","operationId":"Bucket-accept_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Bucket"],"summary":"Delete a bucket OTR","description":"Delete/Reject a bucket ownership transfer request.\n\nPermission `bucket:update` required if the current user is the current or new owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-delete_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/public":{"patch":{"tags":["Bucket"],"summary":"Update public status","description":"Update the buckets public state.\n\nPermission `bucket:update` required if the current user is the owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-update_bucket_public_state","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Bucket-update_bucket_public_state"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/limits":{"patch":{"tags":["Bucket"],"summary":"Update bucket limits","description":"Update the buckets size limits.\n\nPermission `bucket:update_any` required.","operationId":"Bucket-update_bucket_limits","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketSizeLimits"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions.","description":"List all the bucket permissions in the system.\n\nPermission `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"permission_types","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/Permission"},"description":"Type of Bucket Permissions to fetch","title":"Permission Types"},"description":"Type of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/PermissionStatus","description":"Status of Bucket Permissions to fetch"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["BucketPermission"],"summary":"Create a permission.","description":"Create a permission for a bucket and user.\n\nPermission `bucket_permission:create` required.","operationId":"BucketPermission-create_permission","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionIn","description":"Permission to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/user/{uid}":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions for a user.","description":"List all the bucket permissions for the given user.\n\nPermission `bucket_permission:list` required if current user is the target the bucket permission,\notherwise `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions_per_user","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"},{"name":"permission_types","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/Permission"},"description":"Type of Bucket Permissions to fetch","title":"Permission Types"},"description":"Type of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/PermissionStatus","description":"Status of Bucket Permissions to fetch"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions Per User"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/bucket/{bucket_name}":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions for a bucket.","description":"List all the bucket permissions for the given bucket.\n\nPermission `bucket_permission:list` required if current user is owner of the bucket,\notherwise `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions_per_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"},{"name":"permission_types","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/Permission"},"description":"Type of Bucket Permissions to fetch","title":"Permission Types"},"description":"Type of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/PermissionStatus","description":"Status of Bucket Permissions to fetch"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions Per Bucket"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/bucket/{bucket_name}/user/{uid}":{"get":{"tags":["BucketPermission"],"summary":"Get permission for bucket and user combination.","description":"Get the bucket permissions for the specific combination of bucket and user.\n\nPermission `bucket_permission:read` required if current user is the target or owner of the bucket permission,\notherwise `bucket_permission:read_any` required.","operationId":"BucketPermission-get_permission_for_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["BucketPermission"],"summary":"Update a bucket permission","description":"Update a permission for a bucket and user.\n\nPermission `bucket_permission:update` required.","operationId":"BucketPermission-update_permission","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionParameters","description":"Permission to create"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["BucketPermission"],"summary":"Delete a bucket permission","description":"Delete the bucket permissions for the specific combination of bucket and user.\n\nPermission `bucket_permission:delete` required if current user is the target or owner of the bucket permission,\notherwise `bucket_permission:delete_any` required.","operationId":"BucketPermission-delete_permission","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows":{"post":{"tags":["Workflow"],"summary":"Create a new workflow","description":"Create a new workflow.\n\nFor private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.\n\nFor private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.\n\nPermission `workflow:create` required.","operationId":"Workflow-create_workflow","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Workflow"],"summary":"List workflows","description":"List all workflows.\n\nPermission `workflow:list` required.","operationId":"Workflow-list_workflows","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":false,"schema":{"type":"string","minLength":3,"maxLength":30,"description":"Filter workflows by a substring in their name.","title":"Name Substring"},"description":"Filter workflows by a substring in their name."},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`.","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`."},{"name":"developer_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Developer Id"},"description":"Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowOut"},"title":"Response Workflow-List Workflows"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/ownership_transfer_request":{"get":{"tags":["Workflow"],"summary":"List workflow OTRs","description":"Get the ownership transfer requests for workflows.\n\nPermission `workflow:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `workflow:list_all`","operationId":"Workflow-list_workflow_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Workflow-List Workflow Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/developer_statistics":{"get":{"tags":["Workflow"],"summary":"Get anonymized workflow execution","description":"Get the workflow executions with meta information and anonymized user IDs.\n\nPermission `workflow:read` required if the `developer_id` is the same as the uid of the current user,\nother `workflow:read_any`.","operationId":"Workflow-get_developer_workflow_statistics","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"developer_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Filter by the developer of the workflows","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Developer Id"},"description":"Filter by the developer of the workflows"},{"name":"workflow_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Filter by workflow IDs","title":"Workflow Id"},"description":"Filter by workflow IDs"},{"name":"start","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Filter by workflow executions after this date","title":"Start"},"description":"Filter by workflow executions after this date"},{"name":"end","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Filter by workflow executions before this date","title":"End"},"description":"Filter by workflow executions before this date"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AnonymizedWorkflowExecution"},"title":"Response Workflow-Get Developer Workflow Statistics"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}":{"get":{"tags":["Workflow"],"summary":"Get a workflow","description":"Get a specific workflow.\n\nPermission `workflow:read` required.","operationId":"Workflow-get_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"},"description":"Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow"],"summary":"Delete a workflow","description":"Delete a workflow.\n\nPermission `workflow:delete` required if the `developer_id` is the same as the uid of the current user,\nother `workflow:delete_any`.","operationId":"Workflow-delete_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/ownership_transfer_request":{"get":{"tags":["Workflow"],"summary":"Get a workflow OTR","description":"Get a specific workflow ownership transfer request.\n\nPermission `workflow:read` required if current user is the current or new owner of the workflow,\notherwise `workflow:read_any` required.","operationId":"Workflow-get_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Workflow"],"summary":"Create a workflow OTR","description":"Create a ownership transfer request for a specific workflow.\n\nPermission `workflow:update` required if the current user is the current owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-create_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Workflow"],"summary":"Accept a workflow OTR","description":"Accept an ownership transfer request for a specific workflow.\n\nPermission `workflow:update` required if the current user is the new owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-accept_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow"],"summary":"Delete a workflow OTR","description":"Delete/Reject a workflow ownership transfer request.\n\nPermission `workflow:update` required if current user is the current or new owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-delete_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/statistics":{"get":{"tags":["Workflow"],"summary":"Get statistics for a workflow","description":"Get the number of started workflow per day.\n\nPermission `workflow:read` required.","operationId":"Workflow-get_workflow_statistics","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowStatistic"},"title":"Response Workflow-Get Workflow Statistics"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/update":{"post":{"tags":["Workflow"],"summary":"Update a workflow","description":"Create a new workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow-update_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowUpdate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions":{"get":{"tags":["Workflow Version"],"summary":"Get all versions of a workflow","description":"List all versions of a Workflow.\n\nPermission `workflow:list` required.","operationId":"Workflow Version-list_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersion"},"title":"Response Workflow Version-List Workflow Version"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}":{"get":{"tags":["Workflow Version"],"summary":"Get a workflow version","description":"Get a specific version of a workflow.\n\nPermission `workflow:read` required if the version is public or you are the developer of the workflow,\notherwise `workflow:read_any`","operationId":"Workflow Version-get_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit `git_commit_hash` of specific version or `latest`.","examples":["latest","ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit `git_commit_hash` of specific version or `latest`."},{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/status":{"patch":{"tags":["Workflow Version"],"summary":"Update status of workflow version","description":"Update the status of a workflow version.\n\nPermission `workflow:update_status`","operationId":"Workflow Version-update_workflow_version_status","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionStatusSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/deprecate":{"patch":{"tags":["Workflow Version"],"summary":"Deprecate a workflow version","description":"Deprecate a workflow version.\n\nPermission `workflow:update` required if you are the developer of the workflow,\notherwise `workflow:update_status`","operationId":"Workflow Version-deprecate_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/parameter-extension":{"patch":{"tags":["Workflow Version"],"summary":"Update parameter extension of workflow version","description":"Update the parameter extension of a workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-update_workflow_version_parameter_extension","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParameterExtension"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Version"],"summary":"Delete parameter extension of workflow version","description":"Delete the parameter extension of a workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-delete_workflow_version_parameter_extension","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/documentation":{"get":{"tags":["Workflow Version"],"summary":"Fetch documentation for a workflow version","description":"Get the documentation for a specific workflow version.\nStreams the response directly from the right git repository.\n\nPermission `workflow:read` required.","operationId":"Workflow Version-download_workflow_documentation","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."},{"name":"document","in":"query","required":false,"schema":{"$ref":"#/components/schemas/DocumentationEnum","description":"Specify which type of documentation the client wants to fetch","default":"usage.md"},"description":"Specify which type of documentation the client wants to fetch"},{"name":"mode_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Workflow Mode","title":"Mode Id"},"description":"Workflow Mode"}],"responses":{"200":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/icon":{"post":{"tags":["Workflow Version"],"summary":"Upload icon for workflow version","description":"Upload an icon for the workflow version and returns the new icon URL.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-upload_workflow_version_icon","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Workflow_Version-upload_workflow_version_icon"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IconUpdateOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Version"],"summary":"Delete icon of workflow version","description":"Delete the icon of the workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-delete_workflow_version_icon","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions":{"post":{"tags":["Workflow Execution"],"summary":"Start a new workflow execution","description":"Start a new workflow execution. Workflow versions wit status `DEPRECATED` or `DENIED` can't be started.\n\nPermission `workflow_execution:create` required if workflow versions status is `PUBLISHED`,\notherwise `workflow_execution:create_any` required.","operationId":"Workflow Execution-start_workflow","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Workflow Execution"],"summary":"Get all workflow executions","description":"Get all workflow executions.\n\nThis endpoint enforces keyset pagination. To iterate over all workflow executions, follow the link provided in the\n`Link` header.\nA missing `Link` header indicates that you iterated over all workflow executions with the current filters.\n\nPermission `workflow_execution:list` required, if `executor_id` is the same as the current user,\notherwise `workflow_execution:list_all` required.","operationId":"Workflow Execution-list_workflow_executions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"executor_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Executor Id"},"description":"Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required."},{"name":"execution_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowExecutionStatus"},"description":"Filter for status of workflow execution","title":"Execution Status"},"description":"Filter for status of workflow execution"},{"name":"workflow_version_id","in":"query","required":false,"schema":{"type":"string","minLength":40,"maxLength":40,"description":"Filter for workflow version","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Workflow Version Id"},"description":"Filter for workflow version"},{"name":"workflow_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Filter for workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Workflow Id"},"description":"Filter for workflow"},{"name":"start_after","in":"query","required":false,"schema":{"type":"integer","ge":0,"description":"Filter for workflow executions that started after this UNIX timestamp","title":"Start After"},"description":"Filter for workflow executions that started after this UNIX timestamp"},{"name":"start_before","in":"query","required":false,"schema":{"type":"integer","ge":0,"description":"Filter for workflow executions that started before this UNIX timestamp","title":"Start Before"},"description":"Filter for workflow executions that started before this UNIX timestamp"},{"name":"id_after","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Id of the item to start the query from. DO NOT SET MANUALLY.","title":"Id After"},"description":"Id of the item to start the query from. DO NOT SET MANUALLY."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":5,"description":"Number of items to list per page","default":20,"title":"Per Page"},"description":"Number of items to list per page"},{"name":"sort","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Sort order of items with creation time","default":"desc","title":"Sort"},"description":"Sort order of items with creation time"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowExecutionOut"},"title":"Response Workflow Execution-List Workflow Executions"}}},"headers":{"Link":{"description":"Link for the next pagination page if there is any","schema":{"type":"string","example":"<https://clowm.de/api/workflow_executions?per_page=50&sort=asc&id_after=a16c50f8-c1fb-4b3c-afe3-82f1575bc2f4>; rel=\"next\""}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/arbitrary":{"post":{"tags":["Workflow Execution"],"summary":"Start a workflow execution with arbitrary git repository","description":"Start a new workflow execution from an arbitrary git repository.\n\nFor private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.\n\nFor private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.\n\nPermission `workflow:create` required.","operationId":"Workflow Execution-start_arbitrary_workflow","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevWorkflowExecutionIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/workflow_executions/{eid}":{"get":{"tags":["Workflow Execution"],"summary":"Get a workflow execution","description":"Get a specific workflow execution.\n\nPermission `workflow_execution:read` required if the current user started the workflow execution,\notherwise `workflow_execution:read_any` required.","operationId":"Workflow Execution-get_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Execution"],"summary":"Delete a workflow execution","description":"Delete a specific workflow execution.\n\nPermission `workflow_execution:delete` required if the current user started the workflow execution,\notherwise `workflow_execution:delete_any` required.","operationId":"Workflow Execution-delete_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/{eid}/params":{"get":{"tags":["Workflow Execution"],"summary":"Get the parameters of a workflow execution","description":"Get the parameters of a specific workflow execution.\n\nPermission `workflow_execution:read` required if the current user started the workflow execution,\notherwise `workflow_execution:read_any` required.","operationId":"Workflow Execution-get_workflow_execution_params","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Workflow Execution-Get Workflow Execution Params"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/{eid}/cancel":{"post":{"tags":["Workflow Execution"],"summary":"Cancel a workflow execution","description":"Cancel a running workflow execution.\n\nPermission `workflow_execution:cancel` required if the current user started the workflow execution,\notherwise `workflow_execution:cancel_any` required.","operationId":"Workflow Execution-cancel_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/credentials":{"get":{"tags":["Workflow Credentials"],"summary":"Get the credentials of a workflow","description":"Get the credentials for the repository of a workflow. Only the developer of a workflow can do this.\n\nPermission `workflow:update` required.","operationId":"Workflow Credentials-get_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCredentialsOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Workflow Credentials"],"summary":"Update the credentials of a workflow","description":"Update the credentials for the repository of a workflow.\n\nPermission `workflow:update` required.","operationId":"Workflow Credentials-update_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCredentialsIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Credentials"],"summary":"Delete the credentials of a workflow","description":"Delete the credentials for the repository of a workflow.\n\nPermission `workflow:delete` required if the developer of the workflow is the same as the current user,\nother `workflow:delete_any`.","operationId":"Workflow Credentials-delete_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_modes/{mode_id}":{"get":{"tags":["Workflow Mode"],"summary":"Get workflow mode","description":"Get a workflow mode\n\nPermission `workflow:read` required","operationId":"Workflow Mode-get_workflow_mode","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"mode_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow mode","title":"Mode Id"},"description":"ID of a workflow mode"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowModeOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources":{"post":{"tags":["Resource"],"summary":"Request a new resource","description":"Request a new resources.\n\nPermission `resource:create` required.","operationId":"Resource-create_resource","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Resource"],"summary":"List resources","description":"List all resources.\n\nPermission `resource:list` required.","operationId":"Resource-list_resources","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"maintainer_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`.","title":"Maintainer Id"},"description":"Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`."},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"},"description":"Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required."},{"name":"name_substring","in":"query","required":false,"schema":{"type":"string","maxLength":32,"description":"Filter resources by a substring in their name.","title":"Name Substring"},"description":"Filter resources by a substring in their name."},{"name":"public","in":"query","required":false,"schema":{"type":"boolean","description":"Filter resources to by the public flag","title":"Public"},"description":"Filter resources to by the public flag"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceOut"},"title":"Response Resource-List Resources"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/sync_requests":{"get":{"tags":["Resource"],"summary":"List resource sync requests","description":"List all resource sync requests.\n\nPermission `resource:update_any` required.","operationId":"Resource-list_sync_requests","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserSynchronizationRequestOut"},"type":"array","title":"Response Resource-List Sync Requests"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/resources/ownership_transfer_request":{"get":{"tags":["Resource"],"summary":"List resource OTRs","description":"Get the ownership transfer requests for resources.\n\nPermission `resource:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `resource:list_all`","operationId":"Resource-list_resource_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Resource-List Resource Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}":{"get":{"tags":["Resource"],"summary":"Get a resource","description":"Get a specific resource.\n\nPermission `resource:read` required.","operationId":"Resource-get_resource","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Resource"],"summary":"Delete a resource","description":"Delete a resources.\n\nPermission `resource:delete` required.","operationId":"Resource-delete_resource","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/ownership_transfer_request":{"get":{"tags":["Resource"],"summary":"Get a resource OTR","description":"Get a specific resource ownership transfer request.\n\nPermission `resource:read` required if the current user is the current or new owner of the resource,\notherwise `resource:read_any` required.","operationId":"Resource-get_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Resource"],"summary":"Create a resource OTR","description":"Create a ownership transfer request for a specific resource.\n\nPermission `resource:update` required if the current user is the current owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-create_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Resource"],"summary":"Accept a resource OTR","description":"Accept an ownership transfer request for a specific resource.\n\nPermission `resource:update` required if the current user is the new owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-accept_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Resource"],"summary":"Delete a resource OTR","description":"Delete/Reject a resource ownership transfer request.\n\nPermission `resource:update` required if the current user is the current or new owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-delete_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions":{"get":{"tags":["ResourceVersion"],"summary":"List versions of a resource","description":"List all the resource version for a specific resource.\n\nPermission 'resource:read' required.","operationId":"ResourceVersion-list_resource_versions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionOut"},"title":"Response Resourceversion-List Resource Versions"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["ResourceVersion"],"summary":"Request new version of a resource","description":"Request a new resource version.\n\nPermission `resource:update` required if the current user is the maintainer, `resource:update_any` otherwise.","operationId":"ResourceVersion-request_resource_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}":{"get":{"tags":["ResourceVersion"],"summary":"Get version of a resource","description":"Get a specific resource version for a specific resource.\n\nPermission `resource:read` required. If the status of the resource version is not `LATEST` or `SYNCHRONIZED` and\nthe current user is not the maintainer, then the permission `resource:read_any` is required.","operationId":"ResourceVersion-get_resource_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/tree":{"get":{"tags":["ResourceVersion"],"summary":"Download folder structure of resource","description":"Get the folder structure of the resources. Only available if the resource was previously downloaded to the cluster.\n\nPermission `resource:read` required.","operationId":"ResourceVersion-resource_file_tree","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileTree"},"title":"Response Resourceversion-Resource File Tree"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/request_review":{"put":{"tags":["ResourceVersion"],"summary":"Request resource version review","description":"Request the review of a resource version.\n\nPermission `resource:update` required.","operationId":"ResourceVersion-request_resource_version_review","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/request_sync":{"put":{"tags":["ResourceVersion"],"summary":"Request resource version synchronization","description":"Request the synchronization of a resource version to the cluster.\n\nPermission `resource:request_sync` required.","operationId":"ResourceVersion-request_resource_version_sync","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSynchronizationRequestIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/review":{"put":{"tags":["ResourceVersion"],"summary":"Review resource version","description":"Review answer the resource version.\n\nPermission `resource:update_status` required.","operationId":"ResourceVersion-resource_version_review","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRequestAnswer"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/sync":{"put":{"tags":["ResourceVersion"],"summary":"Synchronize resource version with cluster","description":"Synchronize the resource version to the cluster.\n\nPermission `resource:update_any` required.","operationId":"ResourceVersion-resource_version_sync","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRequestAnswer"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/latest":{"put":{"tags":["ResourceVersion"],"summary":"Set resource version to latest","description":"Set the resource version as the latest version.\n\nPermission `resource:update_any` required.","operationId":"ResourceVersion-resource_version_latest","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/cluster":{"delete":{"tags":["ResourceVersion"],"summary":"Delete resource version on cluster","description":"Delete the resource version on the cluster.\n\nPermission `resource:delete_any` required.","operationId":"ResourceVersion-delete_resource_version_cluster","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/s3":{"delete":{"tags":["ResourceVersion"],"summary":"Delete resource version in S3","description":"Delete the resource version in the S3 bucket.\n\nPermission `resource:delete_any` required.","operationId":"ResourceVersion-delete_resource_version_s3","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AnonymizedWorkflowExecution":{"properties":{"workflow_execution_id":{"type":"string","title":"Workflow Execution Id","description":"ID of the workflow execution","examples":["591b6a6e-a1f0-420d-8a20-a7a60704f695"]},"pseudo_uid":{"type":"string","title":"Pseudo Uid","description":"Anonymized user ID of the user who ran the workflow execution","examples":["7ed4249857b656e96f456449796e461e6001d3fb2481a44701f70ca437bd53a2"]},"workflow_mode_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Mode Id","description":"ID of the workflow mode this workflow execution ran in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"workflow_version_id":{"type":"string","title":"Workflow Version Id","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"started_at":{"type":"string","format":"date","title":"Started At","description":"Day of the workflow execution","examples":["2023-01-01"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"developer_id":{"type":"string","title":"Developer Id","description":"ID of developer of the workflow","examples":["28c5353b8bb34984a8bd4169ba94c606"]},"status":{"$ref":"#/components/schemas/WorkflowExecutionStatus","description":"End status of the workflow execution","examples":["SUCCESS"]}},"type":"object","required":["workflow_execution_id","pseudo_uid","workflow_version_id","started_at","workflow_id","developer_id","status"],"title":"AnonymizedWorkflowExecution"},"ApiTokenIn":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"$ref":"#/components/schemas/ScopeEnum"},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has","examples":[["read"]]}},"type":"object","required":["name","scopes"],"title":"ApiTokenIn"},"ApiTokenOut":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"$ref":"#/components/schemas/ScopeEnum"},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has","examples":[["read"]]},"token_id":{"type":"string","title":"Token Id","description":"The ID of the token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"]},"uid":{"type":"string","title":"Uid","description":"The ID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"created_at":{"type":"integer","title":"Created At","description":"The UNIX timestamp when this token was created","examples":["1717192800"]},"last_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used","description":"The UNIX timestamp when this token was used the last time","examples":["1717193800"]}},"type":"object","required":["name","scopes","token_id","uid","created_at"],"title":"ApiTokenOut"},"ApiTokenPrivateOut":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"$ref":"#/components/schemas/ScopeEnum"},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has","examples":[["read"]]},"token_id":{"type":"string","title":"Token Id","description":"The ID of the token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"]},"uid":{"type":"string","title":"Uid","description":"The ID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"created_at":{"type":"integer","title":"Created At","description":"The UNIX timestamp when this token was created","examples":["1717192800"]},"last_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used","description":"The UNIX timestamp when this token was used the last time","examples":["1717193800"]},"token":{"type":"string","title":"Token","description":"The actual token used for authentication","examples":["J21NRKUYgyVUgvJ3cIdllS-MMa9ny1UDKFF18aetDvo"]}},"type":"object","required":["name","scopes","token_id","uid","created_at","token"],"title":"ApiTokenPrivateOut"},"Body_Bucket-update_bucket_public_state":{"properties":{"public":{"type":"boolean","title":"Public","description":"New State"}},"type":"object","required":["public"],"title":"Body_Bucket-update_bucket_public_state"},"Body_Workflow_Version-upload_workflow_version_icon":{"properties":{"icon":{"type":"string","format":"binary","title":"Icon","description":"Icon for the Workflow."}},"type":"object","required":["icon"],"title":"Body_Workflow Version-upload_workflow_version_icon"},"BucketIn":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$","title":"Name","description":"Name of the bucket","examples":["test-bucket"]},"description":{"type":"string","maxLength":65536,"minLength":16,"title":"Description","description":"Description of the bucket","examples":["This is a sample description of a bucket"]}},"type":"object","required":["name","description"],"title":"BucketIn","description":"Schema for creating a new bucket."},"BucketOut":{"properties":{"size_limit":{"anyOf":[{"type":"integer","exclusiveMaximum":4294967296.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Size Limit","description":"Size limit of the bucket in KiB","examples":[10240]},"object_limit":{"anyOf":[{"type":"integer","exclusiveMaximum":4294967296.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Object Limit","description":"Number of objects limit of the bucket","examples":[10000]},"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$","title":"Name","description":"Name of the bucket","examples":["test-bucket"]},"description":{"type":"string","maxLength":65536,"minLength":16,"title":"Description","description":"Description of the bucket","examples":["This is a sample description of a bucket"]},"created_at":{"type":"integer","title":"Created At","description":"Time when the bucket was created as UNIX timestamp","examples":[1640991600]},"owner_id":{"type":"string","title":"Owner Id","description":"UID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"public":{"type":"boolean","title":"Public","description":"Flag if the bucket is anonymously readable"}},"type":"object","required":["name","description","created_at","owner_id","public"],"title":"BucketOut","description":"Schema for answering a request with a bucket."},"BucketPermissionIn":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"permission":{"anyOf":[{"$ref":"#/components/schemas/Permission"},{"type":"string","enum":["READ","WRITE","READWRITE"]}],"title":"Permission","description":"Permission","default":"READ","examples":["READ"]},"uid":{"type":"string","format":"uuid","title":"Uid","description":"UID of the grantee","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"bucket_name":{"type":"string","title":"Bucket Name","description":"Name of Bucket","examples":["test-bucket"]}},"type":"object","required":["uid","bucket_name"],"title":"BucketPermissionIn"},"BucketPermissionOut":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"permission":{"anyOf":[{"$ref":"#/components/schemas/Permission"},{"type":"string","enum":["READ","WRITE","READWRITE"]}],"title":"Permission","description":"Permission","default":"READ","examples":["READ"]},"uid":{"type":"string","title":"Uid","description":"UID of the grantee","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"bucket_name":{"type":"string","title":"Bucket Name","description":"Name of Bucket","examples":["test-bucket"]}},"type":"object","required":["uid","bucket_name"],"title":"BucketPermissionOut","description":"Schema for the bucket permissions."},"BucketPermissionParameters":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"permission":{"anyOf":[{"$ref":"#/components/schemas/Permission"},{"type":"string","enum":["READ","WRITE","READWRITE"]}],"title":"Permission","description":"Permission","default":"READ","examples":["READ"]}},"type":"object","title":"BucketPermissionParameters","description":"Schema for the parameters of a bucket permission."},"BucketSizeLimits":{"properties":{"size_limit":{"anyOf":[{"type":"integer","exclusiveMaximum":4294967296.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Size Limit","description":"Size limit of the bucket in KiB","examples":[10240]},"object_limit":{"anyOf":[{"type":"integer","exclusiveMaximum":4294967296.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Object Limit","description":"Number of objects limit of the bucket","examples":[10000]}},"type":"object","title":"BucketSizeLimits","description":"Schema to represent bucket limits."},"BucketType":{"type":"string","enum":["OWN","ALL","PERMISSION"],"title":"BucketType","description":"Enumeration for the type of buckets to fetch from the DB\n\nOWN: Only fetch buckets that the user owns\nPERMISSION: Only fetch foreign buckets that the user has access to\nALL: Fetch all buckets that the user has access to"},"DevWorkflowExecutionIn":{"properties":{"parameters":{"type":"object","title":"Parameters","description":"Parameters for this workflow"},"logs_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where to save logs and reports. If None, nothing will be uploaded.","examples":["s3://example-bucket/logs"]},"provenance_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where to save provenance information. If None, nothing will be uploaded.","examples":["s3://example-bucket/provenance"]},"debug_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where to save debug information from Nextflow. If None, nothing will be uploaded.","examples":["s3://example-bucket/debug"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"repository_url":{"type":"string","minLength":1,"format":"uri","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]},"mode":{"anyOf":[{"$ref":"#/components/schemas/WorkflowModeIn"},{"type":"null"}],"description":"Mode of the workflow with an alternative entrypoint"},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow execution requires"}},"type":"object","required":["parameters","git_commit_hash","repository_url","nextflow_version"],"title":"DevWorkflowExecutionIn"},"DocumentationEnum":{"type":"string","enum":["usage.md","input.md","output.md","changelog.md","parameter_schema.json","clowm_info.json"],"title":"DocumentationEnum"},"ErrorDetail":{"properties":{"detail":{"type":"string","title":"Detail","description":"Detail about the occurred error"}},"type":"object","required":["detail"],"title":"ErrorDetail","description":"Schema for a error due to a rejected request."},"FileTree":{"properties":{"type":{"type":"string","enum":["file","directory","link"],"title":"Type"},"name":{"type":"string","title":"Name"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target"},"contents":{"anyOf":[{"items":{"$ref":"#/components/schemas/FileTree"},"type":"array"},{"type":"null"}],"title":"Contents"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["type","name","size"],"title":"FileTree"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IconUpdateOut":{"properties":{"icon_url":{"type":"string","title":"Icon Url","description":"URL to the uploaded icon","examples":["https://s3-dev.nfdi.bi.denbi.de/clowm-data/icon/980a9446c7f2460c83187cbb876f8424.png"]}},"type":"object","required":["icon_url"],"title":"IconUpdateOut"},"NextflowVersion":{"type":"string","enum":["22.10.0","22.10.1","22.10.2","22.10.3","22.10.4","22.10.5","22.10.6","22.10.7","22.10.8","23.04.0","23.04.1","23.04.2","23.04.3","23.04.4","23.04.5","23.10.0","23.10.1","23.10.2","23.10.3","23.10.4","24.04.1","24.04.2","24.04.3","24.04.4"],"title":"NextflowVersion"},"OIDCProvider":{"type":"string","enum":["lifescience"],"const":"lifescience","title":"OIDCProvider"},"OwnershipTransferRequestIn":{"properties":{"new_owner_uid":{"type":"string","format":"uuid","title":"New Owner Uid","description":"The new owner that get the request","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"comment":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Comment","description":"An optional comment for the transfer request","examples":["This is an example comment"]}},"type":"object","required":["new_owner_uid"],"title":"OwnershipTransferRequestIn"},"OwnershipTransferRequestOut":{"properties":{"new_owner_uid":{"type":"string","title":"New Owner Uid","description":"The new owner that get the request","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"comment":{"type":"string","title":"Comment","description":"An optional comment for the transfer request","default":"","examples":["This is an example comment"]},"created_at":{"type":"integer","title":"Created At","description":"Time when the ownership transfer was requested as UNIX timestamp","examples":[1640991600]},"current_owner_uid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Owner Uid","description":"The current uid of the current owner if he exists","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"target_id":{"type":"string","title":"Target Id","description":"Id of the target that gets its ownership transferred"},"target_name":{"type":"string","title":"Target Name","description":"Name of the target","examples":["example-bucket","Example Workflow","Example Resource"]},"target_description":{"type":"string","title":"Target Description","description":"Description of then target","examples":["Some long description of a target"]},"target_type":{"$ref":"#/components/schemas/OwnershipTypeEnum","description":"Target type of the ownership transfer","examples":["bucket"]}},"type":"object","required":["new_owner_uid","created_at","target_id","target_name","target_description","target_type"],"title":"OwnershipTransferRequestOut"},"OwnershipTypeEnum":{"type":"string","enum":["bucket","workflow","resource"],"title":"OwnershipTypeEnum"},"ParameterExtension":{"properties":{"mapping":{"additionalProperties":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"}]},"type":"object"},"type":"object","title":"Mapping","description":"The inner dictionary contains the display name as key and the parameter value as value. The outer dictionary has the parameter name as key.","examples":[{"some-complex-parameter":{"Option 1":"/some/path","Option 2":"/some/other/path"}}]},"defaults":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}]},"type":"object","title":"Defaults","description":"Dictionary with parameter name as key and default value as value","examples":[{"parameter1":"somevalue","parameter2":12}]}},"type":"object","title":"ParameterExtension"},"Permission":{"type":"string","enum":["READ","WRITE","READWRITE"],"title":"Permission","description":"Enumeration for the possible permission on a bucket."},"PermissionStatus":{"type":"string","enum":["ACTIVE","INACTIVE"],"title":"PermissionStatus","description":"Status of a bucket permission. Can be either `ACTIVE` or `INACTIVE`. A permission can only get `INACTIVE` if the\npermission itself has a time limit and the current time is not in the timespan."},"ResourceIn":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]},"name":{"type":"string","maxLength":32,"minLength":3,"title":"Name","description":"Short Name for the resource","examples":["blastdb"]},"description":{"type":"string","maxLength":264,"minLength":16,"title":"Description","description":"Short description for this resource","examples":["This is a short description for a resource"]},"source":{"type":"string","maxLength":264,"minLength":8,"title":"Source","description":"A link or similar where the resource originates from","examples":["https://example.com/db"]},"private":{"type":"boolean","title":"Private","description":"Flag if this resource should be default visible in the UI","default":true}},"type":"object","required":["release","name","description","source"],"title":"ResourceIn"},"ResourceOut":{"properties":{"name":{"type":"string","maxLength":32,"minLength":3,"title":"Name","description":"Short Name for the resource","examples":["blastdb"]},"description":{"type":"string","maxLength":264,"minLength":16,"title":"Description","description":"Short description for this resource","examples":["This is a short description for a resource"]},"source":{"type":"string","maxLength":264,"minLength":8,"title":"Source","description":"A link or similar where the resource originates from","examples":["https://example.com/db"]},"private":{"type":"boolean","title":"Private","description":"Flag if this resource should be default visible in the UI","default":true},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"maintainer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Maintainer Id","description":"ID of the maintainer","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"versions":{"items":{"$ref":"#/components/schemas/ResourceVersionOut"},"type":"array","title":"Versions","description":"Versions of the resource"}},"type":"object","required":["name","description","source","resource_id","maintainer_id","versions"],"title":"ResourceOut"},"ResourceVersionIn":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]}},"type":"object","required":["release"],"title":"ResourceVersionIn"},"ResourceVersionOut":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]},"status":{"$ref":"#/components/schemas/ResourceVersionStatus","description":"Status of the resource version"},"resource_version_id":{"type":"string","title":"Resource Version Id","description":"ID of the resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"]},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"created_at":{"type":"integer","title":"Created At","description":"Timestamp when the version was created as UNIX timestamp","examples":[1672527600]},"compressed_size":{"type":"integer","title":"Compressed Size","description":"Size of the compressed resource in bytes","examples":[42097156608]},"cluster_path":{"type":"string","title":"Cluster Path","description":"Path to the resource on the cluster if the resource is synchronized","readOnly":true,"examples":["/vol/resources/CLDB-0e240ccd/fb4cee121e9149f3905f808845c7c1f4","/vol/resources/CLDB-0e240ccd/latest"]},"s3_path":{"type":"string","title":"S3 Path","description":"Path to the resource in the S3 Bucket. Not publicly available.","readOnly":true,"examples":["s3://clowm-data/resources/CLDB-0e240ccd/fb4cee121e9149f3905f808845c7c1f4/resource.tar.gz"]}},"type":"object","required":["release","status","resource_version_id","resource_id","created_at","compressed_size","cluster_path","s3_path"],"title":"ResourceVersionOut"},"ResourceVersionStatus":{"type":"string","enum":["RESOURCE_REQUESTED","WAIT_FOR_REVIEW","DENIED","APPROVED","SYNC_REQUESTED","SYNCHRONIZING","SYNC_ERROR","SYNCHRONIZED","SETTING_LATEST","LATEST","CLUSTER_DELETING","CLUSTER_DELETE_ERROR","S3_DELETING","S3_DELETE_ERROR","S3_DELETED"],"title":"ResourceVersionStatus","description":"Enumeration for the possible status of a resource version."},"RoleEnum":{"type":"string","enum":["administrator","user","reviewer","developer","db_maintainer"],"title":"RoleEnum"},"S3Key":{"properties":{"uid":{"type":"string","title":"Uid","description":"UID of the user of that access key","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"access_key":{"type":"string","title":"Access Key","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"]},"secret_key":{"type":"string","title":"Secret Key","description":"Secret of the S3 access key","examples":["2F5uNTI1qvt4oAroXV0wWct8rWclL2QvFXKqSqjS"]}},"type":"object","required":["uid","access_key","secret_key"],"title":"S3Key","description":"Schema for a S3 key associated with a user."},"ScopeEnum":{"type":"string","enum":["read","write"],"title":"ScopeEnum"},"UserIn":{"properties":{"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","examples":[["user"]]},"email":{"type":"string","format":"email","title":"Email","description":"Email of the user","examples":["user@example.org"]}},"type":"object","required":["display_name","email"],"title":"UserIn"},"UserOut":{"properties":{"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"uid":{"type":"string","title":"Uid","description":"ID of the user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]}},"type":"object","required":["display_name","uid"],"title":"UserOut","description":"Schema for a user."},"UserOutExtended":{"properties":{"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","description":"Roles of the user","examples":[["user"]]},"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"uid":{"type":"string","title":"Uid","description":"ID of the user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"lifescience_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lifescience Id","description":"Lifesicence ID of the user","examples":["18b59678f16d2c59306c0aedb1dc7ddcfe162456'"]},"invitation_token_created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Invitation Token Created At","description":"Timestamp when the invitation token was created as UNIX timestamp"},"gravatar_url":{"type":"string","title":"Gravatar Url","description":"URL to the gravatar avatar based on the users email"}},"type":"object","required":["roles","display_name","uid","gravatar_url"],"title":"UserOutExtended"},"UserRequestAnswer":{"properties":{"deny":{"type":"boolean","title":"Deny","description":"Flag to indicate if the request was denied.","default":false},"reason":{"anyOf":[{"type":"string","maxLength":512,"minLength":16},{"type":"null"}],"title":"Reason","description":"Reason why the request was denied or approved. Required if request is denied."}},"type":"object","title":"UserRequestAnswer"},"UserRoles":{"properties":{"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","description":"Roles of the user","examples":[["user"]]}},"type":"object","required":["roles"],"title":"UserRoles"},"UserSynchronizationRequestIn":{"properties":{"reason":{"type":"string","maxLength":512,"minLength":16,"title":"Reason","description":"Reason why the request was requested.","examples":["This version is required to reproduce a execution with Workflow XY@2.0."]}},"type":"object","required":["reason"],"title":"UserSynchronizationRequestIn"},"UserSynchronizationRequestOut":{"properties":{"reason":{"type":"string","maxLength":512,"minLength":16,"title":"Reason","description":"Reason why the request was requested.","examples":["This version is required to reproduce a execution with Workflow XY@2.0."]},"resource_version_id":{"type":"string","title":"Resource Version Id","description":"ID of the resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"]},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"requester_id":{"type":"string","title":"Requester Id","description":"ID of the user that requested this resource synchronization","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]}},"type":"object","required":["reason","resource_version_id","resource_id","requester_id"],"title":"UserSynchronizationRequestOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WorkflowCredentialsIn":{"properties":{"token":{"type":"string","maxLength":128,"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]}},"type":"object","required":["token"],"title":"WorkflowCredentialsIn"},"WorkflowCredentialsOut":{"properties":{"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]}},"type":"object","title":"WorkflowCredentialsOut"},"WorkflowExecutionIn":{"properties":{"parameters":{"type":"object","title":"Parameters","description":"Parameters for this workflow"},"logs_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where to save logs and reports. If None, nothing will be uploaded.","examples":["s3://example-bucket/logs"]},"provenance_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where to save provenance information. If None, nothing will be uploaded.","examples":["s3://example-bucket/provenance"]},"debug_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where to save debug information from Nextflow. If None, nothing will be uploaded.","examples":["s3://example-bucket/debug"]},"workflow_version_id":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Workflow Version Id","description":"Workflow version git commit hash","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"notes":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Notes","description":"Optional notes for this workflow execution","examples":["Some workflow execution specific notes"]},"mode_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mode Id","description":"ID of the workflow mode this workflow execution runs in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]}},"type":"object","required":["parameters","workflow_version_id"],"title":"WorkflowExecutionIn"},"WorkflowExecutionOut":{"properties":{"workflow_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version Id","description":"Workflow version git commit hash","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"notes":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Notes","description":"Optional notes for this workflow execution","examples":["Some workflow execution specific notes"]},"mode_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode Id","description":"ID of the workflow mode this workflow execution runs in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"execution_id":{"type":"string","title":"Execution Id","description":"ID of the workflow execution","examples":["591b6a6e-a1f0-420d-8a20-a7a60704f695"]},"executor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Executor Id","description":"UID of user who started the workflow","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"start_time":{"type":"integer","title":"Start Time","description":"Start time of the workflow execution as UNIX timestamp","examples":[1672527600]},"end_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Time","description":"End time of the workflow execution as UNIX timestamp","examples":[1672527600]},"status":{"$ref":"#/components/schemas/WorkflowExecutionStatus","description":"Status of the workflow execution","examples":["RUNNING"]},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Id of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"logs_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where logs and reports are saved.","examples":["s3://example-bucket/logs/run-591b6a6ea1f0420d8a20a7a60704f695"]},"provenance_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where provenance information is saved.","examples":["s3://example-bucket/provenance/run-591b6a6ea1f0420d8a20a7a60704f695"]},"debug_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where debug information from Nextflow is saved.","examples":["s3://example-bucket/debug/run-591b6a6ea1f0420d8a20a7a60704f695"]},"cpu_time":{"type":"string","format":"duration","title":"Cpu Time","description":"The consumed cpu time in ISO 8601 format","examples":["P4DT12H30M5S"]}},"type":"object","required":["execution_id","start_time","status","cpu_time"],"title":"WorkflowExecutionOut"},"WorkflowExecutionStatus":{"type":"string","enum":["PENDING","SCHEDULED","RUNNING","CANCELED","SUCCESS","ERROR"],"title":"WorkflowExecutionStatus","description":"Enumeration for the status on a workflow execution."},"WorkflowIn":{"properties":{"name":{"type":"string","maxLength":64,"minLength":3,"title":"Name","description":"Short descriptive name of the workflow","examples":["RNA ReadMapper"]},"short_description":{"type":"string","maxLength":256,"minLength":64,"title":"Short Description","description":"Short description of the workflow","examples":["This should be a very good example of a short and descriptive description"]},"repository_url":{"type":"string","minLength":1,"format":"uri","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]+$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"initial_version":{"type":"string","maxLength":10,"minLength":5,"title":"Initial Version","description":"Initial version of the Workflow. Should follow semantic versioning","default":"v1.0.0","examples":["v1.0.0"]},"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]},"modes":{"items":{"$ref":"#/components/schemas/WorkflowModeIn"},"type":"array","maxItems":10,"title":"Modes","description":"List of modes with alternative entrypoint the new workflow has","default":[]},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow version requires"}},"type":"object","required":["name","short_description","repository_url","git_commit_hash","nextflow_version"],"title":"WorkflowIn"},"WorkflowModeIn":{"properties":{"schema_path":{"type":"string","title":"Schema Path","description":"Path to the alternative parameter schema","examples":["modes/schema1.json"]},"entrypoint":{"type":"string","title":"Entrypoint","description":"Name of the process the workflow should start with. Argument to the parameter '-entry'","examples":["example"]},"name":{"type":"string","title":"Name","description":"Name of the workflow mode","examples":["Example Name"]}},"type":"object","required":["schema_path","entrypoint","name"],"title":"WorkflowModeIn"},"WorkflowModeOut":{"properties":{"schema_path":{"type":"string","title":"Schema Path","description":"Path to the alternative parameter schema","examples":["modes/schema1.json"]},"entrypoint":{"type":"string","title":"Entrypoint","description":"Name of the process the workflow should start with. Argument to the parameter '-entry'","examples":["example"]},"name":{"type":"string","title":"Name","description":"Name of the workflow mode","examples":["Example Name"]},"mode_id":{"type":"string","title":"Mode Id","description":"ID of the workflow mode","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]}},"type":"object","required":["schema_path","entrypoint","name","mode_id"],"title":"WorkflowModeOut"},"WorkflowOut":{"properties":{"name":{"type":"string","maxLength":64,"minLength":3,"title":"Name","description":"Short descriptive name of the workflow","examples":["RNA ReadMapper"]},"short_description":{"type":"string","maxLength":256,"minLength":64,"title":"Short Description","description":"Short description of the workflow","examples":["This should be a very good example of a short and descriptive description"]},"repository_url":{"type":"string","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"versions":{"items":{"$ref":"#/components/schemas/WorkflowVersion"},"type":"array","title":"Versions","description":"Versions of the workflow"},"developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id","description":"ID of developer of the workflow","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"private":{"type":"boolean","title":"Private","description":"Flag if the workflow is hosted in a private git repository","default":false}},"type":"object","required":["name","short_description","repository_url","workflow_id","versions"],"title":"WorkflowOut"},"WorkflowStatistic":{"properties":{"day":{"type":"string","format":"date","title":"Day","description":"Day of the datapoint","examples":["2023-01-01"]},"count":{"type":"integer","title":"Count","description":"Number of started workflows on that day","examples":[1]}},"type":"object","required":["day","count"],"title":"WorkflowStatistic"},"WorkflowUpdate":{"properties":{"version":{"type":"string","maxLength":10,"minLength":5,"title":"Version","description":"Version of the Workflow. Should follow semantic versioning","examples":["v1.1.0"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"append_modes":{"items":{"$ref":"#/components/schemas/WorkflowModeIn"},"type":"array","title":"Append Modes","description":"Add modes to the new workflow version","default":[]},"delete_modes":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Delete Modes","description":"Delete modes for the new workflow version.","default":[],"examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this new workflow version requires."}},"type":"object","required":["version","git_commit_hash","nextflow_version"],"title":"WorkflowUpdate"},"WorkflowVersion":{"properties":{"status":{"$ref":"#/components/schemas/WorkflowVersionStatus","description":"Status of the workflow version","examples":["PUBLISHED"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the corresponding workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"version":{"type":"string","maxLength":10,"minLength":5,"title":"Version","description":"Version of the Workflow. Should follow semantic versioning","examples":["v1.0.0"]},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","description":"URL to the uploaded icon","examples":["https://s3-dev.nfdi.bi.denbi.de/clowm-data/icon/980a9446c7f2460c83187cbb876f8424.png"]},"workflow_version_id":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Workflow Version Id","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"created_at":{"type":"integer","title":"Created At","description":"Timestamp when the version was created as UNIX timestamp","examples":[1672527600]},"modes":{"items":{"type":"string"},"type":"array","title":"Modes","description":"Optional modes his workflow version has","default":[],"examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"parameter_extension":{"anyOf":[{"$ref":"#/components/schemas/ParameterExtension"},{"type":"null"}],"description":"Parameter extension specific for this CloWM instance"},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow version requires"}},"type":"object","required":["status","workflow_id","version","workflow_version_id","created_at","nextflow_version"],"title":"WorkflowVersion"},"WorkflowVersionStatus":{"type":"string","enum":["CREATED","DENIED","PUBLISHED","DEPRECATED"],"title":"WorkflowVersionStatus","description":"Enumeration for the possible status of a workflow version."},"WorkflowVersionStatusSchema":{"properties":{"status":{"$ref":"#/components/schemas/WorkflowVersionStatus","description":"Status of the workflow version","examples":["PUBLISHED"]}},"type":"object","required":["status"],"title":"WorkflowVersionStatusSchema"}},"securitySchemes":{"Session Token":{"type":"apiKey","description":"The JWT in this cookie is used by the website and should not be used when communicating directly with the API.","in":"cookie","name":"clowm-jwt"},"API Token":{"type":"apiKey","description":"The API token in the header is used to authenticate a user. Preferred when communication with the API directly.","in":"header","name":"X-CLOWM-TOKEN"}}}}
\ No newline at end of file
+{"openapi":"3.1.0","info":{"title":"CloWM","description":"\nThis is the API documentation of the CloWM Service.\n\nLook in the [Git repository](https://gitlab.ub.uni-bielefeld.de/cmg/clowm/clowm-backend/-/blob/main/RBAC.md)\nto see which role has which permission.\n","contact":{"name":"Daniel Goebel","url":"https://ekvv.uni-bielefeld.de/pers_publ/publ/PersonDetail.jsp?personId=223066601","smtp":"dgoebel@techfak.uni-bielefeld.de"},"license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0"},"version":"1.0.0"},"servers":[{"url":"/api"}],"paths":{"/auth/login":{"get":{"tags":["Auth"],"summary":"Kickstart the login flow","description":"Redirect route to OIDC provider to kickstart the login process.","operationId":"Auth-login","parameters":[{"name":"invitation_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":43,"maxLength":43},{"type":"null"}],"description":"Unique token to validate an invitation","title":"Invitation Token"},"description":"Unique token to validate an invitation"},{"name":"provider","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OIDCProvider","description":"The OIDC provider to use for login","default":"lifescience"},"description":"The OIDC provider to use for login"},{"name":"next","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"Will be appended to redirect response in the callback route as URL query parameter `next`","title":"Next"},"description":"Will be appended to redirect response in the callback route as URL query parameter `next`"}],"responses":{"302":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/callback/{provider}":{"get":{"tags":["Auth"],"summary":"LifeScience Login Callback","description":"Callback for the Life Science Identity Provider.\n\nVisit the route login route to start the login process.\n\nIf the user is already known to the system, then a JWT token will be created and sent via the 'set-cookie' header.\nThe key for this Cookie is 'bearer'.\n\nIf the user is new, he will be created and then a JWT token is issued.\n\nThis JWT has to be sent to all authorized endpoints via the HTTPBearer scheme.","operationId":"Auth-login_callback","parameters":[{"name":"provider","in":"path","required":true,"schema":{"$ref":"#/components/schemas/OIDCProvider"}}],"responses":{"302":{"description":"Successful Response","headers":{"Set-Cookie":{"description":"JWT for accessing the API","schema":{"type":"string","example":"bearer=fake-jwt-cookie; Domain=localhost; Max-Age=691200; Path=/; SameSite=strict; Secure"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/logout":{"get":{"tags":["Auth"],"summary":"Logout","description":"Logout the user from the system by deleting the bearer cookie.","operationId":"Auth-logout","responses":{"302":{"description":"Successful Response","headers":{"Set-Cookie":{"description":"JWT for accessing the API","schema":{"type":"string","example":"bearer=; Domain=localhost; Max-Age=0; Path=/; SameSite=strict; Secure"}}}}}}},"/tokens":{"get":{"tags":["APIToken"],"summary":"List API token","description":"List meta information about all API token.\n\nPermissions `api_token:list_all` required. See parameter `uid` for exception.","operationId":"APIToken-list_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of the user to filter for. Permission `api_token:list` required if current users is the target.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of the user to filter for. Permission `api_token:list` required if current users is the target."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiTokenOut"},"title":"Response Apitoken-List Token"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["APIToken"],"summary":"Create new API token","description":"Create a new API token for the current user.\n\nPermission `api_token:create` required.","operationId":"APIToken-create_token","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenIn","description":"Meta-data for Api token to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenPrivateOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokens/{tid}":{"get":{"tags":["APIToken"],"summary":"Get API token","description":"Get an API token by id.\n\nPermission `api_token:read` required if the current user is the owner of the API token,\notherwise `api_token:read_any` required.","operationId":"APIToken-get_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of an API token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"],"title":"Tid"},"description":"ID of an API token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["APIToken"],"summary":"Delete API token","description":"Delete an API token by id.\n\nPermission `api_token:delete` required if the current user is the owner of the API token,\notherwise `api_token:delete_any` required.","operationId":"APIToken-delete_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of an API token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"],"title":"Tid"},"description":"ID of an API token"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users":{"post":{"tags":["User"],"summary":"Create User","description":"Create a new user in the system and notify him.\n\nPermission `user:create` required.","operationId":"User-create_user","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIn","description":"Meta-data for user to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["User"],"summary":"List users and search by their name","description":"List all users in the system..\n\nPermission `user:list` required.","operationId":"User-list_users","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":3,"maxLength":30},{"type":"null"}],"description":"Filter users by a substring in their name.","examples":["Bilbo"],"title":"Name Substring"},"description":"Filter users by a substring in their name."},{"name":"filter_roles","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/RoleEnum"}},{"type":"null"}],"description":"Filter users by their role. If multiple are selected, they are concatenating by an OR Expression.","title":"Filter Roles"},"description":"Filter users by their role. If multiple are selected, they are concatenating by an OR Expression."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserOutExtended"},"title":"Response User-List Users"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/search":{"get":{"tags":["User"],"summary":"Search Users","description":"Search for users in the system by their name.\n\nPermission `user: search` required.","operationId":"User-search_users","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":30,"description":"Filter users by a substring in their name.","title":"Name Substring"},"description":"Filter users by a substring in their name."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserOut"},"title":"Response User-Search Users"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/me":{"get":{"tags":["User"],"summary":"Get the logged in user","description":"Return the user associated with the used JWT.\n\nPermission `user:read` required.","operationId":"User-get_logged_in_user","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/users/{uid}":{"get":{"tags":["User"],"summary":"Get a user by its uid","description":"Return the user with the specific uid.\n\nPermission `user:read` required.","operationId":"User-get_user","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/roles":{"put":{"tags":["User"],"summary":"Update user roles","description":"Update the roles of a user.\n\nPermission `user:update` required.","operationId":"User-update_roles","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRoles","description":"The new roles of the user"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/invitation":{"patch":{"tags":["User"],"summary":"Resend Invitation","description":"Resend the invitation link for an user that has an open invitation.\n\nPermission `user:create` required.","operationId":"User-resend_invitation","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/keys":{"get":{"tags":["S3Key"],"summary":"Get the S3 Access keys from a user","description":"Get all the S3 Access keys for a specific user.\n\nPermission `s3_key:list` required.","operationId":"S3Key-get_user_keys","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/S3Key"},"title":"Response S3Key-Get User Keys"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["S3Key"],"summary":"Create a Access key for a user","description":"Create a S3 Access key for a specific user.\n\nPermission `s3_key:create` required.","operationId":"S3Key-create_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Key"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/keys/{access_id}":{"get":{"tags":["S3Key"],"summary":"Get a specific S3 Access key from a user","description":"Get a specific S3 Access Key for a specific user.\n\nPermission `s3_key:read` required.","operationId":"S3Key-get_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"access_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"],"title":"Access Id"},"description":"ID of the S3 access key"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Key"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["S3Key"],"summary":"Delete a specific S3 Access key from a user","description":"Delete a specific S3 Access key for a specific user.\n\nPermission `s3_key:delete` required if the current user is the target, otherwise `s3_key:delete_any` required.","operationId":"S3Key-delete_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"access_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"],"title":"Access Id"},"description":"ID of the S3 access key"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets":{"get":{"tags":["Bucket"],"summary":"List buckets","description":"List all the buckets in the system or of the desired user where the user has permissions for.\n\nPermission `bucket:list_all` required. See parameter `owner_id` for exception.","operationId":"Bucket-list_buckets","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of the user for whom to fetch the buckets for. Permission `bucket:read_any` required if current user is not the target.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Owner Id"},"description":"UID of the user for whom to fetch the buckets for. Permission `bucket:read_any` required if current user is not the target."},{"name":"bucket_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/BucketType","description":"Type of the bucket to get. Ignored when `user` parameter not set","default":"ALL"},"description":"Type of the bucket to get. Ignored when `user` parameter not set"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketOut"},"title":"Response Bucket-List Buckets"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Bucket"],"summary":"Create a bucket for the current user","description":"Create a bucket for the current user.\n\nThe name of the bucket has some constraints.\nFor more information see the\n[Ceph documentation](https://docs.ceph.com/en/quincy/radosgw/s3/bucketops/#constraints)\n\nPermission `bucket:create` required.","operationId":"Bucket-create_bucket","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketIn","description":"Meta-data for bucket to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/ownership_transfer_request":{"get":{"tags":["Bucket"],"summary":"List bucket OTRs","description":"Get the ownership transfer requests for buckets.\n\nPermission `bucket:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `bucket:list_all`","operationId":"Bucket-list_bucket_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Bucket-List Bucket Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}":{"get":{"tags":["Bucket"],"summary":"Get a bucket by its name","description":"Get a bucket by its name if the current user has READ permissions for the bucket.\n\nPermission `bucket:read` required if the current user is the owner of the bucket,\notherwise `bucket:read_any` required.","operationId":"Bucket-get_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Bucket"],"summary":"Delete a bucket","description":"Delete a bucket by its name. Only the owner of the bucket can delete the bucket.\n\nPermission `bucket:delete` required if the current user is the owner of the bucket,\notherwise `bucket:delete_any` required.","operationId":"Bucket-delete_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"},{"name":"force_delete","in":"query","required":false,"schema":{"type":"boolean","description":"Delete even non-empty bucket","default":false,"title":"Force Delete"},"description":"Delete even non-empty bucket"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/ownership_transfer_request":{"get":{"tags":["Bucket"],"summary":"Get a bucket OTR","description":"Get a specific bucket ownership transfer request.\n\nPermission `bucket:read` required if the current user is the current or new owner of the bucket,\notherwise `bucket:read_any` required.","operationId":"Bucket-get_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Bucket"],"summary":"Create a bucket OTR","description":"Create a ownership transfer request for a specific bucket.\n\nPermission `bucket:update` required if the current user is the current owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-create_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn","description":"Meta-data for the bucket OTR to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Bucket"],"summary":"Accept a bucket OTR","description":"Accept an ownership transfer request for a specific workflow.\n\nPermission `bucket:update` required if the current user is the new owner of the workflow,\notherwise `bucket:update_any` required.","operationId":"Bucket-accept_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Bucket"],"summary":"Delete a bucket OTR","description":"Delete/Reject a bucket ownership transfer request.\n\nPermission `bucket:update` required if the current user is the current or new owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-delete_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/public":{"patch":{"tags":["Bucket"],"summary":"Update public status","description":"Update the buckets public state.\n\nPermission `bucket:update` required if the current user is the owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-update_bucket_public_state","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Bucket-update_bucket_public_state"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/limits":{"patch":{"tags":["Bucket"],"summary":"Update bucket limits","description":"Update the buckets size limits.\n\nPermission `bucket:update_any` required.","operationId":"Bucket-update_bucket_limits","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketSizeLimits","description":"New size limits for bucket"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions.","description":"List all the bucket permissions in the system.\n\nPermission `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"permission_scopes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["read","write"],"type":"string"}},{"type":"null"}],"description":"Scopes of Bucket Permissions to fetch","title":"Permission Scopes"},"description":"Scopes of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PermissionStatus"},{"type":"null"}],"description":"Status of Bucket Permissions to fetch","title":"Permission Status"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["BucketPermission"],"summary":"Create a permission.","description":"Create a permission for a bucket and user.\n\nPermission `bucket_permission:create` required.","operationId":"BucketPermission-create_permission","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionIn","description":"Permission to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/user/{uid}":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions for a user.","description":"List all the bucket permissions for the given user.\n\nPermission `bucket_permission:list` required if current user is the target the bucket permission,\notherwise `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions_per_user","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"},{"name":"permission_scopes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["read","write"],"type":"string"}},{"type":"null"}],"description":"Scopes of Bucket Permissions to fetch","title":"Permission Scopes"},"description":"Scopes of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PermissionStatus"},{"type":"null"}],"description":"Status of Bucket Permissions to fetch","title":"Permission Status"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions Per User"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/bucket/{bucket_name}":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions for a bucket.","description":"List all the bucket permissions for the given bucket.\n\nPermission `bucket_permission:list` required if current user is owner of the bucket,\notherwise `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions_per_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"},{"name":"permission_scopes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["read","write"],"type":"string"}},{"type":"null"}],"description":"Scopes of Bucket Permissions to fetch","title":"Permission Scopes"},"description":"Scopes of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PermissionStatus"},{"type":"null"}],"description":"Status of Bucket Permissions to fetch","title":"Permission Status"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions Per Bucket"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/bucket/{bucket_name}/user/{uid}":{"get":{"tags":["BucketPermission"],"summary":"Get permission for bucket and user combination.","description":"Get the bucket permissions for the specific combination of bucket and user.\n\nPermission `bucket_permission:read` required if current user is the target or owner of the bucket permission,\notherwise `bucket_permission:read_any` required.","operationId":"BucketPermission-get_permission_for_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["BucketPermission"],"summary":"Update a bucket permission","description":"Update a permission for a bucket and user.\n\nPermission `bucket_permission:update` required.","operationId":"BucketPermission-update_permission","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionParameters","description":"Permission to create"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["BucketPermission"],"summary":"Delete a bucket permission","description":"Delete the bucket permissions for the specific combination of bucket and user.\n\nPermission `bucket_permission:delete` required if current user is the target or owner of the bucket permission,\notherwise `bucket_permission:delete_any` required.","operationId":"BucketPermission-delete_permission","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows":{"post":{"tags":["Workflow"],"summary":"Create a new workflow","description":"Create a new workflow.\n\nFor private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.\n\nFor private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.\n\nPermission `workflow:create` required.","operationId":"Workflow-create_workflow","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowIn","description":"Meta-date for the workflow to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Workflow"],"summary":"List workflows","description":"List all workflows.\n\nPermission `workflow:list` required.","operationId":"Workflow-list_workflows","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":3,"maxLength":30},{"type":"null"}],"description":"Filter workflows by a substring in their name.","examples":["blast"],"title":"Name Substring"},"description":"Filter workflows by a substring in their name."},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"}},{"type":"null"}],"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`.","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`."},{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Developer Id"},"description":"Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowOut"},"title":"Response Workflow-List Workflows"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/ownership_transfer_request":{"get":{"tags":["Workflow"],"summary":"List workflow OTRs","description":"Get the ownership transfer requests for workflows.\n\nPermission `workflow:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `workflow:list_all`","operationId":"Workflow-list_workflow_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Workflow-List Workflow Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/developer_statistics":{"get":{"tags":["Workflow"],"summary":"Get anonymized workflow execution","description":"Get the workflow executions with meta information and anonymized user IDs.\n\nPermission `workflow:read` required if the `developer_id` is the same as the uid of the current user,\nother `workflow:read_any`.","operationId":"Workflow-get_developer_workflow_statistics","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter by the developer of the workflows","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Developer Id"},"description":"Filter by the developer of the workflows"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"description":"Filter by workflow IDs","title":"Workflow Id"},"description":"Filter by workflow IDs"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter by workflow executions after this date","title":"Start"},"description":"Filter by workflow executions after this date"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter by workflow executions before this date","title":"End"},"description":"Filter by workflow executions before this date"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AnonymizedWorkflowExecution"},"title":"Response Workflow-Get Developer Workflow Statistics"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}":{"get":{"tags":["Workflow"],"summary":"Get a workflow","description":"Get a specific workflow.\n\nPermission `workflow:read` required.","operationId":"Workflow-get_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"}},{"type":"null"}],"description":"Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow"],"summary":"Delete a workflow","description":"Delete a workflow.\n\nPermission `workflow:delete` required if the `developer_id` is the same as the uid of the current user,\nother `workflow:delete_any`.","operationId":"Workflow-delete_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/ownership_transfer_request":{"get":{"tags":["Workflow"],"summary":"Get a workflow OTR","description":"Get a specific workflow ownership transfer request.\n\nPermission `workflow:read` required if current user is the current or new owner of the workflow,\notherwise `workflow:read_any` required.","operationId":"Workflow-get_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Workflow"],"summary":"Create a workflow OTR","description":"Create a ownership transfer request for a specific workflow.\n\nPermission `workflow:update` required if the current user is the current owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-create_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn","description":"Meta-data for workflow OTR to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Workflow"],"summary":"Accept a workflow OTR","description":"Accept an ownership transfer request for a specific workflow.\n\nPermission `workflow:update` required if the current user is the new owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-accept_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow"],"summary":"Delete a workflow OTR","description":"Delete/Reject a workflow ownership transfer request.\n\nPermission `workflow:update` required if current user is the current or new owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-delete_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/statistics":{"get":{"tags":["Workflow"],"summary":"Get statistics for a workflow","description":"Get the number of started workflow per day.\n\nPermission `workflow:read` required.","operationId":"Workflow-get_workflow_statistics","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowStatistic"},"title":"Response Workflow-Get Workflow Statistics"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/update":{"post":{"tags":["Workflow"],"summary":"Update a workflow","description":"Create a new workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow-update_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowUpdate","description":"Meta-data for the workflow version to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions":{"get":{"tags":["Workflow Version"],"summary":"Get all versions of a workflow","description":"List all versions of a Workflow.\n\nPermission `workflow:list` required.","operationId":"Workflow Version-list_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"}},{"type":"null"}],"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersion"},"title":"Response Workflow Version-List Workflow Version"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}":{"get":{"tags":["Workflow Version"],"summary":"Get a workflow version","description":"Get a specific version of a workflow.\n\nPermission `workflow:read` required if the version is public or you are the developer of the workflow,\notherwise `workflow:read_any`","operationId":"Workflow Version-get_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit `git_commit_hash` of specific version or `latest`.","examples":["latest","ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit `git_commit_hash` of specific version or `latest`."},{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/status":{"patch":{"tags":["Workflow Version"],"summary":"Update status of workflow version","description":"Update the status of a workflow version.\n\nPermission `workflow:update_status`","operationId":"Workflow Version-update_workflow_version_status","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionStatusSchema","description":"New Status of the workflow version"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/deprecate":{"patch":{"tags":["Workflow Version"],"summary":"Deprecate a workflow version","description":"Deprecate a workflow version.\n\nPermission `workflow:update` required if you are the developer of the workflow,\notherwise `workflow:update_status`","operationId":"Workflow Version-deprecate_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/parameter-extension":{"patch":{"tags":["Workflow Version"],"summary":"Update parameter extension of workflow version","description":"Update the parameter extension of a workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-update_workflow_version_parameter_extension","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParameterExtension","description":"Parameter extension specific for this CloWM instance"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Version"],"summary":"Delete parameter extension of workflow version","description":"Delete the parameter extension of a workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-delete_workflow_version_parameter_extension","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/documentation":{"get":{"tags":["Workflow Version"],"summary":"Fetch documentation for a workflow version","description":"Get the documentation for a specific workflow version.\nStreams the response directly from the right git repository.\n\nPermission `workflow:read` required.","operationId":"Workflow Version-download_workflow_documentation","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."},{"name":"document","in":"query","required":false,"schema":{"$ref":"#/components/schemas/DocumentationEnum","description":"Specify which type of documentation the client wants to fetch","default":"usage.md"},"description":"Specify which type of documentation the client wants to fetch"},{"name":"mode_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Workflow Mode","examples":["8d47e878-f25f-41aa-b4a0-95d426b46f45"],"title":"Mode Id"},"description":"Workflow Mode"}],"responses":{"200":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/icon":{"post":{"tags":["Workflow Version"],"summary":"Upload icon for workflow version","description":"Upload an icon for the workflow version and returns the new icon URL.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-upload_workflow_version_icon","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Workflow_Version-upload_workflow_version_icon"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IconUpdateOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Version"],"summary":"Delete icon of workflow version","description":"Delete the icon of the workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-delete_workflow_version_icon","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions":{"post":{"tags":["Workflow Execution"],"summary":"Start a new workflow execution","description":"Start a new workflow execution. Workflow versions wit status `DEPRECATED` or `DENIED` can't be started.\n\nPermission `workflow_execution:create` required if workflow versions status is `PUBLISHED`,\notherwise `workflow_execution:create_any` required.","operationId":"Workflow Execution-start_workflow","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionIn","description":"Meta-data and parameters for the workflow to start"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Workflow Execution"],"summary":"List all workflow executions","description":"Get all workflow executions.\n\nThis endpoint enforces keyset pagination. To iterate over all workflow executions, follow the link provided in the\n`Link` header.\nA missing `Link` header indicates that you iterated over all workflow executions with the current filters.\n\nPermission `workflow_execution:list` required, if `executor_id` is the same as the current user,\notherwise `workflow_execution:list_all` required.","operationId":"Workflow Execution-list_workflow_executions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"executor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Executor Id"},"description":"Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required."},{"name":"execution_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/WorkflowExecutionStatus"}},{"type":"null"}],"description":"Filter for status of workflow execution","title":"Execution Status"},"description":"Filter for status of workflow execution"},{"name":"workflow_version_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":40,"maxLength":40,"pattern":"^[0-9a-f]+$"},{"type":"null"}],"description":"Filter for workflow version","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Workflow Version Id"},"description":"Filter for workflow version"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter for workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Workflow Id"},"description":"Filter for workflow"},{"name":"start_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4294967295,"minimum":1},{"type":"null"}],"description":"Filter for workflow executions that started after this UNIX timestamp","examples":[1640991600],"title":"Start After"},"description":"Filter for workflow executions that started after this UNIX timestamp"},{"name":"start_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4294967295,"minimum":1},{"type":"null"}],"description":"Filter for workflow executions that started before this UNIX timestamp","examples":[1640991600],"title":"Start Before"},"description":"Filter for workflow executions that started before this UNIX timestamp"},{"name":"id_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Id of the item to start the query from. DO NOT SET MANUALLY.","title":"Id After"},"description":"Id of the item to start the query from. DO NOT SET MANUALLY."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":5,"description":"Number of items to list per page","default":20,"title":"Per Page"},"description":"Number of items to list per page"},{"name":"sort","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Sort order of items with creation time","default":"desc","title":"Sort"},"description":"Sort order of items with creation time"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowExecutionOut"},"title":"Response Workflow Execution-List Workflow Executions"}}},"headers":{"link":{"description":"Link for the next pagination page if there is any","schema":{"type":"string","example":"<http://localhost:9999/api/workflow_executions?per_page=50&sort=asc&id_after=a16c50f8-c1fb-4b3c-afe3-82f1575bc2f4>; rel=\"next\""}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/arbitrary":{"post":{"tags":["Workflow Execution"],"summary":"Start a workflow execution with arbitrary git repository","description":"Start a new workflow execution from an arbitrary git repository.\n\nFor private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.\n\nFor private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.\n\nPermission `workflow:create` required.","operationId":"Workflow Execution-start_arbitrary_workflow","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevWorkflowExecutionIn","description":"Meta-data and parameters for the workflow to start"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/workflow_executions/{eid}":{"get":{"tags":["Workflow Execution"],"summary":"Get a workflow execution","description":"Get a specific workflow execution.\n\nPermission `workflow_execution:read` required if the current user started the workflow execution,\notherwise `workflow_execution:read_any` required.","operationId":"Workflow Execution-get_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Execution"],"summary":"Delete a workflow execution","description":"Delete a specific workflow execution.\n\nPermission `workflow_execution:delete` required if the current user started the workflow execution,\notherwise `workflow_execution:delete_any` required.","operationId":"Workflow Execution-delete_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/{eid}/params":{"get":{"tags":["Workflow Execution"],"summary":"Get the parameters of a workflow execution","description":"Get the parameters of a specific workflow execution.\n\nPermission `workflow_execution:read` required if the current user started the workflow execution,\notherwise `workflow_execution:read_any` required.","operationId":"Workflow Execution-get_workflow_execution_params","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Workflow Execution-Get Workflow Execution Params"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/{eid}/cancel":{"post":{"tags":["Workflow Execution"],"summary":"Cancel a workflow execution","description":"Cancel a running workflow execution.\n\nPermission `workflow_execution:cancel` required if the current user started the workflow execution,\notherwise `workflow_execution:cancel_any` required.","operationId":"Workflow Execution-cancel_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/credentials":{"get":{"tags":["Workflow Credentials"],"summary":"Get the credentials of a workflow","description":"Get the credentials for the repository of a workflow. Only the developer of a workflow can do this.\n\nPermission `workflow:update` required.","operationId":"Workflow Credentials-get_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCredentialsOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Workflow Credentials"],"summary":"Update the credentials of a workflow","description":"Update the credentials for the repository of a workflow.\n\nPermission `workflow:update` required.","operationId":"Workflow Credentials-update_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCredentialsIn","description":"Updated credentials for the workflow git repository"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Credentials"],"summary":"Delete the credentials of a workflow","description":"Delete the credentials for the repository of a workflow.\n\nPermission `workflow:delete` required if the developer of the workflow is the same as the current user,\nother `workflow:delete_any`.","operationId":"Workflow Credentials-delete_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_modes/{mode_id}":{"get":{"tags":["Workflow Mode"],"summary":"Get workflow mode","description":"Get a workflow mode\n\nPermission `workflow:read` required","operationId":"Workflow Mode-get_workflow_mode","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"mode_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow mode","examples":["8d47e878-f25f-41aa-b4a0-95d426b46f45"],"title":"Mode Id"},"description":"ID of a workflow mode"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowModeOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources":{"post":{"tags":["Resource"],"summary":"Request a new resource","description":"Request a new resources.\n\nPermission `resource:create` required.","operationId":"Resource-create_resource","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceIn","description":"Meta-data for the resource to request"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Resource"],"summary":"List resources","description":"List all resources.\n\nPermission `resource:list` required.","operationId":"Resource-list_resources","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"maintainer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Maintainer Id"},"description":"Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`."},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"}},{"type":"null"}],"description":"Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required."},{"name":"name_substring","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"description":"Filter resources by a substring in their name.","examples":["gtdb"],"title":"Name Substring"},"description":"Filter resources by a substring in their name."},{"name":"public","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter resources to by the public flag","title":"Public"},"description":"Filter resources to by the public flag"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceOut"},"title":"Response Resource-List Resources"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/sync_requests":{"get":{"tags":["Resource"],"summary":"List resource sync requests","description":"List all resource sync requests.\n\nPermission `resource:update_any` required.","operationId":"Resource-list_sync_requests","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserSynchronizationRequestOut"},"type":"array","title":"Response Resource-List Sync Requests"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/resources/ownership_transfer_request":{"get":{"tags":["Resource"],"summary":"List resource OTRs","description":"Get the ownership transfer requests for resources.\n\nPermission `resource:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `resource:list_all`","operationId":"Resource-list_resource_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Resource-List Resource Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}":{"get":{"tags":["Resource"],"summary":"Get a resource","description":"Get a specific resource.\n\nPermission `resource:read` required.","operationId":"Resource-get_resource","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"}},{"type":"null"}],"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Resource"],"summary":"Delete a resource","description":"Delete a resources.\n\nPermission `resource:delete` required.","operationId":"Resource-delete_resource","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/ownership_transfer_request":{"get":{"tags":["Resource"],"summary":"Get a resource OTR","description":"Get a specific resource ownership transfer request.\n\nPermission `resource:read` required if the current user is the current or new owner of the resource,\notherwise `resource:read_any` required.","operationId":"Resource-get_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Resource"],"summary":"Create a resource OTR","description":"Create a ownership transfer request for a specific resource.\n\nPermission `resource:update` required if the current user is the current owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-create_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn","description":"Meta-data for the resource OTR to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Resource"],"summary":"Accept a resource OTR","description":"Accept an ownership transfer request for a specific resource.\n\nPermission `resource:update` required if the current user is the new owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-accept_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Resource"],"summary":"Delete a resource OTR","description":"Delete/Reject a resource ownership transfer request.\n\nPermission `resource:update` required if the current user is the current or new owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-delete_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions":{"get":{"tags":["ResourceVersion"],"summary":"List versions of a resource","description":"List all the resource version for a specific resource.\n\nPermission 'resource:read' required.","operationId":"ResourceVersion-list_resource_versions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"}},{"type":"null"}],"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionOut"},"title":"Response Resourceversion-List Resource Versions"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["ResourceVersion"],"summary":"Request new version of a resource","description":"Request a new resource version.\n\nPermission `resource:update` required if the current user is the maintainer, `resource:update_any` otherwise.","operationId":"ResourceVersion-request_resource_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionIn","description":"Meta-data for the resource version to request"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}":{"get":{"tags":["ResourceVersion"],"summary":"Get version of a resource","description":"Get a specific resource version for a specific resource.\n\nPermission `resource:read` required. If the status of the resource version is not `LATEST` or `SYNCHRONIZED` and\nthe current user is not the maintainer, then the permission `resource:read_any` is required.","operationId":"ResourceVersion-get_resource_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/tree":{"get":{"tags":["ResourceVersion"],"summary":"Download folder structure of resource","description":"Get the folder structure of the resources. Only available if the resource was previously downloaded to the cluster.\n\nPermission `resource:read` required.","operationId":"ResourceVersion-resource_file_tree","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileTree"},"title":"Response Resourceversion-Resource File Tree"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/request_review":{"put":{"tags":["ResourceVersion"],"summary":"Request resource version review","description":"Request the review of a resource version.\n\nPermission `resource:update` required.","operationId":"ResourceVersion-request_resource_version_review","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/request_sync":{"put":{"tags":["ResourceVersion"],"summary":"Request resource version synchronization","description":"Request the synchronization of a resource version to the cluster.\n\nPermission `resource:request_sync` required.","operationId":"ResourceVersion-request_resource_version_sync","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSynchronizationRequestIn","description":"Meta-data for the synchronization request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/review":{"put":{"tags":["ResourceVersion"],"summary":"Review resource version","description":"Review answer the resource version.\n\nPermission `resource:update_status` required.","operationId":"ResourceVersion-resource_version_review","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRequestAnswer","description":"Answer for the resource version review"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/sync":{"put":{"tags":["ResourceVersion"],"summary":"Synchronize resource version with cluster","description":"Synchronize the resource version to the cluster.\n\nPermission `resource:update_any` required.","operationId":"ResourceVersion-resource_version_sync","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRequestAnswer","description":"Answer to the resource version synchronization request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/latest":{"put":{"tags":["ResourceVersion"],"summary":"Set resource version to latest","description":"Set the resource version as the latest version.\n\nPermission `resource:update_any` required.","operationId":"ResourceVersion-resource_version_latest","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/cluster":{"delete":{"tags":["ResourceVersion"],"summary":"Delete resource version on cluster","description":"Delete the resource version on the cluster.\n\nPermission `resource:delete_any` required.","operationId":"ResourceVersion-delete_resource_version_cluster","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/s3":{"delete":{"tags":["ResourceVersion"],"summary":"Delete resource version in S3","description":"Delete the resource version in the S3 bucket.\n\nPermission `resource:delete_any` required.","operationId":"ResourceVersion-delete_resource_version_s3","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news":{"post":{"tags":["News"],"summary":"Create news","description":"Create a news event.\n\nPermission `news:create` required.","operationId":"News-create_news","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsIn","description":"Meta-data for news event to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["News"],"summary":"List news","description":"List all news events with filters.\n\nThis endpoint enforces keyset pagination. To iterate over all news, follow the link provided in the `Link` header.\nA missing `Link` header indicates that you iterated over all news with the current filters.\n\nPermission `news:list` required.","operationId":"News-list_news","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4294967296,"minimum":0},{"type":"null"}],"description":"Filter for news that are created after this UNIX timestamp","title":"Created After"},"description":"Filter for news that are created after this UNIX timestamp"},{"name":"creator_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter for news created by a specific user","title":"Creator Id"},"description":"Filter for news created by a specific user"},{"name":"id_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Id of the item to start the query from. DO NOT SET MANUALLY.","title":"Id After"},"description":"Id of the item to start the query from. DO NOT SET MANUALLY."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":5,"description":"Number of items to list per page","default":20,"title":"Per Page"},"description":"Number of items to list per page"},{"name":"sort","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Sort order of items with creation time","default":"desc","title":"Sort"},"description":"Sort order of items with creation time"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NewsOut"},"title":"Response News-List News"}}},"headers":{"link":{"description":"Link for the next pagination page if there is any","schema":{"type":"string","example":"<http://localhost:9999/api/news?per_page=50&sort=asc&id_after=a16c50f8-c1fb-4b3c-afe3-82f1575bc2f4>; rel=\"next\""}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/latest":{"get":{"tags":["News"],"summary":"Get latest news","description":"List the current news events.\n\nPermission `news:list` required.","operationId":"News-list_latest_news","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/NewsOut"},"type":"array","title":"Response News-List Latest News"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/news/{nid}":{"get":{"tags":["News"],"summary":"Get a specific news","description":"Get a specified news event.\n\nPermission `news:read` required.","operationId":"News-get_news","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"nid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a news event","examples":["f3e2acf0-e942-44b2-8f85-52b7deb660ec"],"title":"Nid"},"description":"ID of a news event"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["News"],"summary":"Delete a specific news","description":"Delete a specified news event.\n\nPermission `news:delete` required.","operationId":"News-delete_news","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"nid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a news event","examples":["f3e2acf0-e942-44b2-8f85-52b7deb660ec"],"title":"Nid"},"description":"ID of a news event"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AnonymizedWorkflowExecution":{"properties":{"workflow_execution_id":{"type":"string","title":"Workflow Execution Id","description":"ID of the workflow execution","examples":["591b6a6e-a1f0-420d-8a20-a7a60704f695"]},"pseudo_uid":{"type":"string","title":"Pseudo Uid","description":"Anonymized user ID of the user who ran the workflow execution","examples":["7ed4249857b656e96f456449796e461e6001d3fb2481a44701f70ca437bd53a2"]},"workflow_mode_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Mode Id","description":"ID of the workflow mode this workflow execution ran in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"workflow_version_id":{"type":"string","title":"Workflow Version Id","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"started_at":{"type":"string","format":"date","title":"Started At","description":"Day of the workflow execution","examples":["2023-01-01"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"developer_id":{"type":"string","title":"Developer Id","description":"ID of developer of the workflow","examples":["28c5353b8bb34984a8bd4169ba94c606"]},"status":{"$ref":"#/components/schemas/WorkflowExecutionStatus","description":"End status of the workflow execution","examples":["SUCCESS"]}},"type":"object","required":["workflow_execution_id","pseudo_uid","workflow_version_id","started_at","workflow_id","developer_id","status"],"title":"AnonymizedWorkflowExecution"},"ApiTokenIn":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has"}},"type":"object","required":["name","scopes"],"title":"ApiTokenIn"},"ApiTokenOut":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has"},"token_id":{"type":"string","title":"Token Id","description":"The ID of the token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"]},"uid":{"type":"string","title":"Uid","description":"The ID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"created_at":{"type":"integer","title":"Created At","description":"The UNIX timestamp when this token was created","examples":["1717192800"]},"last_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used","description":"The UNIX timestamp when this token was used the last time","examples":["1717193800"]}},"type":"object","required":["name","scopes","token_id","uid","created_at"],"title":"ApiTokenOut"},"ApiTokenPrivateOut":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has"},"token_id":{"type":"string","title":"Token Id","description":"The ID of the token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"]},"uid":{"type":"string","title":"Uid","description":"The ID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"created_at":{"type":"integer","title":"Created At","description":"The UNIX timestamp when this token was created","examples":["1717192800"]},"last_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used","description":"The UNIX timestamp when this token was used the last time","examples":["1717193800"]},"token":{"type":"string","title":"Token","description":"The actual token used for authentication","examples":["J21NRKUYgyVUgvJ3cIdllS-MMa9ny1UDKFF18aetDvo"]}},"type":"object","required":["name","scopes","token_id","uid","created_at","token"],"title":"ApiTokenPrivateOut"},"Body_Bucket-update_bucket_public_state":{"properties":{"public":{"type":"boolean","title":"Public","description":"New public state"}},"type":"object","required":["public"],"title":"Body_Bucket-update_bucket_public_state"},"Body_Workflow_Version-upload_workflow_version_icon":{"properties":{"icon":{"type":"string","format":"binary","title":"Icon","description":"Icon for the Workflow."}},"type":"object","required":["icon"],"title":"Body_Workflow Version-upload_workflow_version_icon"},"BucketIn":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$","title":"Name","description":"Name of the bucket","examples":["test-bucket"]},"description":{"type":"string","maxLength":65536,"minLength":16,"title":"Description","description":"Description of the bucket","examples":["This is a sample description of a bucket"]}},"type":"object","required":["name","description"],"title":"BucketIn","description":"Schema for creating a new bucket."},"BucketOut":{"properties":{"size_limit":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Size Limit","description":"Size limit of the bucket in KiB","examples":[10240]},"object_limit":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Object Limit","description":"Number of objects limit of the bucket","examples":[10000]},"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$","title":"Name","description":"Name of the bucket","examples":["test-bucket"]},"description":{"type":"string","maxLength":65536,"minLength":16,"title":"Description","description":"Description of the bucket","examples":["This is a sample description of a bucket"]},"created_at":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Created At","description":"UNIX timestamp when the bucket was created","examples":[1640991600]},"owner_id":{"type":"string","title":"Owner Id","description":"UID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"public":{"type":"boolean","title":"Public","description":"Flag if the bucket is anonymously readable"}},"type":"object","required":["name","description","created_at","owner_id","public"],"title":"BucketOut","description":"Schema for answering a request with a bucket."},"BucketPermissionIn":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"Scopes of the bucket permission"},"uid":{"type":"string","format":"uuid","title":"Uid","description":"UID of the grantee","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"bucket_name":{"type":"string","maxLength":63,"minLength":3,"title":"Bucket Name","description":"Name of Bucket","examples":["test-bucket"]}},"type":"object","required":["scopes","uid","bucket_name"],"title":"BucketPermissionIn"},"BucketPermissionOut":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"Scopes of the bucket permission"},"uid":{"type":"string","title":"Uid","description":"UID of the grantee","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"bucket_name":{"type":"string","maxLength":63,"minLength":3,"title":"Bucket Name","description":"Name of Bucket","examples":["test-bucket"]}},"type":"object","required":["scopes","uid","bucket_name"],"title":"BucketPermissionOut","description":"Schema for the bucket permissions."},"BucketPermissionParameters":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"Scopes of the bucket permission"}},"type":"object","required":["scopes"],"title":"BucketPermissionParameters","description":"Schema for the parameters of a bucket permission."},"BucketSizeLimits":{"properties":{"size_limit":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Size Limit","description":"Size limit of the bucket in KiB","examples":[10240]},"object_limit":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Object Limit","description":"Number of objects limit of the bucket","examples":[10000]}},"type":"object","title":"BucketSizeLimits","description":"Schema to represent bucket limits."},"BucketType":{"type":"string","enum":["OWN","ALL","PERMISSION"],"title":"BucketType","description":"Enumeration for the type of buckets to fetch from the DB\n\nOWN: Only fetch buckets that the user owns\nPERMISSION: Only fetch foreign buckets that the user has access to\nALL: Fetch all buckets that the user has access to"},"DevWorkflowExecutionIn":{"properties":{"parameters":{"type":"object","title":"Parameters","description":"Parameters for this workflow"},"logs_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where to save logs and reports. If None, nothing will be uploaded.","examples":["s3://example-bucket/logs"]},"provenance_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where to save provenance information. If None, nothing will be uploaded.","examples":["s3://example-bucket/provenance"]},"debug_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where to save debug information from Nextflow. If None, nothing will be uploaded.","examples":["s3://example-bucket/debug"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"repository_url":{"type":"string","minLength":1,"format":"uri","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]},"mode":{"anyOf":[{"$ref":"#/components/schemas/WorkflowModeIn"},{"type":"null"}],"description":"Mode of the workflow with an alternative entrypoint"},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow execution requires"}},"type":"object","required":["parameters","git_commit_hash","repository_url","nextflow_version"],"title":"DevWorkflowExecutionIn"},"DocumentationEnum":{"type":"string","enum":["usage.md","input.md","output.md","changelog.md","parameter_schema.json","clowm_info.json"],"title":"DocumentationEnum"},"ErrorDetail":{"properties":{"detail":{"type":"string","title":"Detail","description":"Detail about the occurred error"}},"type":"object","required":["detail"],"title":"ErrorDetail","description":"Schema for a error due to a rejected request."},"FileTree":{"properties":{"type":{"type":"string","enum":["file","directory","link"],"title":"Type"},"name":{"type":"string","title":"Name"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target"},"contents":{"anyOf":[{"items":{"$ref":"#/components/schemas/FileTree"},"type":"array"},{"type":"null"}],"title":"Contents"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["type","name","size"],"title":"FileTree"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IconUpdateOut":{"properties":{"icon_url":{"type":"string","title":"Icon Url","description":"URL to the uploaded icon","examples":["https://s3-dev.clowm.de/clowm-data/icon/980a9446c7f2460c83187cbb876f8424.png"]}},"type":"object","required":["icon_url"],"title":"IconUpdateOut"},"NewsIn":{"properties":{"content":{"type":"string","maxLength":65536,"minLength":16,"title":"Content","description":"Content of the news. Can contain Markdown.","examples":["## Header\n\nSome text"]},"title":{"type":"string","maxLength":256,"minLength":3,"title":"Title","description":"Title of the news","examples":["Some title"]},"important_till":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Important Till","description":"UNIX timestamp till the news is important.","examples":[1640991600]},"category":{"type":"string","enum":["workflow","resource","system"],"title":"Category","description":"Category of the news event","default":"system"}},"type":"object","required":["content","title"],"title":"NewsIn"},"NewsOut":{"properties":{"content":{"type":"string","maxLength":65536,"minLength":16,"title":"Content","description":"Content of the news. Can contain Markdown.","examples":["## Header\n\nSome text"]},"title":{"type":"string","maxLength":256,"minLength":3,"title":"Title","description":"Title of the news","examples":["Some title"]},"important_till":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Important Till","description":"UNIX timestamp till the news is important.","examples":[1640991600]},"category":{"type":"string","enum":["workflow","resource","system"],"title":"Category","description":"Category of the news event"},"news_id":{"type":"string","title":"News Id","description":"ID of the news event","examples":["f3e2acf0-e942-44b2-8f85-52b7deb660ec"]},"creator_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creator Id","description":"ID of the creator","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"created_at":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Created At","description":"UNIX timestamp when the bucket was created","examples":[1640991600]}},"type":"object","required":["content","title","category","news_id","created_at"],"title":"NewsOut"},"NextflowVersion":{"type":"string","enum":["22.10.0","22.10.1","22.10.2","22.10.3","22.10.4","22.10.5","22.10.6","22.10.7","22.10.8","23.04.0","23.04.1","23.04.2","23.04.3","23.04.4","23.04.5","23.10.0","23.10.1","23.10.2","23.10.3","23.10.4","24.04.1","24.04.2","24.04.3","24.04.4"],"title":"NextflowVersion"},"OIDCProvider":{"type":"string","enum":["lifescience"],"const":"lifescience","title":"OIDCProvider"},"OwnershipTransferRequestIn":{"properties":{"new_owner_uid":{"type":"string","format":"uuid","title":"New Owner Uid","description":"The new owner that get the request","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"comment":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Comment","description":"An optional comment for the transfer request","examples":["This is an example comment"]}},"type":"object","required":["new_owner_uid"],"title":"OwnershipTransferRequestIn"},"OwnershipTransferRequestOut":{"properties":{"new_owner_uid":{"type":"string","title":"New Owner Uid","description":"The new owner that get the request","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"comment":{"type":"string","title":"Comment","description":"An optional comment for the transfer request","default":"","examples":["This is an example comment"]},"created_at":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Created At","description":"Time when the ownership transfer was requested as UNIX timestamp","examples":[1640991600]},"current_owner_uid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Owner Uid","description":"The current uid of the current owner if he exists","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"target_id":{"type":"string","title":"Target Id","description":"Id of the target that gets its ownership transferred"},"target_name":{"type":"string","title":"Target Name","description":"Name of the target","examples":["example-bucket","Example Workflow","Example Resource"]},"target_description":{"type":"string","title":"Target Description","description":"Description of then target","examples":["Some long description of a target"]},"target_type":{"$ref":"#/components/schemas/OwnershipTypeEnum","description":"Target type of the ownership transfer","examples":["bucket"]}},"type":"object","required":["new_owner_uid","created_at","target_id","target_name","target_description","target_type"],"title":"OwnershipTransferRequestOut"},"OwnershipTypeEnum":{"type":"string","enum":["bucket","workflow","resource"],"title":"OwnershipTypeEnum"},"ParameterExtension":{"properties":{"mapping":{"additionalProperties":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"}]},"type":"object"},"type":"object","title":"Mapping","description":"The inner dictionary contains the display name as key and the parameter value as value. The outer dictionary has the parameter name as key.","examples":[{"some-complex-parameter":{"Option 1":"/some/path","Option 2":"/some/other/path"}}]},"defaults":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}]},"type":"object","title":"Defaults","description":"Dictionary with parameter name as key and default value as value","examples":[{"parameter1":"somevalue","parameter2":12}]}},"type":"object","title":"ParameterExtension"},"PermissionStatus":{"type":"string","enum":["ACTIVE","INACTIVE"],"title":"PermissionStatus","description":"Status of a bucket permission. Can be either `ACTIVE` or `INACTIVE`. A permission can only get `INACTIVE` if the\npermission itself has a time limit and the current time is not in the timespan."},"ResourceIn":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]},"name":{"type":"string","maxLength":32,"minLength":3,"title":"Name","description":"Short Name for the resource","examples":["blast-db"]},"description":{"type":"string","maxLength":264,"minLength":16,"title":"Description","description":"Short description for this resource","examples":["This is a short description for a resource"]},"source":{"type":"string","maxLength":264,"minLength":8,"title":"Source","description":"A link or similar where the resource originates from","examples":["https://example.com/db"]},"private":{"type":"boolean","title":"Private","description":"Flag if this resource should be default visible in the UI","default":true}},"type":"object","required":["release","name","description","source"],"title":"ResourceIn"},"ResourceOut":{"properties":{"name":{"type":"string","maxLength":32,"minLength":3,"title":"Name","description":"Short Name for the resource","examples":["blast-db"]},"description":{"type":"string","maxLength":264,"minLength":16,"title":"Description","description":"Short description for this resource","examples":["This is a short description for a resource"]},"source":{"type":"string","maxLength":264,"minLength":8,"title":"Source","description":"A link or similar where the resource originates from","examples":["https://example.com/db"]},"private":{"type":"boolean","title":"Private","description":"Flag if this resource should be default visible in the UI","default":true},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"maintainer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Maintainer Id","description":"ID of the maintainer","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"versions":{"items":{"$ref":"#/components/schemas/ResourceVersionOut"},"type":"array","title":"Versions","description":"Versions of the resource"}},"type":"object","required":["name","description","source","resource_id","maintainer_id","versions"],"title":"ResourceOut"},"ResourceVersionIn":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]}},"type":"object","required":["release"],"title":"ResourceVersionIn"},"ResourceVersionOut":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]},"status":{"$ref":"#/components/schemas/ResourceVersionStatus","description":"Status of the resource version"},"resource_version_id":{"type":"string","title":"Resource Version Id","description":"ID of the resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"]},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"created_at":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Created At","description":"Timestamp when the version was created as UNIX timestamp","examples":[1672527600]},"compressed_size":{"type":"integer","maximum":1.8446744073709552e+19,"minimum":0.0,"title":"Compressed Size","description":"Size of the compressed resource in bytes","examples":[42097156608]},"cluster_path":{"type":"string","title":"Cluster Path","description":"Path to the resource on the cluster if the resource is synchronized","readOnly":true,"examples":["/vol/resources/CLDB-0e240ccd/fb4cee121e9149f3905f808845c7c1f4","/vol/resources/CLDB-0e240ccd/latest"]},"s3_path":{"type":"string","title":"S3 Path","description":"Path to the resource in the S3 Bucket. Not publicly available.","readOnly":true,"examples":["s3://clowm-data/resources/CLDB-0e240ccd/fb4cee121e9149f3905f808845c7c1f4/resource.tar.gz"]}},"type":"object","required":["release","status","resource_version_id","resource_id","created_at","compressed_size","cluster_path","s3_path"],"title":"ResourceVersionOut"},"ResourceVersionStatus":{"type":"string","enum":["RESOURCE_REQUESTED","WAIT_FOR_REVIEW","DENIED","APPROVED","SYNC_REQUESTED","SYNCHRONIZING","SYNC_ERROR","SYNCHRONIZED","SETTING_LATEST","LATEST","CLUSTER_DELETING","CLUSTER_DELETE_ERROR","S3_DELETING","S3_DELETE_ERROR","S3_DELETED"],"title":"ResourceVersionStatus","description":"Enumeration for the possible status of a resource version."},"RoleEnum":{"type":"string","enum":["administrator","user","reviewer","developer","db_maintainer"],"title":"RoleEnum"},"S3Key":{"properties":{"uid":{"type":"string","title":"Uid","description":"UID of the user of that access key","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"access_key":{"type":"string","title":"Access Key","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"]},"secret_key":{"type":"string","title":"Secret Key","description":"Secret of the S3 access key","examples":["2F5uNTI1qvt4oAroXV0wWct8rWclL2QvFXKqSqjS"]}},"type":"object","required":["uid","access_key","secret_key"],"title":"S3Key","description":"Schema for a S3 key associated with a user."},"UserIn":{"properties":{"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","examples":[["user"]]},"email":{"type":"string","format":"email","title":"Email","description":"Email of the user","examples":["user@example.org"]}},"type":"object","required":["display_name","email"],"title":"UserIn"},"UserOut":{"properties":{"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"uid":{"type":"string","title":"Uid","description":"ID of the user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]}},"type":"object","required":["display_name","uid"],"title":"UserOut","description":"Schema for a user."},"UserOutExtended":{"properties":{"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","description":"Roles of the user","examples":[["user"]]},"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"uid":{"type":"string","title":"Uid","description":"ID of the user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"lifescience_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lifescience Id","description":"Lifesicence ID of the user","examples":["18b59678f16d2c59306c0aedb1dc7ddcfe162456'"]},"invitation_token_created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Invitation Token Created At","description":"Timestamp when the invitation token was created as UNIX timestamp"},"gravatar_url":{"type":"string","title":"Gravatar Url","description":"URL to the gravatar avatar based on the users email"}},"type":"object","required":["roles","display_name","uid","gravatar_url"],"title":"UserOutExtended"},"UserRequestAnswer":{"properties":{"deny":{"type":"boolean","title":"Deny","description":"Flag to indicate if the request was denied.","default":false},"reason":{"anyOf":[{"type":"string","maxLength":512,"minLength":16},{"type":"null"}],"title":"Reason","description":"Reason why the request was denied or approved. Required if request is denied."}},"type":"object","title":"UserRequestAnswer"},"UserRoles":{"properties":{"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","description":"Roles of the user","examples":[["user"]]}},"type":"object","required":["roles"],"title":"UserRoles"},"UserSynchronizationRequestIn":{"properties":{"reason":{"type":"string","maxLength":512,"minLength":16,"title":"Reason","description":"Reason why the request was requested.","examples":["This version is required to reproduce a execution with Workflow XY@2.0."]}},"type":"object","required":["reason"],"title":"UserSynchronizationRequestIn"},"UserSynchronizationRequestOut":{"properties":{"reason":{"type":"string","maxLength":512,"minLength":16,"title":"Reason","description":"Reason why the request was requested.","examples":["This version is required to reproduce a execution with Workflow XY@2.0."]},"resource_version_id":{"type":"string","title":"Resource Version Id","description":"ID of the resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"]},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"requester_id":{"type":"string","title":"Requester Id","description":"ID of the user that requested this resource synchronization","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]}},"type":"object","required":["reason","resource_version_id","resource_id","requester_id"],"title":"UserSynchronizationRequestOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WorkflowCredentialsIn":{"properties":{"token":{"type":"string","maxLength":128,"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]}},"type":"object","required":["token"],"title":"WorkflowCredentialsIn"},"WorkflowCredentialsOut":{"properties":{"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]}},"type":"object","title":"WorkflowCredentialsOut"},"WorkflowExecutionIn":{"properties":{"parameters":{"type":"object","title":"Parameters","description":"Parameters for this workflow"},"logs_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where to save logs and reports. If None, nothing will be uploaded.","examples":["s3://example-bucket/logs"]},"provenance_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where to save provenance information. If None, nothing will be uploaded.","examples":["s3://example-bucket/provenance"]},"debug_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where to save debug information from Nextflow. If None, nothing will be uploaded.","examples":["s3://example-bucket/debug"]},"workflow_version_id":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Workflow Version Id","description":"Workflow version git commit hash","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"notes":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Notes","description":"Optional notes for this workflow execution","examples":["Some workflow execution specific notes"]},"mode_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mode Id","description":"ID of the workflow mode this workflow execution runs in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]}},"type":"object","required":["parameters","workflow_version_id"],"title":"WorkflowExecutionIn"},"WorkflowExecutionOut":{"properties":{"workflow_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version Id","description":"Workflow version git commit hash","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"notes":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Notes","description":"Optional notes for this workflow execution","examples":["Some workflow execution specific notes"]},"mode_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode Id","description":"ID of the workflow mode this workflow execution runs in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"execution_id":{"type":"string","title":"Execution Id","description":"ID of the workflow execution","examples":["591b6a6e-a1f0-420d-8a20-a7a60704f695"]},"executor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Executor Id","description":"UID of user who started the workflow","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"start_time":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Start Time","description":"Start time of the workflow execution as UNIX timestamp","examples":[1640991600]},"end_time":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"End Time","description":"End time of the workflow execution as UNIX timestamp","examples":[1640991600]},"status":{"$ref":"#/components/schemas/WorkflowExecutionStatus","description":"Status of the workflow execution","examples":["RUNNING"]},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Id of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"logs_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where logs and reports are saved.","examples":["s3://example-bucket/logs/run-591b6a6ea1f0420d8a20a7a60704f695"]},"provenance_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where provenance information is saved.","examples":["s3://example-bucket/provenance/run-591b6a6ea1f0420d8a20a7a60704f695"]},"debug_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where debug information from Nextflow is saved.","examples":["s3://example-bucket/debug/run-591b6a6ea1f0420d8a20a7a60704f695"]},"cpu_time":{"type":"string","format":"duration","title":"Cpu Time","description":"The consumed cpu time in ISO 8601 format","examples":["P4DT12H30M5S"]}},"type":"object","required":["execution_id","start_time","status","cpu_time"],"title":"WorkflowExecutionOut"},"WorkflowExecutionStatus":{"type":"string","enum":["PENDING","SCHEDULED","RUNNING","CANCELED","SUCCESS","ERROR"],"title":"WorkflowExecutionStatus","description":"Enumeration for the status on a workflow execution."},"WorkflowIn":{"properties":{"name":{"type":"string","maxLength":64,"minLength":3,"title":"Name","description":"Short descriptive name of the workflow","examples":["RNA ReadMapper"]},"short_description":{"type":"string","maxLength":256,"minLength":64,"title":"Short Description","description":"Short description of the workflow","examples":["This should be a very good example of a short and descriptive description"]},"repository_url":{"type":"string","minLength":1,"format":"uri","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]+$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"initial_version":{"type":"string","maxLength":10,"minLength":5,"title":"Initial Version","description":"Initial version of the Workflow. Should follow semantic versioning","default":"v1.0.0","examples":["v1.0.0"]},"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]},"modes":{"items":{"$ref":"#/components/schemas/WorkflowModeIn"},"type":"array","maxItems":10,"title":"Modes","description":"List of modes with alternative entrypoint the new workflow has","default":[]},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow version requires"}},"type":"object","required":["name","short_description","repository_url","git_commit_hash","nextflow_version"],"title":"WorkflowIn"},"WorkflowModeIn":{"properties":{"schema_path":{"type":"string","maxLength":256,"title":"Schema Path","description":"Path to the alternative parameter schema","examples":["modes/schema1.json"]},"entrypoint":{"type":"string","maxLength":256,"title":"Entrypoint","description":"Name of the process the workflow should start with. Argument to the parameter '-entry'","examples":["example"]},"name":{"type":"string","maxLength":128,"title":"Name","description":"Name of the workflow mode","examples":["Example Name"]}},"type":"object","required":["schema_path","entrypoint","name"],"title":"WorkflowModeIn"},"WorkflowModeOut":{"properties":{"schema_path":{"type":"string","maxLength":256,"title":"Schema Path","description":"Path to the alternative parameter schema","examples":["modes/schema1.json"]},"entrypoint":{"type":"string","maxLength":256,"title":"Entrypoint","description":"Name of the process the workflow should start with. Argument to the parameter '-entry'","examples":["example"]},"name":{"type":"string","maxLength":128,"title":"Name","description":"Name of the workflow mode","examples":["Example Name"]},"mode_id":{"type":"string","title":"Mode Id","description":"ID of the workflow mode","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]}},"type":"object","required":["schema_path","entrypoint","name","mode_id"],"title":"WorkflowModeOut"},"WorkflowOut":{"properties":{"name":{"type":"string","maxLength":64,"minLength":3,"title":"Name","description":"Short descriptive name of the workflow","examples":["RNA ReadMapper"]},"short_description":{"type":"string","maxLength":256,"minLength":64,"title":"Short Description","description":"Short description of the workflow","examples":["This should be a very good example of a short and descriptive description"]},"repository_url":{"type":"string","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"versions":{"items":{"$ref":"#/components/schemas/WorkflowVersion"},"type":"array","title":"Versions","description":"Versions of the workflow"},"developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id","description":"ID of developer of the workflow","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"private":{"type":"boolean","title":"Private","description":"Flag if the workflow is hosted in a private git repository","default":false}},"type":"object","required":["name","short_description","repository_url","workflow_id","versions"],"title":"WorkflowOut"},"WorkflowStatistic":{"properties":{"day":{"type":"string","format":"date","title":"Day","description":"Day of the datapoint","examples":["2023-01-01"]},"count":{"type":"integer","title":"Count","description":"Number of started workflows on that day","examples":[1]}},"type":"object","required":["day","count"],"title":"WorkflowStatistic"},"WorkflowUpdate":{"properties":{"version":{"type":"string","maxLength":10,"minLength":5,"title":"Version","description":"Version of the Workflow. Should follow semantic versioning","examples":["v1.1.0"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"append_modes":{"items":{"$ref":"#/components/schemas/WorkflowModeIn"},"type":"array","title":"Append Modes","description":"Add modes to the new workflow version","default":[]},"delete_modes":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Delete Modes","description":"Delete modes for the new workflow version.","default":[],"examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this new workflow version requires."}},"type":"object","required":["version","git_commit_hash","nextflow_version"],"title":"WorkflowUpdate"},"WorkflowVersion":{"properties":{"status":{"$ref":"#/components/schemas/WorkflowVersionStatus","description":"Status of the workflow version","examples":["PUBLISHED"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the corresponding workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"version":{"type":"string","maxLength":10,"minLength":5,"title":"Version","description":"Version of the Workflow. Should follow semantic versioning","examples":["v1.0.0"]},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","description":"URL to the uploaded icon","examples":["https://s3-dev.clowm.de/clowm-data/icon/980a9446c7f2460c83187cbb876f8424.png"]},"workflow_version_id":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Workflow Version Id","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"created_at":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Created At","description":"Timestamp when the version was created as UNIX timestamp","examples":[1640991600]},"modes":{"items":{"type":"string"},"type":"array","title":"Modes","description":"Optional modes his workflow version has","default":[],"examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"parameter_extension":{"anyOf":[{"$ref":"#/components/schemas/ParameterExtension"},{"type":"null"}],"description":"Parameter extension specific for this CloWM instance"},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow version requires"}},"type":"object","required":["status","workflow_id","version","workflow_version_id","created_at","nextflow_version"],"title":"WorkflowVersion"},"WorkflowVersionStatus":{"type":"string","enum":["CREATED","DENIED","PUBLISHED","DEPRECATED"],"title":"WorkflowVersionStatus","description":"Enumeration for the possible status of a workflow version."},"WorkflowVersionStatusSchema":{"properties":{"status":{"$ref":"#/components/schemas/WorkflowVersionStatus","description":"Status of the workflow version","examples":["PUBLISHED"]}},"type":"object","required":["status"],"title":"WorkflowVersionStatusSchema"}},"securitySchemes":{"Session Token":{"type":"apiKey","description":"The JWT in this cookie is used by the website and should not be used when communicating directly with the API.","in":"cookie","name":"clowm-jwt"},"API Token":{"type":"apiKey","description":"The API token in the header is used to authenticate a user. Preferred when communication with the API directly.","in":"header","name":"X-CLOWM-TOKEN"}}}}
\ No newline at end of file
diff --git a/openapi-ts.config.ts b/openapi-ts.config.ts
index 2773778da2e89430fb0d11191602e114b1ba7584..ed984b3f46b8c7042ed5bc652c5a2936ee49cf3a 100644
--- a/openapi-ts.config.ts
+++ b/openapi-ts.config.ts
@@ -8,11 +8,8 @@ export default defineConfig({
     format: "prettier",
     path: "src/client",
   },
-  services: {
-    asClass: true,
-  },
-  schemas: false,
-  types: {
-    enums: "typescript",
-  },
+  plugins: [
+    { enums: "typescript", name: "@hey-api/types" },
+    { asClass: true, name: "@hey-api/services" },
+  ],
 });
diff --git a/package-lock.json b/package-lock.json
index 751da57fae74e0a71ba2af6e4da1993d067d7152..45f04dd480706af1c62478efe89c356e60fa2c1a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -35,7 +35,7 @@
       },
       "devDependencies": {
         "@eslint/compat": "^1.2.0",
-        "@hey-api/openapi-ts": "^0.53.9",
+        "@hey-api/openapi-ts": "^0.54.0",
         "@rushstack/eslint-patch": "~1.10.0",
         "@tsconfig/node20": "^20.1.2",
         "@types/bootstrap": "~5.2.0",
@@ -46,11 +46,11 @@
         "@types/showdown": "~2.0.1",
         "@types/sortablejs": "^1.15.7",
         "@vitejs/plugin-vue": "~5.1.0",
-        "@vue/eslint-config-prettier": "~10.0.0",
-        "@vue/eslint-config-typescript": "~14.0.0",
+        "@vue/eslint-config-prettier": "~10.1.0",
+        "@vue/eslint-config-typescript": "~14.1.0",
         "@vue/tsconfig": "~0.5.0",
         "eslint": "~9.12.0",
-        "eslint-plugin-vue": "~9.29.0",
+        "eslint-plugin-vue": "~9.30.0",
         "highlight.js": "^11.9.0",
         "npm-run-all": "~4.1.5",
         "prettier": "~3.3.0",
@@ -62,9 +62,9 @@
       }
     },
     "node_modules/@apidevtools/json-schema-ref-parser": {
-      "version": "11.7.0",
-      "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.0.tgz",
-      "integrity": "sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==",
+      "version": "11.7.2",
+      "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz",
+      "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -282,35 +282,35 @@
       }
     },
     "node_modules/@aws-sdk/client-s3": {
-      "version": "3.670.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.670.0.tgz",
-      "integrity": "sha512-8Pwu1K+PgbYpXDaGKNy5hEbRH5FXHlfXJOhtV4oEDroL7ngix3ZUVWN9oIVVSDK02y1oQS1jCSEGUiUiauzb0g==",
+      "version": "3.685.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.685.0.tgz",
+      "integrity": "sha512-ClvMeQHbLhWkpxnVymo4qWS5/yZcPXjorDbSday3joCWYWCSHTO409nWd+jx6eA4MKT/EY/uJ6ZBJRFfByKLuA==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha1-browser": "5.2.0",
         "@aws-crypto/sha256-browser": "5.2.0",
         "@aws-crypto/sha256-js": "5.2.0",
-        "@aws-sdk/client-sso-oidc": "3.670.0",
-        "@aws-sdk/client-sts": "3.670.0",
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/credential-provider-node": "3.670.0",
-        "@aws-sdk/middleware-bucket-endpoint": "3.667.0",
-        "@aws-sdk/middleware-expect-continue": "3.667.0",
-        "@aws-sdk/middleware-flexible-checksums": "3.669.0",
-        "@aws-sdk/middleware-host-header": "3.667.0",
-        "@aws-sdk/middleware-location-constraint": "3.667.0",
-        "@aws-sdk/middleware-logger": "3.667.0",
-        "@aws-sdk/middleware-recursion-detection": "3.667.0",
-        "@aws-sdk/middleware-sdk-s3": "3.669.0",
-        "@aws-sdk/middleware-ssec": "3.667.0",
-        "@aws-sdk/middleware-user-agent": "3.669.0",
-        "@aws-sdk/region-config-resolver": "3.667.0",
-        "@aws-sdk/signature-v4-multi-region": "3.669.0",
-        "@aws-sdk/types": "3.667.0",
-        "@aws-sdk/util-endpoints": "3.667.0",
-        "@aws-sdk/util-user-agent-browser": "3.670.0",
-        "@aws-sdk/util-user-agent-node": "3.669.0",
-        "@aws-sdk/xml-builder": "3.662.0",
+        "@aws-sdk/client-sso-oidc": "3.682.0",
+        "@aws-sdk/client-sts": "3.682.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/credential-provider-node": "3.682.0",
+        "@aws-sdk/middleware-bucket-endpoint": "3.679.0",
+        "@aws-sdk/middleware-expect-continue": "3.679.0",
+        "@aws-sdk/middleware-flexible-checksums": "3.682.0",
+        "@aws-sdk/middleware-host-header": "3.679.0",
+        "@aws-sdk/middleware-location-constraint": "3.679.0",
+        "@aws-sdk/middleware-logger": "3.679.0",
+        "@aws-sdk/middleware-recursion-detection": "3.679.0",
+        "@aws-sdk/middleware-sdk-s3": "3.685.0",
+        "@aws-sdk/middleware-ssec": "3.679.0",
+        "@aws-sdk/middleware-user-agent": "3.682.0",
+        "@aws-sdk/region-config-resolver": "3.679.0",
+        "@aws-sdk/signature-v4-multi-region": "3.685.0",
+        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/util-endpoints": "3.679.0",
+        "@aws-sdk/util-user-agent-browser": "3.679.0",
+        "@aws-sdk/util-user-agent-node": "3.682.0",
+        "@aws-sdk/xml-builder": "3.679.0",
         "@smithy/config-resolver": "^3.0.9",
         "@smithy/core": "^2.4.8",
         "@smithy/eventstream-serde-browser": "^3.0.10",
@@ -351,23 +351,23 @@
       }
     },
     "node_modules/@aws-sdk/client-sso": {
-      "version": "3.670.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.670.0.tgz",
-      "integrity": "sha512-J+oz6uSsDvk4pimMDnKJb1wsV216zTrejvMTIL4RhUD1QPIVVOpteTdUShcjZUIZnkcJZGI+cym/SFK0kuzTpg==",
+      "version": "3.682.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.682.0.tgz",
+      "integrity": "sha512-PYH9RFUMYLFl66HSBq4tIx6fHViMLkhJHTYJoJONpBs+Td+NwVJ895AdLtDsBIhMS0YseCbPpuyjUCJgsUrwUw==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha256-browser": "5.2.0",
         "@aws-crypto/sha256-js": "5.2.0",
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/middleware-host-header": "3.667.0",
-        "@aws-sdk/middleware-logger": "3.667.0",
-        "@aws-sdk/middleware-recursion-detection": "3.667.0",
-        "@aws-sdk/middleware-user-agent": "3.669.0",
-        "@aws-sdk/region-config-resolver": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
-        "@aws-sdk/util-endpoints": "3.667.0",
-        "@aws-sdk/util-user-agent-browser": "3.670.0",
-        "@aws-sdk/util-user-agent-node": "3.669.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/middleware-host-header": "3.679.0",
+        "@aws-sdk/middleware-logger": "3.679.0",
+        "@aws-sdk/middleware-recursion-detection": "3.679.0",
+        "@aws-sdk/middleware-user-agent": "3.682.0",
+        "@aws-sdk/region-config-resolver": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/util-endpoints": "3.679.0",
+        "@aws-sdk/util-user-agent-browser": "3.679.0",
+        "@aws-sdk/util-user-agent-node": "3.682.0",
         "@smithy/config-resolver": "^3.0.9",
         "@smithy/core": "^2.4.8",
         "@smithy/fetch-http-handler": "^3.2.9",
@@ -400,24 +400,24 @@
       }
     },
     "node_modules/@aws-sdk/client-sso-oidc": {
-      "version": "3.670.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.670.0.tgz",
-      "integrity": "sha512-4qDK2L36Q4J1lfemaHHd9ZxqKRaos3STp44qPAHf/8QyX6Uk5sXgZNVO2yWM7SIEtVKwwBh/fZAsdBkGPBfZcw==",
+      "version": "3.682.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.682.0.tgz",
+      "integrity": "sha512-ZPZ7Y/r/w3nx/xpPzGSqSQsB090Xk5aZZOH+WBhTDn/pBEuim09BYXCLzvvxb7R7NnuoQdrTJiwimdJAhHl7ZQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha256-browser": "5.2.0",
         "@aws-crypto/sha256-js": "5.2.0",
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/credential-provider-node": "3.670.0",
-        "@aws-sdk/middleware-host-header": "3.667.0",
-        "@aws-sdk/middleware-logger": "3.667.0",
-        "@aws-sdk/middleware-recursion-detection": "3.667.0",
-        "@aws-sdk/middleware-user-agent": "3.669.0",
-        "@aws-sdk/region-config-resolver": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
-        "@aws-sdk/util-endpoints": "3.667.0",
-        "@aws-sdk/util-user-agent-browser": "3.670.0",
-        "@aws-sdk/util-user-agent-node": "3.669.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/credential-provider-node": "3.682.0",
+        "@aws-sdk/middleware-host-header": "3.679.0",
+        "@aws-sdk/middleware-logger": "3.679.0",
+        "@aws-sdk/middleware-recursion-detection": "3.679.0",
+        "@aws-sdk/middleware-user-agent": "3.682.0",
+        "@aws-sdk/region-config-resolver": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/util-endpoints": "3.679.0",
+        "@aws-sdk/util-user-agent-browser": "3.679.0",
+        "@aws-sdk/util-user-agent-node": "3.682.0",
         "@smithy/config-resolver": "^3.0.9",
         "@smithy/core": "^2.4.8",
         "@smithy/fetch-http-handler": "^3.2.9",
@@ -449,29 +449,29 @@
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sts": "^3.670.0"
+        "@aws-sdk/client-sts": "^3.682.0"
       }
     },
     "node_modules/@aws-sdk/client-sts": {
-      "version": "3.670.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.670.0.tgz",
-      "integrity": "sha512-bExrNo8ZVWorS3cjMZKQnA2HWqDmAzcZoSN/cPVoPFNkHwdl1lzPxvcLzmhpIr48JHgKfybBjrbluDZfIYeEog==",
+      "version": "3.682.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.682.0.tgz",
+      "integrity": "sha512-xKuo4HksZ+F8m9DOfx/ZuWNhaPuqZFPwwy0xqcBT6sWH7OAuBjv/fnpOTzyQhpVTWddlf+ECtMAMrxjxuOExGQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha256-browser": "5.2.0",
         "@aws-crypto/sha256-js": "5.2.0",
-        "@aws-sdk/client-sso-oidc": "3.670.0",
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/credential-provider-node": "3.670.0",
-        "@aws-sdk/middleware-host-header": "3.667.0",
-        "@aws-sdk/middleware-logger": "3.667.0",
-        "@aws-sdk/middleware-recursion-detection": "3.667.0",
-        "@aws-sdk/middleware-user-agent": "3.669.0",
-        "@aws-sdk/region-config-resolver": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
-        "@aws-sdk/util-endpoints": "3.667.0",
-        "@aws-sdk/util-user-agent-browser": "3.670.0",
-        "@aws-sdk/util-user-agent-node": "3.669.0",
+        "@aws-sdk/client-sso-oidc": "3.682.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/credential-provider-node": "3.682.0",
+        "@aws-sdk/middleware-host-header": "3.679.0",
+        "@aws-sdk/middleware-logger": "3.679.0",
+        "@aws-sdk/middleware-recursion-detection": "3.679.0",
+        "@aws-sdk/middleware-user-agent": "3.682.0",
+        "@aws-sdk/region-config-resolver": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/util-endpoints": "3.679.0",
+        "@aws-sdk/util-user-agent-browser": "3.679.0",
+        "@aws-sdk/util-user-agent-node": "3.682.0",
         "@smithy/config-resolver": "^3.0.9",
         "@smithy/core": "^2.4.8",
         "@smithy/fetch-http-handler": "^3.2.9",
@@ -504,12 +504,12 @@
       }
     },
     "node_modules/@aws-sdk/core": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.667.0.tgz",
-      "integrity": "sha512-pMcDVI7Tmdsc8R3sDv0Omj/4iRParGY+uJtAfF669WnZfDfaBQaix2Mq7+Mu08vdjqO9K3gicFvjk9S1VLmOKA==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.679.0.tgz",
+      "integrity": "sha512-CS6PWGX8l4v/xyvX8RtXnBisdCa5+URzKd0L6GvHChype9qKUVxO/Gg6N/y43Hvg7MNWJt9FBPNWIxUB+byJwg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/core": "^2.4.8",
         "@smithy/node-config-provider": "^3.1.8",
         "@smithy/property-provider": "^3.1.7",
@@ -526,13 +526,13 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-env": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.667.0.tgz",
-      "integrity": "sha512-zZbrkkaPc54WXm+QAnpuv0LPNfsts0HPPd+oCECGs7IQRaFsGj187cwvPg9RMWDFZqpm64MdBDoA8OQHsqzYCw==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.679.0.tgz",
+      "integrity": "sha512-EdlTYbzMm3G7VUNAMxr9S1nC1qUNqhKlAxFU8E7cKsAe8Bp29CD5HAs3POc56AVo9GC4yRIS+/mtlZSmrckzUA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/types": "^3.5.0",
         "tslib": "^2.6.2"
@@ -542,13 +542,13 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-http": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.667.0.tgz",
-      "integrity": "sha512-sjtybFfERZWiqTY7fswBxKQLvUkiCucOWyqh3IaPo/4nE1PXRnaZCVG0+kRBPrYIxWqiVwytvZzMJy8sVZcG0A==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.679.0.tgz",
+      "integrity": "sha512-ZoKLubW5DqqV1/2a3TSn+9sSKg0T8SsYMt1JeirnuLJF0mCoYFUaWMyvxxKuxPoqvUsaycxKru4GkpJ10ltNBw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/fetch-http-handler": "^3.2.9",
         "@smithy/node-http-handler": "^3.2.4",
         "@smithy/property-provider": "^3.1.7",
@@ -563,18 +563,18 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-ini": {
-      "version": "3.670.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.670.0.tgz",
-      "integrity": "sha512-TB1gacUj75leaTt2JsCTzygDSIk4ksv9uZoR7VenlgFPRktyOeT+fapwIVBeB2Qg7b9uxAY2K5XkKstDZyBEEw==",
+      "version": "3.682.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.682.0.tgz",
+      "integrity": "sha512-6eqWeHdK6EegAxqDdiCi215nT3QZPwukgWAYuVxNfJ/5m0/P7fAzF+D5kKVgByUvGJEbq/FEL8Fw7OBe64AA+g==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/credential-provider-env": "3.667.0",
-        "@aws-sdk/credential-provider-http": "3.667.0",
-        "@aws-sdk/credential-provider-process": "3.667.0",
-        "@aws-sdk/credential-provider-sso": "3.670.0",
-        "@aws-sdk/credential-provider-web-identity": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/credential-provider-env": "3.679.0",
+        "@aws-sdk/credential-provider-http": "3.679.0",
+        "@aws-sdk/credential-provider-process": "3.679.0",
+        "@aws-sdk/credential-provider-sso": "3.682.0",
+        "@aws-sdk/credential-provider-web-identity": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/credential-provider-imds": "^3.2.4",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/shared-ini-file-loader": "^3.1.8",
@@ -585,22 +585,22 @@
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sts": "^3.670.0"
+        "@aws-sdk/client-sts": "^3.682.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-node": {
-      "version": "3.670.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.670.0.tgz",
-      "integrity": "sha512-zwNrRYzubk4CaZ7zebeDhxsm8QtNWkbGKopZPOaZSnd5uqUGRcmx4ccVRngWUK68XDP44aEUWC8iU5Pc7btpHQ==",
+      "version": "3.682.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.682.0.tgz",
+      "integrity": "sha512-HSmDqZcBVZrTctHCT9m++vdlDfJ1ARI218qmZa+TZzzOFNpKWy6QyHMEra45GB9GnkkMmV6unoDSPMuN0AqcMg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/credential-provider-env": "3.667.0",
-        "@aws-sdk/credential-provider-http": "3.667.0",
-        "@aws-sdk/credential-provider-ini": "3.670.0",
-        "@aws-sdk/credential-provider-process": "3.667.0",
-        "@aws-sdk/credential-provider-sso": "3.670.0",
-        "@aws-sdk/credential-provider-web-identity": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/credential-provider-env": "3.679.0",
+        "@aws-sdk/credential-provider-http": "3.679.0",
+        "@aws-sdk/credential-provider-ini": "3.682.0",
+        "@aws-sdk/credential-provider-process": "3.679.0",
+        "@aws-sdk/credential-provider-sso": "3.682.0",
+        "@aws-sdk/credential-provider-web-identity": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/credential-provider-imds": "^3.2.4",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/shared-ini-file-loader": "^3.1.8",
@@ -612,13 +612,13 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-process": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.667.0.tgz",
-      "integrity": "sha512-HZHnvop32fKgsNHkdhVaul7UzQ25sEc0j9yqA4bjhtbk0ECl42kj3f1pJ+ZU/YD9ut8lMJs/vVqiOdNThVdeBw==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.679.0.tgz",
+      "integrity": "sha512-u/p4TV8kQ0zJWDdZD4+vdQFTMhkDEJFws040Gm113VHa/Xo1SYOjbpvqeuFoz6VmM0bLvoOWjxB9MxnSQbwKpQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/shared-ini-file-loader": "^3.1.8",
         "@smithy/types": "^3.5.0",
@@ -629,15 +629,15 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-sso": {
-      "version": "3.670.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.670.0.tgz",
-      "integrity": "sha512-5PkA8BOy4q57Vhe9AESoHKZ7vjRbElNPKjXA4qC01xY+DitClRFz4O3B9sMzFp0PHlz9nDVSXXKgq0yzF/nAag==",
+      "version": "3.682.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.682.0.tgz",
+      "integrity": "sha512-h7IH1VsWgV6YAJSWWV6y8uaRjGqLY3iBpGZlXuTH/c236NMLaNv+WqCBLeBxkFGUb2WeQ+FUPEJDCD69rgLIkg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/client-sso": "3.670.0",
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/token-providers": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/client-sso": "3.682.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/token-providers": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/shared-ini-file-loader": "^3.1.8",
         "@smithy/types": "^3.5.0",
@@ -648,13 +648,13 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-web-identity": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.667.0.tgz",
-      "integrity": "sha512-t8CFlZMD/1p/8Cli3rvRiTJpjr/8BO64gw166AHgFZYSN2h95L2l1tcW0jpsc3PprA32nLg1iQVKYt4WGM4ugw==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.679.0.tgz",
+      "integrity": "sha512-a74tLccVznXCaBefWPSysUcLXYJiSkeUmQGtalNgJ1vGkE36W5l/8czFiiowdWdKWz7+x6xf0w+Kjkjlj42Ung==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/types": "^3.5.0",
         "tslib": "^2.6.2"
@@ -663,13 +663,13 @@
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sts": "^3.667.0"
+        "@aws-sdk/client-sts": "^3.679.0"
       }
     },
     "node_modules/@aws-sdk/lib-storage": {
-      "version": "3.670.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.670.0.tgz",
-      "integrity": "sha512-uOXSyzOClpX6s4+Srtq/hLBenK/glbexUpOQfOSfVTm/Wh7oB9liAJhYi69nZgSjdqkAB4/YtPYUgPyrcLqHiw==",
+      "version": "3.685.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.685.0.tgz",
+      "integrity": "sha512-6oGVXmtSr04xzq5XVBHj3yZTWJVfhUElEER5Bg9SrdoWTFRUsjnbOzqOAhYmlrEmEoGTtnZyj7wDI2EY7iCBTQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "@smithy/abort-controller": "^3.1.5",
@@ -684,17 +684,17 @@
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-s3": "^3.670.0"
+        "@aws-sdk/client-s3": "^3.685.0"
       }
     },
     "node_modules/@aws-sdk/middleware-bucket-endpoint": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.667.0.tgz",
-      "integrity": "sha512-XGz4jMAkDoTyFdtLz7ZF+C05IAhCTC1PllpvTBaj821z/L0ilhbqVhrT/f2Buw8Id/K5A390csGXgusXyrFFjA==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.679.0.tgz",
+      "integrity": "sha512-5EpiPhhGgnF+uJR4DzWUk6Lx3pOn9oM6JGXxeHsiynfoBfq7vHMleq+uABHHSQS+y7XzbyZ7x8tXNQlliMwOsg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
-        "@aws-sdk/util-arn-parser": "3.568.0",
+        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/util-arn-parser": "3.679.0",
         "@smithy/node-config-provider": "^3.1.8",
         "@smithy/protocol-http": "^4.1.4",
         "@smithy/types": "^3.5.0",
@@ -706,12 +706,12 @@
       }
     },
     "node_modules/@aws-sdk/middleware-expect-continue": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.667.0.tgz",
-      "integrity": "sha512-0TiSL9S5DSG95NHGIz6qTMuV7GDKVn8tvvGSrSSZu/wXO3JaYSH0AElVpYfc4PtPRqVpEyNA7nnc7W56mMCLWQ==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.679.0.tgz",
+      "integrity": "sha512-nYsh9PdWrF4EahTRdXHGlNud82RPc508CNGdh1lAGfPU3tNveGfMBX3PcGBtPOse3p9ebNKRWVmUc9eXSjGvHA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/protocol-http": "^4.1.4",
         "@smithy/types": "^3.5.0",
         "tslib": "^2.6.2"
@@ -721,15 +721,15 @@
       }
     },
     "node_modules/@aws-sdk/middleware-flexible-checksums": {
-      "version": "3.669.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.669.0.tgz",
-      "integrity": "sha512-01UQLoUzVwWMf+b+AEuwJ2lluBD+Cp8AcbyEHqvEaPdjGKHIS4BCvnY70mZYnAfRtL8R2h9tt7iI61oWU3Gjkg==",
+      "version": "3.682.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.682.0.tgz",
+      "integrity": "sha512-5u1STth6iZUtAvPDO0NJVYKUX2EYKU7v84MYYaZ3O27HphRjFqDos0keL2KTnHn/KmMD68rM3yiUareWR8hnAQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/crc32": "5.2.0",
         "@aws-crypto/crc32c": "5.2.0",
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/is-array-buffer": "^3.0.0",
         "@smithy/node-config-provider": "^3.1.8",
         "@smithy/protocol-http": "^4.1.4",
@@ -743,12 +743,12 @@
       }
     },
     "node_modules/@aws-sdk/middleware-host-header": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.667.0.tgz",
-      "integrity": "sha512-Z7fIAMQnPegs7JjAQvlOeWXwpMRfegh5eCoIP6VLJIeR6DLfYKbP35JBtt98R6DXslrN2RsbTogjbxPEDQfw1w==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.679.0.tgz",
+      "integrity": "sha512-y176HuQ8JRY3hGX8rQzHDSbCl9P5Ny9l16z4xmaiLo+Qfte7ee4Yr3yaAKd7GFoJ3/Mhud2XZ37fR015MfYl2w==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/protocol-http": "^4.1.4",
         "@smithy/types": "^3.5.0",
         "tslib": "^2.6.2"
@@ -758,12 +758,12 @@
       }
     },
     "node_modules/@aws-sdk/middleware-location-constraint": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.667.0.tgz",
-      "integrity": "sha512-ob85H3HhT3/u5O+x0o557xGZ78vSNeSSwMaSitxdsfs2hOuoUl1uk+OeLpi1hkuJnL41FPpokV7TVII2XrFfmg==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.679.0.tgz",
+      "integrity": "sha512-SA1C1D3XgoKTGxyNsOqd016ONpk46xJLWDgJUd00Zb21Ox5wYCoY6aDRKiaMRW+1VfCJdezs1Do3XLyIU9KxyA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/types": "^3.5.0",
         "tslib": "^2.6.2"
       },
@@ -772,12 +772,12 @@
       }
     },
     "node_modules/@aws-sdk/middleware-logger": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.667.0.tgz",
-      "integrity": "sha512-PtTRNpNm/5c746jRgZCNg4X9xEJIwggkGJrF0GP9AB1ANg4pc/sF2Fvn1NtqPe9wtQ2stunJprnm5WkCHN7QiA==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.679.0.tgz",
+      "integrity": "sha512-0vet8InEj7nvIvGKk+ch7bEF5SyZ7Us9U7YTEgXPrBNStKeRUsgwRm0ijPWWd0a3oz2okaEwXsFl7G/vI0XiEA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/types": "^3.5.0",
         "tslib": "^2.6.2"
       },
@@ -786,12 +786,12 @@
       }
     },
     "node_modules/@aws-sdk/middleware-recursion-detection": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.667.0.tgz",
-      "integrity": "sha512-U5glWD3ehFohzpUpopLtmqAlDurGWo2wRGPNgi4SwhWU7UDt6LS7E/UvJjqC0CUrjlzOw+my2A+Ncf+fisMhxQ==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.679.0.tgz",
+      "integrity": "sha512-sQoAZFsQiW/LL3DfKMYwBoGjYDEnMbA9WslWN8xneCmBAwKo6IcSksvYs23PP8XMIoBGe2I2J9BSr654XWygTQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/protocol-http": "^4.1.4",
         "@smithy/types": "^3.5.0",
         "tslib": "^2.6.2"
@@ -801,14 +801,14 @@
       }
     },
     "node_modules/@aws-sdk/middleware-sdk-s3": {
-      "version": "3.669.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.669.0.tgz",
-      "integrity": "sha512-b2QUQ7DcIcVCUFhvmFEDI90BemvQhO0ntIajllLqQSy88PSNdLDCVx5mIzfxaaK/1tdY/UsEDRRm1kMQHJDQpg==",
+      "version": "3.685.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.685.0.tgz",
+      "integrity": "sha512-C4w92b3A99NbghrA2Ssw6y1RbDF3I3Bgzi2Izh0pXgyIoDiX0xs9bUs/FGYLK4uepYr78DAZY8DwEpzjWIXkSA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
-        "@aws-sdk/util-arn-parser": "3.568.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/util-arn-parser": "3.679.0",
         "@smithy/core": "^2.4.8",
         "@smithy/node-config-provider": "^3.1.8",
         "@smithy/protocol-http": "^4.1.4",
@@ -826,12 +826,12 @@
       }
     },
     "node_modules/@aws-sdk/middleware-ssec": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.667.0.tgz",
-      "integrity": "sha512-1wuAUZIkmZIvOmGg5qNQU821CGFHhkuKioxXgNh0DpUxZ9+AeiV7yorJr+bqkb2KBFv1i1TnzGRecvKf/KvZIQ==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.679.0.tgz",
+      "integrity": "sha512-4GNUxXbs1M71uFHRiCAZtN0/g23ogI9YjMe5isAuYMHXwDB3MhqF7usKf954mBP6tplvN44vYlbJ84faaLrTtg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/types": "^3.5.0",
         "tslib": "^2.6.2"
       },
@@ -840,14 +840,14 @@
       }
     },
     "node_modules/@aws-sdk/middleware-user-agent": {
-      "version": "3.669.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.669.0.tgz",
-      "integrity": "sha512-K8ScPi45zjJrj5Y2gRqVsvKKQCQbvQBfYGcBw9ZOx9TTavH80bOCBjWg/GFnvs4f37tqVc1wMN2oGvcTF6HveQ==",
+      "version": "3.682.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.682.0.tgz",
+      "integrity": "sha512-7TyvYR9HdGH1/Nq0eeApUTM4izB6rExiw87khVYuJwZHr6FmvIL1FsOVFro/4WlXa0lg4LiYOm/8H8dHv+fXTg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.667.0",
-        "@aws-sdk/types": "3.667.0",
-        "@aws-sdk/util-endpoints": "3.667.0",
+        "@aws-sdk/core": "3.679.0",
+        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/util-endpoints": "3.679.0",
         "@smithy/core": "^2.4.8",
         "@smithy/protocol-http": "^4.1.4",
         "@smithy/types": "^3.5.0",
@@ -858,12 +858,12 @@
       }
     },
     "node_modules/@aws-sdk/region-config-resolver": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.667.0.tgz",
-      "integrity": "sha512-iNr+JhhA902JMKHG9IwT9YdaEx6KGl6vjAL5BRNeOjfj4cZYMog6Lz/IlfOAltMtT0w88DAHDEFrBd2uO0l2eg==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.679.0.tgz",
+      "integrity": "sha512-Ybx54P8Tg6KKq5ck7uwdjiKif7n/8g1x+V0V9uTjBjRWqaIgiqzXwKWoPj6NCNkE7tJNtqI4JrNxp/3S3HvmRw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/node-config-provider": "^3.1.8",
         "@smithy/types": "^3.5.0",
         "@smithy/util-config-provider": "^3.0.0",
@@ -875,14 +875,14 @@
       }
     },
     "node_modules/@aws-sdk/s3-request-presigner": {
-      "version": "3.670.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.670.0.tgz",
-      "integrity": "sha512-cTTQWJhmCRNH9NZbTqAhx3aXmC+p7gYzj7kNOyzdTA6D4jJOQZekxFFEQ0T2BPFYPR9Elk77W0yK+Nv9wMVD4g==",
+      "version": "3.685.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.685.0.tgz",
+      "integrity": "sha512-OTFQRXlAff/tRE2GfhqAgVaWkRSHUzj9ebvdd3979zcIELHY3kWBJ/XbefElXg1lhsumKdZl/gLpeA76GyQDPQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/signature-v4-multi-region": "3.669.0",
-        "@aws-sdk/types": "3.667.0",
-        "@aws-sdk/util-format-url": "3.667.0",
+        "@aws-sdk/signature-v4-multi-region": "3.685.0",
+        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/util-format-url": "3.679.0",
         "@smithy/middleware-endpoint": "^3.1.4",
         "@smithy/protocol-http": "^4.1.4",
         "@smithy/smithy-client": "^3.4.0",
@@ -894,13 +894,13 @@
       }
     },
     "node_modules/@aws-sdk/signature-v4-multi-region": {
-      "version": "3.669.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.669.0.tgz",
-      "integrity": "sha512-TVwlWAxfBHnFjnfTBQWUhzVJzjwVhkq1+KR0JZV7JrfqeyBOdZjAaV9ie3VNY9HUouecq1fDuKaSwe4JiWQsHg==",
+      "version": "3.685.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.685.0.tgz",
+      "integrity": "sha512-IHLwuAZGqfUWVrNqw0ugnBa7iL8uBP4x6A7bfBDXRXWCWjUCed/1/D//0lKDHwpFkV74fGW6KoBacnWSUlXmwA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/middleware-sdk-s3": "3.669.0",
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/middleware-sdk-s3": "3.685.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/protocol-http": "^4.1.4",
         "@smithy/signature-v4": "^4.2.0",
         "@smithy/types": "^3.5.0",
@@ -911,12 +911,12 @@
       }
     },
     "node_modules/@aws-sdk/token-providers": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.667.0.tgz",
-      "integrity": "sha512-ZecJlG8p6D4UTYlBHwOWX6nknVtw/OBJ3yPXTSajBjhUlj9lE2xvejI8gl4rqkyLXk7z3bki+KR4tATbMaM9yg==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.679.0.tgz",
+      "integrity": "sha512-1/+Zso/x2jqgutKixYFQEGli0FELTgah6bm7aB+m2FAWH4Hz7+iMUsazg6nSWm714sG9G3h5u42Dmpvi9X6/hA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/shared-ini-file-loader": "^3.1.8",
         "@smithy/types": "^3.5.0",
@@ -926,13 +926,13 @@
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sso-oidc": "^3.667.0"
+        "@aws-sdk/client-sso-oidc": "^3.679.0"
       }
     },
     "node_modules/@aws-sdk/types": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.667.0.tgz",
-      "integrity": "sha512-gYq0xCsqFfQaSL/yT1Gl1vIUjtsg7d7RhnUfsXaHt8xTxOKRTdH9GjbesBjXOzgOvB0W0vfssfreSNGFlOOMJg==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.679.0.tgz",
+      "integrity": "sha512-NwVq8YvInxQdJ47+zz4fH3BRRLC6lL+WLkvr242PVBbUOLRyK/lkwHlfiKUoeVIMyK5NF+up6TRg71t/8Bny6Q==",
       "license": "Apache-2.0",
       "dependencies": {
         "@smithy/types": "^3.5.0",
@@ -943,9 +943,9 @@
       }
     },
     "node_modules/@aws-sdk/util-arn-parser": {
-      "version": "3.568.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz",
-      "integrity": "sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.679.0.tgz",
+      "integrity": "sha512-CwzEbU8R8rq9bqUFryO50RFBlkfufV9UfMArHPWlo+lmsC+NlSluHQALoj6Jkq3zf5ppn1CN0c1DDLrEqdQUXg==",
       "license": "Apache-2.0",
       "dependencies": {
         "tslib": "^2.6.2"
@@ -955,12 +955,12 @@
       }
     },
     "node_modules/@aws-sdk/util-endpoints": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.667.0.tgz",
-      "integrity": "sha512-X22SYDAuQJWnkF1/q17pkX3nGw5XMD9YEUbmt87vUnRq7iyJ3JOpl6UKOBeUBaL838wA5yzdbinmCITJ/VZ1QA==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.679.0.tgz",
+      "integrity": "sha512-YL6s4Y/1zC45OvddvgE139fjeWSKKPgLlnfrvhVL7alNyY9n7beR4uhoDpNrt5mI6sn9qiBF17790o+xLAXjjg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/types": "^3.5.0",
         "@smithy/util-endpoints": "^2.1.3",
         "tslib": "^2.6.2"
@@ -970,12 +970,12 @@
       }
     },
     "node_modules/@aws-sdk/util-format-url": {
-      "version": "3.667.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.667.0.tgz",
-      "integrity": "sha512-S0D731SnEPnTfbJ/Dldw5dDrOc8uipK6NLXHDs2xIq0t61iwZLMEiN8yWCs2wAZVVJKpldUM1THLaaufU9SSSA==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.679.0.tgz",
+      "integrity": "sha512-pqV1b/hJ/kumtF8AwObJ7bsGgs/2zuAdZtalSD8Pu4jdjOji3IBwP79giAHyhVwoXaMjkpG3mG4ldn9CVtzZJA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/querystring-builder": "^3.0.7",
         "@smithy/types": "^3.5.0",
         "tslib": "^2.6.2"
@@ -985,9 +985,9 @@
       }
     },
     "node_modules/@aws-sdk/util-locate-window": {
-      "version": "3.568.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz",
-      "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.679.0.tgz",
+      "integrity": "sha512-zKTd48/ZWrCplkXpYDABI74rQlbR0DNHs8nH95htfSLj9/mWRSwaGptoxwcihaq/77vi/fl2X3y0a1Bo8bt7RA==",
       "license": "Apache-2.0",
       "dependencies": {
         "tslib": "^2.6.2"
@@ -997,25 +997,25 @@
       }
     },
     "node_modules/@aws-sdk/util-user-agent-browser": {
-      "version": "3.670.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.670.0.tgz",
-      "integrity": "sha512-iRynWWazqEcCKwGMcQcywKTDLdLvqts1Yx474U64I9OKQXXwhOwhXbF5CAPSRta86lkVNAVYJa/0Bsv45pNn1A==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.679.0.tgz",
+      "integrity": "sha512-CusSm2bTBG1kFypcsqU8COhnYc6zltobsqs3nRrvYqYaOqtMnuE46K4XTWpnzKgwDejgZGOE+WYyprtAxrPvmQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/types": "^3.5.0",
         "bowser": "^2.11.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@aws-sdk/util-user-agent-node": {
-      "version": "3.669.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.669.0.tgz",
-      "integrity": "sha512-9jxCYrgggy2xd44ZASqI7AMiRVaSiFp+06Kg8BQSU0ijKpBJlwcsqIS8pDT/n6LxuOw2eV5ipvM2C0r1iKzrGA==",
+      "version": "3.682.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.682.0.tgz",
+      "integrity": "sha512-so5s+j0gPoTS0HM4HPL+G0ajk0T6cQAg8JXzRgvyiQAxqie+zGCZAV3VuVeMNWMVbzsgZl0pYZaatPFTLG/AxA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/middleware-user-agent": "3.669.0",
-        "@aws-sdk/types": "3.667.0",
+        "@aws-sdk/middleware-user-agent": "3.682.0",
+        "@aws-sdk/types": "3.679.0",
         "@smithy/node-config-provider": "^3.1.8",
         "@smithy/types": "^3.5.0",
         "tslib": "^2.6.2"
@@ -1033,9 +1033,9 @@
       }
     },
     "node_modules/@aws-sdk/xml-builder": {
-      "version": "3.662.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.662.0.tgz",
-      "integrity": "sha512-ikLkXn0igUpnJu2mCZjklvmcDGWT9OaLRv3JyC/cRkTaaSrblPjPM7KKsltxdMTLQ+v7fjCN0TsJpxphMfaOPA==",
+      "version": "3.679.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.679.0.tgz",
+      "integrity": "sha512-nPmhVZb39ty5bcQ7mAwtjezBcsBqTYZ9A2D9v/lE92KCLdu5RhSkPH7O71ZqbZx1mUSg9fAOxHPiG79U5VlpLQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "@smithy/types": "^3.5.0",
@@ -1046,30 +1046,30 @@
       }
     },
     "node_modules/@babel/helper-string-parser": {
-      "version": "7.25.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz",
-      "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==",
+      "version": "7.25.9",
+      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+      "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
       "license": "MIT",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-validator-identifier": {
-      "version": "7.25.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
-      "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
+      "version": "7.25.9",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+      "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
       "license": "MIT",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.25.8",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz",
-      "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==",
+      "version": "7.26.2",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz",
+      "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
       "license": "MIT",
       "dependencies": {
-        "@babel/types": "^7.25.8"
+        "@babel/types": "^7.26.0"
       },
       "bin": {
         "parser": "bin/babel-parser.js"
@@ -1079,14 +1079,13 @@
       }
     },
     "node_modules/@babel/types": {
-      "version": "7.25.8",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz",
-      "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==",
+      "version": "7.26.0",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
+      "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
       "license": "MIT",
       "dependencies": {
-        "@babel/helper-string-parser": "^7.25.7",
-        "@babel/helper-validator-identifier": "^7.25.7",
-        "to-fast-properties": "^2.0.0"
+        "@babel/helper-string-parser": "^7.25.9",
+        "@babel/helper-validator-identifier": "^7.25.9"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -1484,25 +1483,28 @@
       }
     },
     "node_modules/@eslint-community/eslint-utils": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-      "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
+      "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "eslint-visitor-keys": "^3.3.0"
+        "eslint-visitor-keys": "^3.4.3"
       },
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      },
       "peerDependencies": {
         "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
       }
     },
     "node_modules/@eslint-community/regexpp": {
-      "version": "4.11.1",
-      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz",
-      "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==",
+      "version": "4.12.1",
+      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+      "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -1510,9 +1512,9 @@
       }
     },
     "node_modules/@eslint/compat": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.0.tgz",
-      "integrity": "sha512-CkPWddN7J9JPrQedEr2X7AjK9y1jaMJtxZ4A/+jTMFA2+n5BWhcKHW/EbJyARqg2zzQfgtWUtVmG3hrG6+nGpg==",
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.2.tgz",
+      "integrity": "sha512-jhgiIrsw+tRfcBQ4BFl2C3vCrIUw2trCY0cnDvGZpwTtKCEDmZhAtMfrEUP/KpnwM6PrO0T+Ltm+ccW74olG3Q==",
       "dev": true,
       "license": "Apache-2.0",
       "engines": {
@@ -1669,9 +1671,9 @@
       }
     },
     "node_modules/@eslint/plugin-kit": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz",
-      "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==",
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz",
+      "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==",
       "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
@@ -1703,13 +1705,13 @@
       }
     },
     "node_modules/@hey-api/openapi-ts": {
-      "version": "0.53.11",
-      "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.53.11.tgz",
-      "integrity": "sha512-PaO+o0jDhfHVS5SjtonP5CzP/NYoW8dVZUn8WthSgzpgPts8AiWYXplOyk5uEnM4ZxbkZbeTiREwaNLnJmXlTQ==",
+      "version": "0.54.2",
+      "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.54.2.tgz",
+      "integrity": "sha512-hU/Xf8D5yOSA5JsOkM0x4Sz9jChI0v4JMkkk3sy1Tc3DXbbr+s3uyJngvYoimXOq6ljF/9QSCtrk7z5LXxd64g==",
       "dev": true,
       "license": "FSL-1.1-MIT",
       "dependencies": {
-        "@apidevtools/json-schema-ref-parser": "11.7.0",
+        "@apidevtools/json-schema-ref-parser": "11.7.2",
         "c12": "2.0.1",
         "commander": "12.1.0",
         "handlebars": "4.7.8"
@@ -1728,9 +1730,9 @@
       }
     },
     "node_modules/@humanfs/core": {
-      "version": "0.19.0",
-      "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz",
-      "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==",
+      "version": "0.19.1",
+      "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
+      "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
       "dev": true,
       "license": "Apache-2.0",
       "engines": {
@@ -1738,13 +1740,13 @@
       }
     },
     "node_modules/@humanfs/node": {
-      "version": "0.16.5",
-      "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz",
-      "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==",
+      "version": "0.16.6",
+      "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
+      "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
       "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
-        "@humanfs/core": "^0.19.0",
+        "@humanfs/core": "^0.19.1",
         "@humanwhocodes/retry": "^0.3.0"
       },
       "engines": {
@@ -1837,11 +1839,13 @@
       }
     },
     "node_modules/@parcel/watcher": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz",
-      "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz",
+      "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==",
       "dev": true,
+      "hasInstallScript": true,
       "license": "MIT",
+      "optional": true,
       "dependencies": {
         "detect-libc": "^1.0.3",
         "is-glob": "^4.0.3",
@@ -1856,24 +1860,25 @@
         "url": "https://opencollective.com/parcel"
       },
       "optionalDependencies": {
-        "@parcel/watcher-android-arm64": "2.4.1",
-        "@parcel/watcher-darwin-arm64": "2.4.1",
-        "@parcel/watcher-darwin-x64": "2.4.1",
-        "@parcel/watcher-freebsd-x64": "2.4.1",
-        "@parcel/watcher-linux-arm-glibc": "2.4.1",
-        "@parcel/watcher-linux-arm64-glibc": "2.4.1",
-        "@parcel/watcher-linux-arm64-musl": "2.4.1",
-        "@parcel/watcher-linux-x64-glibc": "2.4.1",
-        "@parcel/watcher-linux-x64-musl": "2.4.1",
-        "@parcel/watcher-win32-arm64": "2.4.1",
-        "@parcel/watcher-win32-ia32": "2.4.1",
-        "@parcel/watcher-win32-x64": "2.4.1"
+        "@parcel/watcher-android-arm64": "2.5.0",
+        "@parcel/watcher-darwin-arm64": "2.5.0",
+        "@parcel/watcher-darwin-x64": "2.5.0",
+        "@parcel/watcher-freebsd-x64": "2.5.0",
+        "@parcel/watcher-linux-arm-glibc": "2.5.0",
+        "@parcel/watcher-linux-arm-musl": "2.5.0",
+        "@parcel/watcher-linux-arm64-glibc": "2.5.0",
+        "@parcel/watcher-linux-arm64-musl": "2.5.0",
+        "@parcel/watcher-linux-x64-glibc": "2.5.0",
+        "@parcel/watcher-linux-x64-musl": "2.5.0",
+        "@parcel/watcher-win32-arm64": "2.5.0",
+        "@parcel/watcher-win32-ia32": "2.5.0",
+        "@parcel/watcher-win32-x64": "2.5.0"
       }
     },
     "node_modules/@parcel/watcher-android-arm64": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz",
-      "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz",
+      "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==",
       "cpu": [
         "arm64"
       ],
@@ -1892,9 +1897,9 @@
       }
     },
     "node_modules/@parcel/watcher-darwin-arm64": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz",
-      "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz",
+      "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==",
       "cpu": [
         "arm64"
       ],
@@ -1913,9 +1918,9 @@
       }
     },
     "node_modules/@parcel/watcher-darwin-x64": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz",
-      "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz",
+      "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==",
       "cpu": [
         "x64"
       ],
@@ -1934,9 +1939,9 @@
       }
     },
     "node_modules/@parcel/watcher-freebsd-x64": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz",
-      "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz",
+      "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==",
       "cpu": [
         "x64"
       ],
@@ -1955,9 +1960,30 @@
       }
     },
     "node_modules/@parcel/watcher-linux-arm-glibc": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz",
-      "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz",
+      "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-arm-musl": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz",
+      "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==",
       "cpu": [
         "arm"
       ],
@@ -1976,9 +2002,9 @@
       }
     },
     "node_modules/@parcel/watcher-linux-arm64-glibc": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz",
-      "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz",
+      "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==",
       "cpu": [
         "arm64"
       ],
@@ -1997,9 +2023,9 @@
       }
     },
     "node_modules/@parcel/watcher-linux-arm64-musl": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz",
-      "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz",
+      "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==",
       "cpu": [
         "arm64"
       ],
@@ -2018,9 +2044,9 @@
       }
     },
     "node_modules/@parcel/watcher-linux-x64-glibc": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz",
-      "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz",
+      "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==",
       "cpu": [
         "x64"
       ],
@@ -2039,9 +2065,9 @@
       }
     },
     "node_modules/@parcel/watcher-linux-x64-musl": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz",
-      "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz",
+      "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==",
       "cpu": [
         "x64"
       ],
@@ -2060,9 +2086,9 @@
       }
     },
     "node_modules/@parcel/watcher-win32-arm64": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz",
-      "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz",
+      "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==",
       "cpu": [
         "arm64"
       ],
@@ -2081,9 +2107,9 @@
       }
     },
     "node_modules/@parcel/watcher-win32-ia32": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz",
-      "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz",
+      "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==",
       "cpu": [
         "ia32"
       ],
@@ -2102,9 +2128,9 @@
       }
     },
     "node_modules/@parcel/watcher-win32-x64": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz",
-      "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz",
+      "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==",
       "cpu": [
         "x64"
       ],
@@ -2169,15 +2195,15 @@
       }
     },
     "node_modules/@rollup/pluginutils": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz",
-      "integrity": "sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==",
+      "version": "5.1.3",
+      "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz",
+      "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@types/estree": "^1.0.0",
         "estree-walker": "^2.0.2",
-        "picomatch": "^2.3.1"
+        "picomatch": "^4.0.2"
       },
       "engines": {
         "node": ">=14.0.0"
@@ -2191,10 +2217,23 @@
         }
       }
     },
+    "node_modules/@rollup/pluginutils/node_modules/picomatch": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+      "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
     "node_modules/@rollup/rollup-android-arm-eabi": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz",
-      "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.3.tgz",
+      "integrity": "sha512-ufb2CH2KfBWPJok95frEZZ82LtDl0A6QKTa8MoM+cWwDZvVGl5/jNb79pIhRvAalUu+7LD91VYR0nwRD799HkQ==",
       "cpu": [
         "arm"
       ],
@@ -2206,9 +2245,9 @@
       ]
     },
     "node_modules/@rollup/rollup-android-arm64": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz",
-      "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.3.tgz",
+      "integrity": "sha512-iAHpft/eQk9vkWIV5t22V77d90CRofgR2006UiCjHcHJFVI1E0oBkQIAbz+pLtthFw3hWEmVB4ilxGyBf48i2Q==",
       "cpu": [
         "arm64"
       ],
@@ -2220,9 +2259,9 @@
       ]
     },
     "node_modules/@rollup/rollup-darwin-arm64": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz",
-      "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.3.tgz",
+      "integrity": "sha512-QPW2YmkWLlvqmOa2OwrfqLJqkHm7kJCIMq9kOz40Zo9Ipi40kf9ONG5Sz76zszrmIZZ4hgRIkez69YnTHgEz1w==",
       "cpu": [
         "arm64"
       ],
@@ -2234,9 +2273,9 @@
       ]
     },
     "node_modules/@rollup/rollup-darwin-x64": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz",
-      "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.3.tgz",
+      "integrity": "sha512-KO0pN5x3+uZm1ZXeIfDqwcvnQ9UEGN8JX5ufhmgH5Lz4ujjZMAnxQygZAVGemFWn+ZZC0FQopruV4lqmGMshow==",
       "cpu": [
         "x64"
       ],
@@ -2247,10 +2286,38 @@
         "darwin"
       ]
     },
+    "node_modules/@rollup/rollup-freebsd-arm64": {
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.3.tgz",
+      "integrity": "sha512-CsC+ZdIiZCZbBI+aRlWpYJMSWvVssPuWqrDy/zi9YfnatKKSLFCe6fjna1grHuo/nVaHG+kiglpRhyBQYRTK4A==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ]
+    },
+    "node_modules/@rollup/rollup-freebsd-x64": {
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.3.tgz",
+      "integrity": "sha512-F0nqiLThcfKvRQhZEzMIXOQG4EeX61im61VYL1jo4eBxv4aZRmpin6crnBJQ/nWnCsjH5F6J3W6Stdm0mBNqBg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ]
+    },
     "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz",
-      "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.3.tgz",
+      "integrity": "sha512-KRSFHyE/RdxQ1CSeOIBVIAxStFC/hnBgVcaiCkQaVC+EYDtTe4X7z5tBkFyRoBgUGtB6Xg6t9t2kulnX6wJc6A==",
       "cpu": [
         "arm"
       ],
@@ -2262,9 +2329,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm-musleabihf": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz",
-      "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.3.tgz",
+      "integrity": "sha512-h6Q8MT+e05zP5BxEKz0vi0DhthLdrNEnspdLzkoFqGwnmOzakEHSlXfVyA4HJ322QtFy7biUAVFPvIDEDQa6rw==",
       "cpu": [
         "arm"
       ],
@@ -2276,9 +2343,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm64-gnu": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz",
-      "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.3.tgz",
+      "integrity": "sha512-fKElSyXhXIJ9pqiYRqisfirIo2Z5pTTve5K438URf08fsypXrEkVmShkSfM8GJ1aUyvjakT+fn2W7Czlpd/0FQ==",
       "cpu": [
         "arm64"
       ],
@@ -2290,9 +2357,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm64-musl": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz",
-      "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.3.tgz",
+      "integrity": "sha512-YlddZSUk8G0px9/+V9PVilVDC6ydMz7WquxozToozSnfFK6wa6ne1ATUjUvjin09jp34p84milxlY5ikueoenw==",
       "cpu": [
         "arm64"
       ],
@@ -2304,9 +2371,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz",
-      "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.3.tgz",
+      "integrity": "sha512-yNaWw+GAO8JjVx3s3cMeG5Esz1cKVzz8PkTJSfYzE5u7A+NvGmbVFEHP+BikTIyYWuz0+DX9kaA3pH9Sqxp69g==",
       "cpu": [
         "ppc64"
       ],
@@ -2318,9 +2385,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-riscv64-gnu": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz",
-      "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.3.tgz",
+      "integrity": "sha512-lWKNQfsbpv14ZCtM/HkjCTm4oWTKTfxPmr7iPfp3AHSqyoTz5AgLemYkWLwOBWc+XxBbrU9SCokZP0WlBZM9lA==",
       "cpu": [
         "riscv64"
       ],
@@ -2332,9 +2399,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-s390x-gnu": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz",
-      "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.3.tgz",
+      "integrity": "sha512-HoojGXTC2CgCcq0Woc/dn12wQUlkNyfH0I1ABK4Ni9YXyFQa86Fkt2Q0nqgLfbhkyfQ6003i3qQk9pLh/SpAYw==",
       "cpu": [
         "s390x"
       ],
@@ -2346,9 +2413,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-x64-gnu": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz",
-      "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.3.tgz",
+      "integrity": "sha512-mnEOh4iE4USSccBOtcrjF5nj+5/zm6NcNhbSEfR3Ot0pxBwvEn5QVUXcuOwwPkapDtGZ6pT02xLoPaNv06w7KQ==",
       "cpu": [
         "x64"
       ],
@@ -2360,9 +2427,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-x64-musl": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz",
-      "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.3.tgz",
+      "integrity": "sha512-rMTzawBPimBQkG9NKpNHvquIUTQPzrnPxPbCY1Xt+mFkW7pshvyIS5kYgcf74goxXOQk0CP3EoOC1zcEezKXhw==",
       "cpu": [
         "x64"
       ],
@@ -2374,9 +2441,9 @@
       ]
     },
     "node_modules/@rollup/rollup-win32-arm64-msvc": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz",
-      "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.3.tgz",
+      "integrity": "sha512-2lg1CE305xNvnH3SyiKwPVsTVLCg4TmNCF1z7PSHX2uZY2VbUpdkgAllVoISD7JO7zu+YynpWNSKAtOrX3AiuA==",
       "cpu": [
         "arm64"
       ],
@@ -2388,9 +2455,9 @@
       ]
     },
     "node_modules/@rollup/rollup-win32-ia32-msvc": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz",
-      "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.3.tgz",
+      "integrity": "sha512-9SjYp1sPyxJsPWuhOCX6F4jUMXGbVVd5obVpoVEi8ClZqo52ViZewA6eFz85y8ezuOA+uJMP5A5zo6Oz4S5rVQ==",
       "cpu": [
         "ia32"
       ],
@@ -2402,9 +2469,9 @@
       ]
     },
     "node_modules/@rollup/rollup-win32-x64-msvc": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz",
-      "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.3.tgz",
+      "integrity": "sha512-HGZgRFFYrMrP3TJlq58nR1xy8zHKId25vhmm5S9jETEfDf6xybPxsavFTJaufe2zgOGYJBskGlj49CwtEuFhWQ==",
       "cpu": [
         "x64"
       ],
@@ -2423,12 +2490,12 @@
       "license": "MIT"
     },
     "node_modules/@smithy/abort-controller": {
-      "version": "3.1.5",
-      "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.5.tgz",
-      "integrity": "sha512-DhNPnqTqPoG8aZ5dWkFOgsuY+i0GQ3CI6hMmvCoduNsnU9gUZWZBwGfDQsTTB7NvFPkom1df7jMIJWU90kuXXg==",
+      "version": "3.1.6",
+      "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.6.tgz",
+      "integrity": "sha512-0XuhuHQlEqbNQZp7QxxrFTdVWdwxch4vjxYgfInF91hZFkPxf9QDrdQka0KfxFMPqLNzSw0b95uGTrLliQUavQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2436,18 +2503,18 @@
       }
     },
     "node_modules/@smithy/chunked-blob-reader": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz",
-      "integrity": "sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-4.0.0.tgz",
+      "integrity": "sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/chunked-blob-reader-native": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz",
-      "integrity": "sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.1.tgz",
+      "integrity": "sha512-VEYtPvh5rs/xlyqpm5NRnfYLZn+q0SRPELbvBV+C/G7IQ+ouTuo+NKKa3ShG5OaFR8NYVMXls9hPYLTvIKKDrQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "@smithy/util-base64": "^3.0.0",
@@ -2455,15 +2522,15 @@
       }
     },
     "node_modules/@smithy/config-resolver": {
-      "version": "3.0.9",
-      "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.9.tgz",
-      "integrity": "sha512-5d9oBf40qC7n2xUoHmntKLdqsyTMMo/r49+eqSIjJ73eDfEtljAxEhzIQ3bkgXJtR3xiv7YzMT/3FF3ORkjWdg==",
+      "version": "3.0.10",
+      "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.10.tgz",
+      "integrity": "sha512-Uh0Sz9gdUuz538nvkPiyv1DZRX9+D15EKDtnQP5rYVAzM/dnYk3P8cg73jcxyOitPgT3mE3OVj7ky7sibzHWkw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/types": "^3.5.0",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-config-provider": "^3.0.0",
-        "@smithy/util-middleware": "^3.0.7",
+        "@smithy/util-middleware": "^3.0.8",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2471,19 +2538,17 @@
       }
     },
     "node_modules/@smithy/core": {
-      "version": "2.4.8",
-      "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.4.8.tgz",
-      "integrity": "sha512-x4qWk7p/a4dcf7Vxb2MODIf4OIcqNbK182WxRvZ/3oKPrf/6Fdic5sSElhO1UtXpWKBazWfqg0ZEK9xN1DsuHA==",
+      "version": "2.5.1",
+      "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.1.tgz",
+      "integrity": "sha512-DujtuDA7BGEKExJ05W5OdxCoyekcKT3Rhg1ZGeiUWaz2BJIWXjZmsG/DIP4W48GHno7AQwRsaCb8NcBgH3QZpg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/middleware-endpoint": "^3.1.4",
-        "@smithy/middleware-retry": "^3.0.23",
-        "@smithy/middleware-serde": "^3.0.7",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
+        "@smithy/middleware-serde": "^3.0.8",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-body-length-browser": "^3.0.0",
-        "@smithy/util-middleware": "^3.0.7",
+        "@smithy/util-middleware": "^3.0.8",
+        "@smithy/util-stream": "^3.2.1",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -2492,15 +2557,15 @@
       }
     },
     "node_modules/@smithy/credential-provider-imds": {
-      "version": "3.2.4",
-      "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.4.tgz",
-      "integrity": "sha512-S9bb0EIokfYEuar4kEbLta+ivlKCWOCFsLZuilkNy9i0uEUEHSi47IFLPaxqqCl+0ftKmcOTHayY5nQhAuq7+w==",
+      "version": "3.2.5",
+      "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.5.tgz",
+      "integrity": "sha512-4FTQGAsuwqTzVMmiRVTn0RR9GrbRfkP0wfu/tXWVHd2LgNpTY0uglQpIScXK4NaEyXbB3JmZt8gfVqO50lP8wg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/property-provider": "^3.1.7",
-        "@smithy/types": "^3.5.0",
-        "@smithy/url-parser": "^3.0.7",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/property-provider": "^3.1.8",
+        "@smithy/types": "^3.6.0",
+        "@smithy/url-parser": "^3.0.8",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2508,25 +2573,25 @@
       }
     },
     "node_modules/@smithy/eventstream-codec": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.6.tgz",
-      "integrity": "sha512-SBiOYPBH+5wOyPS7lfI150ePfGLhnp/eTu5RnV9xvhGvRiKfnl6HzRK9wehBph+il8FxS9KTeadx7Rcmf1GLPQ==",
+      "version": "3.1.7",
+      "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.7.tgz",
+      "integrity": "sha512-kVSXScIiRN7q+s1x7BrQtZ1Aa9hvvP9FeCqCdBxv37GimIHgBCOnZ5Ip80HLt0DhnAKpiobFdGqTFgbaJNrazA==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/crc32": "5.2.0",
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-hex-encoding": "^3.0.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/eventstream-serde-browser": {
-      "version": "3.0.10",
-      "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.10.tgz",
-      "integrity": "sha512-1i9aMY6Pl/SmA6NjvidxnfBLHMPzhKu2BP148pEt5VwhMdmXn36PE2kWKGa9Hj8b0XGtCTRucpCncylevCtI7g==",
+      "version": "3.0.11",
+      "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.11.tgz",
+      "integrity": "sha512-Pd1Wnq3CQ/v2SxRifDUihvpXzirJYbbtXfEnnLV/z0OGCTx/btVX74P86IgrZkjOydOASBGXdPpupYQI+iO/6A==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/eventstream-serde-universal": "^3.0.9",
-        "@smithy/types": "^3.5.0",
+        "@smithy/eventstream-serde-universal": "^3.0.10",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2534,12 +2599,12 @@
       }
     },
     "node_modules/@smithy/eventstream-serde-config-resolver": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.7.tgz",
-      "integrity": "sha512-eVzhGQBPEqXXYHvIUku0jMTxd4gDvenRzUQPTmKVWdRvp9JUCKrbAXGQRYiGxUYq9+cqQckRm0wq3kTWnNtDhw==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.8.tgz",
+      "integrity": "sha512-zkFIG2i1BLbfoGQnf1qEeMqX0h5qAznzaZmMVNnvPZz9J5AWBPkOMckZWPedGUPcVITacwIdQXoPcdIQq5FRcg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2547,13 +2612,13 @@
       }
     },
     "node_modules/@smithy/eventstream-serde-node": {
-      "version": "3.0.9",
-      "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.9.tgz",
-      "integrity": "sha512-JE0Guqvt0xsmfQ5y1EI342/qtJqznBv8cJqkHZV10PwC8GWGU5KNgFbQnsVCcX+xF+qIqwwfRmeWoJCjuOLmng==",
+      "version": "3.0.10",
+      "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.10.tgz",
+      "integrity": "sha512-hjpU1tIsJ9qpcoZq9zGHBJPBOeBGYt+n8vfhDwnITPhEre6APrvqq/y3XMDEGUT2cWQ4ramNqBPRbx3qn55rhw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/eventstream-serde-universal": "^3.0.9",
-        "@smithy/types": "^3.5.0",
+        "@smithy/eventstream-serde-universal": "^3.0.10",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2561,13 +2626,13 @@
       }
     },
     "node_modules/@smithy/eventstream-serde-universal": {
-      "version": "3.0.9",
-      "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.9.tgz",
-      "integrity": "sha512-bydfgSisfepCufw9kCEnWRxqxJFzX/o8ysXWv+W9F2FIyiaEwZ/D8bBKINbh4ONz3i05QJ1xE7A5OKYvgJsXaw==",
+      "version": "3.0.10",
+      "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.10.tgz",
+      "integrity": "sha512-ewG1GHbbqsFZ4asaq40KmxCmXO+AFSM1b+DcO2C03dyJj/ZH71CiTg853FSE/3SHK9q3jiYQIFjlGSwfxQ9kww==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/eventstream-codec": "^3.1.6",
-        "@smithy/types": "^3.5.0",
+        "@smithy/eventstream-codec": "^3.1.7",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2588,24 +2653,24 @@
       }
     },
     "node_modules/@smithy/hash-blob-browser": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.6.tgz",
-      "integrity": "sha512-BKNcMIaeZ9lB67sgo88iCF4YB35KT8X2dNJ8DqrtZNTgN6tUDYBKThzfGtos/mnZkGkW91AYHisESHmSiYQmKw==",
+      "version": "3.1.7",
+      "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.7.tgz",
+      "integrity": "sha512-4yNlxVNJifPM5ThaA5HKnHkn7JhctFUHvcaz6YXxHlYOSIrzI6VKQPTN8Gs1iN5nqq9iFcwIR9THqchUCouIfg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/chunked-blob-reader": "^3.0.0",
-        "@smithy/chunked-blob-reader-native": "^3.0.0",
-        "@smithy/types": "^3.5.0",
+        "@smithy/chunked-blob-reader": "^4.0.0",
+        "@smithy/chunked-blob-reader-native": "^3.0.1",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/hash-node": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.7.tgz",
-      "integrity": "sha512-SAGHN+QkrwcHFjfWzs/czX94ZEjPJ0CrWJS3M43WswDXVEuP4AVy9gJ3+AF6JQHZD13bojmuf/Ap/ItDeZ+Qfw==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.8.tgz",
+      "integrity": "sha512-tlNQYbfpWXHimHqrvgo14DrMAgUBua/cNoz9fMYcDmYej7MAmUcjav/QKQbFc3NrcPxeJ7QClER4tWZmfwoPng==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-buffer-from": "^3.0.0",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
@@ -2615,12 +2680,12 @@
       }
     },
     "node_modules/@smithy/hash-stream-node": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.6.tgz",
-      "integrity": "sha512-sFSSt7cmCpFWZPfVx7k80Bgb1K2VJ27VmMxH8X+dDhp7Wv8IBgID4K2VK5ehMJROF8hQgcj4WywnkHIwX/xlwQ==",
+      "version": "3.1.7",
+      "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.7.tgz",
+      "integrity": "sha512-xMAsvJ3hLG63lsBVi1Hl6BBSfhd8/Qnp8fC06kjOpJvyyCEXdwHITa5Kvdsk6gaAXLhbZMhQMIGvgUbfnJDP6Q==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -2629,12 +2694,12 @@
       }
     },
     "node_modules/@smithy/invalid-dependency": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.7.tgz",
-      "integrity": "sha512-Bq00GsAhHeYSuZX8Kpu4sbI9agH2BNYnqUmmbTGWOhki9NVsWn2jFr896vvoTMH8KAjNX/ErC/8t5QHuEXG+IA==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.8.tgz",
+      "integrity": "sha512-7Qynk6NWtTQhnGTTZwks++nJhQ1O54Mzi7fz4PqZOiYXb4Z1Flpb2yRvdALoggTS8xjtohWUM+RygOtB30YL3Q==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       }
     },
@@ -2651,24 +2716,24 @@
       }
     },
     "node_modules/@smithy/md5-js": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.7.tgz",
-      "integrity": "sha512-+wco9IN9uOW4tNGkZIqTR6IXyfO7Z8A+IOq82QCRn/f/xcmt7H1fXwmQVbfDSvbeFwfNnhv7s+u0G9PzPG6o2w==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.8.tgz",
+      "integrity": "sha512-LwApfTK0OJ/tCyNUXqnWCKoE2b4rDSr4BJlDAVCkiWYeHESr+y+d5zlAanuLW6fnitVJRD/7d9/kN/ZM9Su4mA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/middleware-content-length": {
-      "version": "3.0.9",
-      "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.9.tgz",
-      "integrity": "sha512-t97PidoGElF9hTtLCrof32wfWMqC5g2SEJNxaVH3NjlatuNGsdxXRYO/t+RPnxA15RpYiS0f+zG7FuE2DeGgjA==",
+      "version": "3.0.10",
+      "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.10.tgz",
+      "integrity": "sha512-T4dIdCs1d/+/qMpwhJ1DzOhxCZjZHbHazEPJWdB4GDi2HjIZllVzeBEcdJUN0fomV8DURsgOyrbEUzg3vzTaOg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/types": "^3.5.0",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2676,17 +2741,18 @@
       }
     },
     "node_modules/@smithy/middleware-endpoint": {
-      "version": "3.1.4",
-      "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.4.tgz",
-      "integrity": "sha512-/ChcVHekAyzUbyPRI8CzPPLj6y8QRAfJngWcLMgsWxKVzw/RzBV69mSOzJYDD3pRwushA1+5tHtPF8fjmzBnrQ==",
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.1.tgz",
+      "integrity": "sha512-wWO3xYmFm6WRW8VsEJ5oU6h7aosFXfszlz3Dj176pTij6o21oZnzkCLzShfmRaaCHDkBXWBdO0c4sQAvLFP6zA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/middleware-serde": "^3.0.7",
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/shared-ini-file-loader": "^3.1.8",
-        "@smithy/types": "^3.5.0",
-        "@smithy/url-parser": "^3.0.7",
-        "@smithy/util-middleware": "^3.0.7",
+        "@smithy/core": "^2.5.1",
+        "@smithy/middleware-serde": "^3.0.8",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/shared-ini-file-loader": "^3.1.9",
+        "@smithy/types": "^3.6.0",
+        "@smithy/url-parser": "^3.0.8",
+        "@smithy/util-middleware": "^3.0.8",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2694,18 +2760,18 @@
       }
     },
     "node_modules/@smithy/middleware-retry": {
-      "version": "3.0.23",
-      "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.23.tgz",
-      "integrity": "sha512-x9PbGXxkcXIpm6L26qRSCC+eaYcHwybRmqU8LO/WM2RRlW0g8lz6FIiKbKgGvHuoK3dLZRiQVSQJveiCzwnA5A==",
+      "version": "3.0.25",
+      "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.25.tgz",
+      "integrity": "sha512-m1F70cPaMBML4HiTgCw5I+jFNtjgz5z5UdGnUbG37vw6kh4UvizFYjqJGHvicfgKMkDL6mXwyPp5mhZg02g5sg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/service-error-classification": "^3.0.7",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
-        "@smithy/util-middleware": "^3.0.7",
-        "@smithy/util-retry": "^3.0.7",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/service-error-classification": "^3.0.8",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
+        "@smithy/util-middleware": "^3.0.8",
+        "@smithy/util-retry": "^3.0.8",
         "tslib": "^2.6.2",
         "uuid": "^9.0.1"
       },
@@ -2714,12 +2780,12 @@
       }
     },
     "node_modules/@smithy/middleware-serde": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.7.tgz",
-      "integrity": "sha512-VytaagsQqtH2OugzVTq4qvjkLNbWehHfGcGr0JLJmlDRrNCeZoWkWsSOw1nhS/4hyUUWF/TLGGml4X/OnEep5g==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.8.tgz",
+      "integrity": "sha512-Xg2jK9Wc/1g/MBMP/EUn2DLspN8LNt+GMe7cgF+Ty3vl+Zvu+VeZU5nmhveU+H8pxyTsjrAkci8NqY6OuvZnjA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2727,12 +2793,12 @@
       }
     },
     "node_modules/@smithy/middleware-stack": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.7.tgz",
-      "integrity": "sha512-EyTbMCdqS1DoeQsO4gI7z2Gzq1MoRFAeS8GkFYIwbedB7Lp5zlLHJdg+56tllIIG5Hnf9ZWX48YKSHlsKvugGA==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.8.tgz",
+      "integrity": "sha512-d7ZuwvYgp1+3682Nx0MD3D/HtkmZd49N3JUndYWQXfRZrYEnCWYc8BHcNmVsPAp9gKvlurdg/mubE6b/rPS9MA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2740,14 +2806,14 @@
       }
     },
     "node_modules/@smithy/node-config-provider": {
-      "version": "3.1.8",
-      "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz",
-      "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==",
+      "version": "3.1.9",
+      "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz",
+      "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/property-provider": "^3.1.7",
-        "@smithy/shared-ini-file-loader": "^3.1.8",
-        "@smithy/types": "^3.5.0",
+        "@smithy/property-provider": "^3.1.8",
+        "@smithy/shared-ini-file-loader": "^3.1.9",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2755,15 +2821,15 @@
       }
     },
     "node_modules/@smithy/node-http-handler": {
-      "version": "3.2.4",
-      "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.2.4.tgz",
-      "integrity": "sha512-49reY3+JgLMFNm7uTAKBWiKCA6XSvkNp9FqhVmusm2jpVnHORYFeFZ704LShtqWfjZW/nhX+7Iexyb6zQfXYIQ==",
+      "version": "3.2.5",
+      "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.2.5.tgz",
+      "integrity": "sha512-PkOwPNeKdvX/jCpn0A8n9/TyoxjGZB8WVoJmm9YzsnAgggTj4CrjpRHlTQw7dlLZ320n1mY1y+nTRUDViKi/3w==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/abort-controller": "^3.1.5",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/querystring-builder": "^3.0.7",
-        "@smithy/types": "^3.5.0",
+        "@smithy/abort-controller": "^3.1.6",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/querystring-builder": "^3.0.8",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2771,12 +2837,12 @@
       }
     },
     "node_modules/@smithy/property-provider": {
-      "version": "3.1.7",
-      "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.7.tgz",
-      "integrity": "sha512-QfzLi1GPMisY7bAM5hOUqBdGYnY5S2JAlr201pghksrQv139f8iiiMalXtjczIP5f6owxFn3MINLNUNvUkgtPw==",
+      "version": "3.1.8",
+      "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.8.tgz",
+      "integrity": "sha512-ukNUyo6rHmusG64lmkjFeXemwYuKge1BJ8CtpVKmrxQxc6rhUX0vebcptFA9MmrGsnLhwnnqeH83VTU9hwOpjA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2784,12 +2850,12 @@
       }
     },
     "node_modules/@smithy/protocol-http": {
-      "version": "4.1.4",
-      "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.4.tgz",
-      "integrity": "sha512-MlWK8eqj0JlpZBnWmjQLqmFp71Ug00P+m72/1xQB3YByXD4zZ+y9N4hYrR0EDmrUCZIkyATWHOXFgtavwGDTzQ==",
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.5.tgz",
+      "integrity": "sha512-hsjtwpIemmCkm3ZV5fd/T0bPIugW1gJXwZ/hpuVubt2hEUApIoUTrf6qIdh9MAWlw0vjMrA1ztJLAwtNaZogvg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2797,12 +2863,12 @@
       }
     },
     "node_modules/@smithy/querystring-builder": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.7.tgz",
-      "integrity": "sha512-65RXGZZ20rzqqxTsChdqSpbhA6tdt5IFNgG6o7e1lnPVLCe6TNWQq4rTl4N87hTDD8mV4IxJJnvyE7brbnRkQw==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.8.tgz",
+      "integrity": "sha512-btYxGVqFUARbUrN6VhL9c3dnSviIwBYD9Rz1jHuN1hgh28Fpv2xjU1HeCeDJX68xctz7r4l1PBnFhGg1WBBPuA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-uri-escape": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -2811,12 +2877,12 @@
       }
     },
     "node_modules/@smithy/querystring-parser": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.7.tgz",
-      "integrity": "sha512-Fouw4KJVWqqUVIu1gZW8BH2HakwLz6dvdrAhXeXfeymOBrZw+hcqaWs+cS1AZPVp4nlbeIujYrKA921ZW2WMPA==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.8.tgz",
+      "integrity": "sha512-BtEk3FG7Ks64GAbt+JnKqwuobJNX8VmFLBsKIwWr1D60T426fGrV2L3YS5siOcUhhp6/Y6yhBw1PSPxA5p7qGg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2824,24 +2890,24 @@
       }
     },
     "node_modules/@smithy/service-error-classification": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.7.tgz",
-      "integrity": "sha512-91PRkTfiBf9hxkIchhRKJfl1rsplRDyBnmyFca3y0Z3x/q0JJN480S83LBd8R6sBCkm2bBbqw2FHp0Mbh+ecSA==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.8.tgz",
+      "integrity": "sha512-uEC/kCCFto83bz5ZzapcrgGqHOh/0r69sZ2ZuHlgoD5kYgXJEThCoTuw/y1Ub3cE7aaKdznb+jD9xRPIfIwD7g==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0"
+        "@smithy/types": "^3.6.0"
       },
       "engines": {
         "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/shared-ini-file-loader": {
-      "version": "3.1.8",
-      "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz",
-      "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==",
+      "version": "3.1.9",
+      "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz",
+      "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2849,16 +2915,16 @@
       }
     },
     "node_modules/@smithy/signature-v4": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.0.tgz",
-      "integrity": "sha512-LafbclHNKnsorMgUkKm7Tk7oJ7xizsZ1VwqhGKqoCIrXh4fqDDp73fK99HOEEgcsQbtemmeY/BPv0vTVYYUNEQ==",
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.1.tgz",
+      "integrity": "sha512-NsV1jF4EvmO5wqmaSzlnTVetemBS3FZHdyc5CExbDljcyJCEEkJr8ANu2JvtNbVg/9MvKAWV44kTrGS+Pi4INg==",
       "license": "Apache-2.0",
       "dependencies": {
         "@smithy/is-array-buffer": "^3.0.0",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/types": "^3.5.0",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-hex-encoding": "^3.0.0",
-        "@smithy/util-middleware": "^3.0.7",
+        "@smithy/util-middleware": "^3.0.8",
         "@smithy/util-uri-escape": "^3.0.0",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
@@ -2868,16 +2934,17 @@
       }
     },
     "node_modules/@smithy/smithy-client": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.0.tgz",
-      "integrity": "sha512-nOfJ1nVQsxiP6srKt43r2My0Gp5PLWCW2ASqUioxIiGmu6d32v4Nekidiv5qOmmtzIrmaD+ADX5SKHUuhReeBQ==",
+      "version": "3.4.2",
+      "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.2.tgz",
+      "integrity": "sha512-dxw1BDxJiY9/zI3cBqfVrInij6ShjpV4fmGHesGZZUiP9OSE/EVfdwdRz0PgvkEvrZHpsj2htRaHJfftE8giBA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/middleware-endpoint": "^3.1.4",
-        "@smithy/middleware-stack": "^3.0.7",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/types": "^3.5.0",
-        "@smithy/util-stream": "^3.1.9",
+        "@smithy/core": "^2.5.1",
+        "@smithy/middleware-endpoint": "^3.2.1",
+        "@smithy/middleware-stack": "^3.0.8",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/types": "^3.6.0",
+        "@smithy/util-stream": "^3.2.1",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2885,9 +2952,9 @@
       }
     },
     "node_modules/@smithy/types": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.5.0.tgz",
-      "integrity": "sha512-QN0twHNfe8mNJdH9unwsCK13GURU7oEAZqkBI+rsvpv1jrmserO+WnLE7jidR9W/1dxwZ0u/CB01mV2Gms/K2Q==",
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.6.0.tgz",
+      "integrity": "sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w==",
       "license": "Apache-2.0",
       "dependencies": {
         "tslib": "^2.6.2"
@@ -2897,13 +2964,13 @@
       }
     },
     "node_modules/@smithy/url-parser": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.7.tgz",
-      "integrity": "sha512-70UbSSR8J97c1rHZOWhl+VKiZDqHWxs/iW8ZHrHp5fCCPLSBE7GcUlUvKSle3Ca+J9LLbYCj/A79BxztBvAfpA==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.8.tgz",
+      "integrity": "sha512-4FdOhwpTW7jtSFWm7SpfLGKIBC9ZaTKG5nBF0wK24aoQKQyDIKUw3+KFWCQ9maMzrgTJIuOvOnsV2lLGW5XjTg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/querystring-parser": "^3.0.7",
-        "@smithy/types": "^3.5.0",
+        "@smithy/querystring-parser": "^3.0.8",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       }
     },
@@ -2968,14 +3035,14 @@
       }
     },
     "node_modules/@smithy/util-defaults-mode-browser": {
-      "version": "3.0.23",
-      "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.23.tgz",
-      "integrity": "sha512-Y07qslyRtXDP/C5aWKqxTPBl4YxplEELG3xRrz2dnAQ6Lq/FgNrcKWmV561nNaZmFH+EzeGOX3ZRMbU8p1T6Nw==",
+      "version": "3.0.25",
+      "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.25.tgz",
+      "integrity": "sha512-fRw7zymjIDt6XxIsLwfJfYUfbGoO9CmCJk6rjJ/X5cd20+d2Is7xjU5Kt/AiDt6hX8DAf5dztmfP5O82gR9emA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/property-provider": "^3.1.7",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
+        "@smithy/property-provider": "^3.1.8",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
         "bowser": "^2.11.0",
         "tslib": "^2.6.2"
       },
@@ -2984,17 +3051,17 @@
       }
     },
     "node_modules/@smithy/util-defaults-mode-node": {
-      "version": "3.0.23",
-      "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.23.tgz",
-      "integrity": "sha512-9Y4WH7f0vnDGuHUa4lGX9e2p+sMwODibsceSV6rfkZOvMC+BY3StB2LdO1NHafpsyHJLpwAgChxQ38tFyd6vkg==",
+      "version": "3.0.25",
+      "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.25.tgz",
+      "integrity": "sha512-H3BSZdBDiVZGzt8TG51Pd2FvFO0PAx/A0mJ0EH8a13KJ6iUCdYnw/Dk/MdC1kTd0eUuUGisDFaxXVXo4HHFL1g==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/config-resolver": "^3.0.9",
-        "@smithy/credential-provider-imds": "^3.2.4",
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/property-provider": "^3.1.7",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
+        "@smithy/config-resolver": "^3.0.10",
+        "@smithy/credential-provider-imds": "^3.2.5",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/property-provider": "^3.1.8",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -3002,13 +3069,13 @@
       }
     },
     "node_modules/@smithy/util-endpoints": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.3.tgz",
-      "integrity": "sha512-34eACeKov6jZdHqS5hxBMJ4KyWKztTMulhuQ2UdOoP6vVxMLrOKUqIXAwJe/wiWMhXhydLW664B02CNpQBQ4Aw==",
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.4.tgz",
+      "integrity": "sha512-kPt8j4emm7rdMWQyL0F89o92q10gvCUa6sBkBtDJ7nV2+P7wpXczzOfoDJ49CKXe5CCqb8dc1W+ZdLlrKzSAnQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/types": "^3.5.0",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -3028,12 +3095,12 @@
       }
     },
     "node_modules/@smithy/util-middleware": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.7.tgz",
-      "integrity": "sha512-OVA6fv/3o7TMJTpTgOi1H5OTwnuUa8hzRzhSFDtZyNxi6OZ70L/FHattSmhE212I7b6WSOJAAmbYnvcjTHOJCA==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.8.tgz",
+      "integrity": "sha512-p7iYAPaQjoeM+AKABpYWeDdtwQNxasr4aXQEA/OmbOaug9V0odRVDy3Wx4ci8soljE/JXQo+abV0qZpW8NX0yA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -3041,13 +3108,13 @@
       }
     },
     "node_modules/@smithy/util-retry": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.7.tgz",
-      "integrity": "sha512-nh1ZO1vTeo2YX1plFPSe/OXaHkLAHza5jpokNiiKX2M5YpNUv6RxGJZhpfmiR4jSvVHCjIDmILjrxKmP+/Ghug==",
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.8.tgz",
+      "integrity": "sha512-TCEhLnY581YJ+g1x0hapPz13JFqzmh/pMWL2KEFASC51qCfw3+Y47MrTmea4bUE5vsdxQ4F6/KFbUeSz22Q1ow==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/service-error-classification": "^3.0.7",
-        "@smithy/types": "^3.5.0",
+        "@smithy/service-error-classification": "^3.0.8",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -3055,14 +3122,14 @@
       }
     },
     "node_modules/@smithy/util-stream": {
-      "version": "3.1.9",
-      "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.1.9.tgz",
-      "integrity": "sha512-7YAR0Ub3MwTMjDfjnup4qa6W8gygZMxikBhFMPESi6ASsl/rZJhwLpF/0k9TuezScCojsM0FryGdz4LZtjKPPQ==",
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.2.1.tgz",
+      "integrity": "sha512-R3ufuzJRxSJbE58K9AEnL/uSZyVdHzud9wLS8tIbXclxKzoe09CRohj2xV8wpx5tj7ZbiJaKYcutMm1eYgz/0A==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/fetch-http-handler": "^3.2.9",
-        "@smithy/node-http-handler": "^3.2.4",
-        "@smithy/types": "^3.5.0",
+        "@smithy/fetch-http-handler": "^4.0.0",
+        "@smithy/node-http-handler": "^3.2.5",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-base64": "^3.0.0",
         "@smithy/util-buffer-from": "^3.0.0",
         "@smithy/util-hex-encoding": "^3.0.0",
@@ -3073,6 +3140,19 @@
         "node": ">=16.0.0"
       }
     },
+    "node_modules/@smithy/util-stream/node_modules/@smithy/fetch-http-handler": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.0.0.tgz",
+      "integrity": "sha512-MLb1f5tbBO2X6K4lMEKJvxeLooyg7guq48C2zKr4qM7F2Gpkz4dc+hdSgu77pCJ76jVqFBjZczHYAs6dp15N+g==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/querystring-builder": "^3.0.8",
+        "@smithy/types": "^3.6.0",
+        "@smithy/util-base64": "^3.0.0",
+        "tslib": "^2.6.2"
+      }
+    },
     "node_modules/@smithy/util-uri-escape": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz",
@@ -3099,13 +3179,13 @@
       }
     },
     "node_modules/@smithy/util-waiter": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.6.tgz",
-      "integrity": "sha512-xs/KAwWOeCklq8aMlnpk25LgxEYHKOEodfjfKclDMLcBJEVEKzDLxZxBQyztcuPJ7F54213NJS8PxoiHNMdItQ==",
+      "version": "3.1.7",
+      "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.7.tgz",
+      "integrity": "sha512-d5yGlQtmN/z5eoTtIYgkvOw27US2Ous4VycnXatyoImIF9tzlcpnKqQ/V7qhvJmb2p6xZne1NopCLakdTnkBBQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/abort-controller": "^3.1.5",
-        "@smithy/types": "^3.5.0",
+        "@smithy/abort-controller": "^3.1.6",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -3154,9 +3234,9 @@
       "license": "MIT"
     },
     "node_modules/@types/node": {
-      "version": "20.16.11",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz",
-      "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==",
+      "version": "20.17.6",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz",
+      "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -3199,17 +3279,17 @@
       "license": "MIT"
     },
     "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.1.tgz",
-      "integrity": "sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==",
+      "version": "8.12.2",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz",
+      "integrity": "sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@eslint-community/regexpp": "^4.10.0",
-        "@typescript-eslint/scope-manager": "8.8.1",
-        "@typescript-eslint/type-utils": "8.8.1",
-        "@typescript-eslint/utils": "8.8.1",
-        "@typescript-eslint/visitor-keys": "8.8.1",
+        "@typescript-eslint/scope-manager": "8.12.2",
+        "@typescript-eslint/type-utils": "8.12.2",
+        "@typescript-eslint/utils": "8.12.2",
+        "@typescript-eslint/visitor-keys": "8.12.2",
         "graphemer": "^1.4.0",
         "ignore": "^5.3.1",
         "natural-compare": "^1.4.0",
@@ -3233,16 +3313,16 @@
       }
     },
     "node_modules/@typescript-eslint/parser": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz",
-      "integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==",
+      "version": "8.12.2",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.12.2.tgz",
+      "integrity": "sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
-        "@typescript-eslint/scope-manager": "8.8.1",
-        "@typescript-eslint/types": "8.8.1",
-        "@typescript-eslint/typescript-estree": "8.8.1",
-        "@typescript-eslint/visitor-keys": "8.8.1",
+        "@typescript-eslint/scope-manager": "8.12.2",
+        "@typescript-eslint/types": "8.12.2",
+        "@typescript-eslint/typescript-estree": "8.12.2",
+        "@typescript-eslint/visitor-keys": "8.12.2",
         "debug": "^4.3.4"
       },
       "engines": {
@@ -3262,14 +3342,14 @@
       }
     },
     "node_modules/@typescript-eslint/scope-manager": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.1.tgz",
-      "integrity": "sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==",
+      "version": "8.12.2",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz",
+      "integrity": "sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.8.1",
-        "@typescript-eslint/visitor-keys": "8.8.1"
+        "@typescript-eslint/types": "8.12.2",
+        "@typescript-eslint/visitor-keys": "8.12.2"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3280,14 +3360,14 @@
       }
     },
     "node_modules/@typescript-eslint/type-utils": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.1.tgz",
-      "integrity": "sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==",
+      "version": "8.12.2",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz",
+      "integrity": "sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/typescript-estree": "8.8.1",
-        "@typescript-eslint/utils": "8.8.1",
+        "@typescript-eslint/typescript-estree": "8.12.2",
+        "@typescript-eslint/utils": "8.12.2",
         "debug": "^4.3.4",
         "ts-api-utils": "^1.3.0"
       },
@@ -3305,9 +3385,9 @@
       }
     },
     "node_modules/@typescript-eslint/types": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.1.tgz",
-      "integrity": "sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==",
+      "version": "8.12.2",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.12.2.tgz",
+      "integrity": "sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -3319,14 +3399,14 @@
       }
     },
     "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.1.tgz",
-      "integrity": "sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==",
+      "version": "8.12.2",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz",
+      "integrity": "sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
-        "@typescript-eslint/types": "8.8.1",
-        "@typescript-eslint/visitor-keys": "8.8.1",
+        "@typescript-eslint/types": "8.12.2",
+        "@typescript-eslint/visitor-keys": "8.12.2",
         "debug": "^4.3.4",
         "fast-glob": "^3.3.2",
         "is-glob": "^4.0.3",
@@ -3348,16 +3428,16 @@
       }
     },
     "node_modules/@typescript-eslint/utils": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.1.tgz",
-      "integrity": "sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==",
+      "version": "8.12.2",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.12.2.tgz",
+      "integrity": "sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.4.0",
-        "@typescript-eslint/scope-manager": "8.8.1",
-        "@typescript-eslint/types": "8.8.1",
-        "@typescript-eslint/typescript-estree": "8.8.1"
+        "@typescript-eslint/scope-manager": "8.12.2",
+        "@typescript-eslint/types": "8.12.2",
+        "@typescript-eslint/typescript-estree": "8.12.2"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3371,13 +3451,13 @@
       }
     },
     "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.1.tgz",
-      "integrity": "sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==",
+      "version": "8.12.2",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz",
+      "integrity": "sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.8.1",
+        "@typescript-eslint/types": "8.12.2",
         "eslint-visitor-keys": "^3.4.3"
       },
       "engines": {
@@ -3403,30 +3483,30 @@
       }
     },
     "node_modules/@volar/language-core": {
-      "version": "2.4.6",
-      "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.6.tgz",
-      "integrity": "sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==",
+      "version": "2.4.8",
+      "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.8.tgz",
+      "integrity": "sha512-K/GxMOXGq997bO00cdFhTNuR85xPxj0BEEAy+BaqqayTmy9Tmhfgmq2wpJcVspRhcwfgPoE2/mEJa26emUhG/g==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@volar/source-map": "2.4.6"
+        "@volar/source-map": "2.4.8"
       }
     },
     "node_modules/@volar/source-map": {
-      "version": "2.4.6",
-      "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.6.tgz",
-      "integrity": "sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==",
+      "version": "2.4.8",
+      "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.8.tgz",
+      "integrity": "sha512-jeWJBkC/WivdelMwxKkpFL811uH/jJ1kVxa+c7OvG48DXc3VrP7pplSWPP2W1dLMqBxD+awRlg55FQQfiup4cA==",
       "dev": true,
       "license": "MIT"
     },
     "node_modules/@volar/typescript": {
-      "version": "2.4.6",
-      "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.6.tgz",
-      "integrity": "sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==",
+      "version": "2.4.8",
+      "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.8.tgz",
+      "integrity": "sha512-6xkIYJ5xxghVBhVywMoPMidDDAFT1OoQeXwa27HSgJ6AiIKRe61RXLoik+14Z7r0JvnblXVsjsRLmCr42SGzqg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@volar/language-core": "2.4.6",
+        "@volar/language-core": "2.4.8",
         "path-browserify": "^1.0.1",
         "vscode-uri": "^3.0.8"
       }
@@ -3499,9 +3579,9 @@
       "license": "MIT"
     },
     "node_modules/@vue/eslint-config-prettier": {
-      "version": "10.0.0",
-      "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-10.0.0.tgz",
-      "integrity": "sha512-iDEjsfT+UXQTJfe+4mstb/B5BSZ5RpL6FO3F97XxElIXdD04gkH+F7PR4fBMEVyJi4892G4LQVPQ8oXxVyp8Dw==",
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-10.1.0.tgz",
+      "integrity": "sha512-J6wV91y2pXc0Phha01k0WOHBTPsoSTf4xlmMjoKaeSxBpAdsgTppGF5RZRdOHM7OA74zAXD+VLANrtYXpiPKkQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -3514,14 +3594,14 @@
       }
     },
     "node_modules/@vue/eslint-config-typescript": {
-      "version": "14.0.1",
-      "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.0.1.tgz",
-      "integrity": "sha512-jE5myCG9OiXQOuTSiwCqmM5ktGuiL/xI2SC1DUf+AntvFTDOW5+RZtGKw8L+Af5jlSe0k45RNVh0a/wklcckGQ==",
+      "version": "14.1.3",
+      "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.1.3.tgz",
+      "integrity": "sha512-L4NUJQz/0We2QYtrNwRAGRy4KfpOagl5V3MpZZ+rQ51a+bKjlKYYrugi7lp7PIX8LolRgu06ZwDoswnSGWnAmA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@typescript-eslint/eslint-plugin": "^8.8.1",
-        "@typescript-eslint/parser": "^8.8.1",
+        "fast-glob": "^3.3.2",
         "typescript-eslint": "^8.8.1",
         "vue-eslint-parser": "^9.4.3"
       },
@@ -3540,17 +3620,17 @@
       }
     },
     "node_modules/@vue/language-core": {
-      "version": "2.1.6",
-      "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz",
-      "integrity": "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==",
+      "version": "2.1.10",
+      "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.10.tgz",
+      "integrity": "sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@volar/language-core": "~2.4.1",
-        "@vue/compiler-dom": "^3.4.0",
+        "@volar/language-core": "~2.4.8",
+        "@vue/compiler-dom": "^3.5.0",
         "@vue/compiler-vue2": "^2.7.16",
-        "@vue/shared": "^3.4.0",
-        "computeds": "^0.0.1",
+        "@vue/shared": "^3.5.0",
+        "alien-signals": "^0.2.0",
         "minimatch": "^9.0.3",
         "muggle-string": "^0.4.1",
         "path-browserify": "^1.0.1"
@@ -3622,9 +3702,9 @@
       "license": "MIT"
     },
     "node_modules/acorn": {
-      "version": "8.12.1",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
-      "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
+      "version": "8.14.0",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
+      "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
       "dev": true,
       "license": "MIT",
       "bin": {
@@ -3660,6 +3740,13 @@
         "url": "https://github.com/sponsors/epoberezkin"
       }
     },
+    "node_modules/alien-signals": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.2.0.tgz",
+      "integrity": "sha512-StlonZhBBrsPPwrDjiPAiVTf/rolxffLxVPT60Qv/t88BZ81BvUVzHgGqEFvJ1ii8HXtm1+zU2Icr59tfWEcag==",
+      "dev": true,
+      "license": "MIT"
+    },
     "node_modules/ansi-styles": {
       "version": "4.3.0",
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -4131,9 +4218,9 @@
       }
     },
     "node_modules/chart.js": {
-      "version": "4.4.4",
-      "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.4.tgz",
-      "integrity": "sha512-emICKGBABnxhMjUjlYRR12PmOXhJ2eJjEHL2/dZlWjxRAZT1D8xplLFq5M0tMQK8ja+wBS/tuVEJB5C6r7VxJA==",
+      "version": "4.4.6",
+      "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.6.tgz",
+      "integrity": "sha512-8Y406zevUPbbIBA/HRk33khEmQPk5+cxeflWE/2rx1NJsjVWMPw/9mSP9rxHP5eqi6LNoPBVMfZHxbwLSgldYA==",
       "license": "MIT",
       "dependencies": {
         "@kurkle/color": "^0.3.0"
@@ -4244,13 +4331,6 @@
         "node": ">=18"
       }
     },
-    "node_modules/computeds": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz",
-      "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
-      "dev": true,
-      "license": "MIT"
-    },
     "node_modules/concat-map": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -4365,26 +4445,30 @@
       }
     },
     "node_modules/crypto-browserify": {
-      "version": "3.12.0",
-      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
-      "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+      "version": "3.12.1",
+      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz",
+      "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "browserify-cipher": "^1.0.0",
-        "browserify-sign": "^4.0.0",
-        "create-ecdh": "^4.0.0",
-        "create-hash": "^1.1.0",
-        "create-hmac": "^1.1.0",
-        "diffie-hellman": "^5.0.0",
-        "inherits": "^2.0.1",
-        "pbkdf2": "^3.0.3",
-        "public-encrypt": "^4.0.0",
-        "randombytes": "^2.0.0",
-        "randomfill": "^1.0.3"
+        "browserify-cipher": "^1.0.1",
+        "browserify-sign": "^4.2.3",
+        "create-ecdh": "^4.0.4",
+        "create-hash": "^1.2.0",
+        "create-hmac": "^1.1.7",
+        "diffie-hellman": "^5.0.3",
+        "hash-base": "~3.0.4",
+        "inherits": "^2.0.4",
+        "pbkdf2": "^3.1.2",
+        "public-encrypt": "^4.0.3",
+        "randombytes": "^2.1.0",
+        "randomfill": "^1.0.4"
       },
       "engines": {
-        "node": "*"
+        "node": ">= 0.10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/cssesc": {
@@ -4574,6 +4658,7 @@
       "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
       "dev": true,
       "license": "Apache-2.0",
+      "optional": true,
       "bin": {
         "detect-libc": "bin/detect-libc.js"
       },
@@ -4633,9 +4718,9 @@
       }
     },
     "node_modules/elliptic": {
-      "version": "6.5.7",
-      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz",
-      "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==",
+      "version": "6.6.0",
+      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz",
+      "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -4963,9 +5048,9 @@
       }
     },
     "node_modules/eslint-plugin-vue": {
-      "version": "9.29.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.29.0.tgz",
-      "integrity": "sha512-hamyjrBhNH6Li6R1h1VF9KHfshJlKgKEg3ARbGTn72CMNDSMhWbgC7NdkRDEh25AFW+4SDATzyNM+3gWuZii8g==",
+      "version": "9.30.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.30.0.tgz",
+      "integrity": "sha512-CyqlRgShvljFkOeYK8wN5frh/OGTvkj1S7wlr2Q2pUvwq+X5VYiLd6ZjujpgSgLnys2W8qrBLkXQ41SUYaoPIQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -5002,9 +5087,9 @@
       }
     },
     "node_modules/eslint-scope": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz",
-      "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==",
+      "version": "8.2.0",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz",
+      "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
@@ -5060,9 +5145,9 @@
       }
     },
     "node_modules/eslint/node_modules/eslint-visitor-keys": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz",
-      "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==",
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
+      "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
       "dev": true,
       "license": "Apache-2.0",
       "engines": {
@@ -5093,15 +5178,15 @@
       }
     },
     "node_modules/espree": {
-      "version": "10.2.0",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz",
-      "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==",
+      "version": "10.3.0",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
+      "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
-        "acorn": "^8.12.0",
+        "acorn": "^8.14.0",
         "acorn-jsx": "^5.3.2",
-        "eslint-visitor-keys": "^4.1.0"
+        "eslint-visitor-keys": "^4.2.0"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5111,9 +5196,9 @@
       }
     },
     "node_modules/espree/node_modules/eslint-visitor-keys": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz",
-      "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==",
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
+      "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
       "dev": true,
       "license": "Apache-2.0",
       "engines": {
@@ -5277,10 +5362,10 @@
       "license": "MIT"
     },
     "node_modules/fast-uri": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz",
-      "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==",
-      "license": "MIT"
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz",
+      "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==",
+      "license": "BSD-3-Clause"
     },
     "node_modules/fast-xml-parser": {
       "version": "4.4.1",
@@ -6297,9 +6382,9 @@
       }
     },
     "node_modules/jiti": {
-      "version": "2.3.3",
-      "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.3.3.tgz",
-      "integrity": "sha512-EX4oNDwcXSivPrw2qKH2LB5PoFxEvgtv2JgwW0bU858HoLQ+kutSvjLMUqBd0PeJYEinLWhoI9Ol0eYMqj/wNQ==",
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.0.tgz",
+      "integrity": "sha512-H5UpaUI+aHOqZXlYOaFP/8AzKsg+guWu+Pr3Y8i7+Y3zr1aXAvCvTAQ1RxSc6oVD8R8c7brgNtTVP91E7upH/g==",
       "dev": true,
       "license": "MIT",
       "bin": {
@@ -6695,7 +6780,8 @@
       "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
       "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
       "dev": true,
-      "license": "MIT"
+      "license": "MIT",
+      "optional": true
     },
     "node_modules/node-fetch-native": {
       "version": "1.6.4",
@@ -7324,9 +7410,9 @@
       "license": "MIT"
     },
     "node_modules/picocolors": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
-      "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+      "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
       "license": "ISC"
     },
     "node_modules/picomatch": {
@@ -7366,9 +7452,9 @@
       }
     },
     "node_modules/pinia": {
-      "version": "2.2.4",
-      "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.4.tgz",
-      "integrity": "sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.6.tgz",
+      "integrity": "sha512-vIsR8JkDN5Ga2vAxqOE2cJj4VtsHnzpR1Fz30kClxlh0yCHfec6uoMeM3e/ddqmwFUejK3NlrcQa/shnpyT4hA==",
       "license": "MIT",
       "dependencies": {
         "@vue/devtools-api": "^6.6.3",
@@ -7380,7 +7466,7 @@
       "peerDependencies": {
         "@vue/composition-api": "^1.4.0",
         "typescript": ">=4.4.4",
-        "vue": "^2.6.14 || ^3.3.0"
+        "vue": "^2.6.14 || ^3.5.11"
       },
       "peerDependenciesMeta": {
         "@vue/composition-api": {
@@ -7785,9 +7871,9 @@
       }
     },
     "node_modules/rollup": {
-      "version": "4.24.0",
-      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz",
-      "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==",
+      "version": "4.24.3",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.3.tgz",
+      "integrity": "sha512-HBW896xR5HGmoksbi3JBDtmVzWiPAYqp7wip50hjQ67JbDz61nyoMPdqu1DvVW9asYb2M65Z20ZHsyJCMqMyDg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -7801,22 +7887,24 @@
         "npm": ">=8.0.0"
       },
       "optionalDependencies": {
-        "@rollup/rollup-android-arm-eabi": "4.24.0",
-        "@rollup/rollup-android-arm64": "4.24.0",
-        "@rollup/rollup-darwin-arm64": "4.24.0",
-        "@rollup/rollup-darwin-x64": "4.24.0",
-        "@rollup/rollup-linux-arm-gnueabihf": "4.24.0",
-        "@rollup/rollup-linux-arm-musleabihf": "4.24.0",
-        "@rollup/rollup-linux-arm64-gnu": "4.24.0",
-        "@rollup/rollup-linux-arm64-musl": "4.24.0",
-        "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0",
-        "@rollup/rollup-linux-riscv64-gnu": "4.24.0",
-        "@rollup/rollup-linux-s390x-gnu": "4.24.0",
-        "@rollup/rollup-linux-x64-gnu": "4.24.0",
-        "@rollup/rollup-linux-x64-musl": "4.24.0",
-        "@rollup/rollup-win32-arm64-msvc": "4.24.0",
-        "@rollup/rollup-win32-ia32-msvc": "4.24.0",
-        "@rollup/rollup-win32-x64-msvc": "4.24.0",
+        "@rollup/rollup-android-arm-eabi": "4.24.3",
+        "@rollup/rollup-android-arm64": "4.24.3",
+        "@rollup/rollup-darwin-arm64": "4.24.3",
+        "@rollup/rollup-darwin-x64": "4.24.3",
+        "@rollup/rollup-freebsd-arm64": "4.24.3",
+        "@rollup/rollup-freebsd-x64": "4.24.3",
+        "@rollup/rollup-linux-arm-gnueabihf": "4.24.3",
+        "@rollup/rollup-linux-arm-musleabihf": "4.24.3",
+        "@rollup/rollup-linux-arm64-gnu": "4.24.3",
+        "@rollup/rollup-linux-arm64-musl": "4.24.3",
+        "@rollup/rollup-linux-powerpc64le-gnu": "4.24.3",
+        "@rollup/rollup-linux-riscv64-gnu": "4.24.3",
+        "@rollup/rollup-linux-s390x-gnu": "4.24.3",
+        "@rollup/rollup-linux-x64-gnu": "4.24.3",
+        "@rollup/rollup-linux-x64-musl": "4.24.3",
+        "@rollup/rollup-win32-arm64-msvc": "4.24.3",
+        "@rollup/rollup-win32-ia32-msvc": "4.24.3",
+        "@rollup/rollup-win32-x64-msvc": "4.24.3",
         "fsevents": "~2.3.2"
       }
     },
@@ -7902,13 +7990,12 @@
       }
     },
     "node_modules/sass": {
-      "version": "1.79.5",
-      "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.5.tgz",
-      "integrity": "sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g==",
+      "version": "1.80.6",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.6.tgz",
+      "integrity": "sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/watcher": "^2.4.1",
         "chokidar": "^4.0.0",
         "immutable": "^4.0.0",
         "source-map-js": ">=0.6.2 <2.0.0"
@@ -7918,6 +8005,9 @@
       },
       "engines": {
         "node": ">=14.0.0"
+      },
+      "optionalDependencies": {
+        "@parcel/watcher": "^2.4.1"
       }
     },
     "node_modules/semver": {
@@ -8362,15 +8452,6 @@
         "node": ">=0.6.0"
       }
     },
-    "node_modules/to-fast-properties": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-      "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=4"
-      }
-    },
     "node_modules/to-regex-range": {
       "version": "5.0.1",
       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -8385,9 +8466,9 @@
       }
     },
     "node_modules/ts-api-utils": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
-      "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz",
+      "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -8398,9 +8479,9 @@
       }
     },
     "node_modules/tslib": {
-      "version": "2.7.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
-      "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
+      "version": "2.8.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
       "license": "0BSD"
     },
     "node_modules/tty-browserify": {
@@ -8528,15 +8609,15 @@
       }
     },
     "node_modules/typescript-eslint": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.8.1.tgz",
-      "integrity": "sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==",
+      "version": "8.12.2",
+      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.12.2.tgz",
+      "integrity": "sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/eslint-plugin": "8.8.1",
-        "@typescript-eslint/parser": "8.8.1",
-        "@typescript-eslint/utils": "8.8.1"
+        "@typescript-eslint/eslint-plugin": "8.12.2",
+        "@typescript-eslint/parser": "8.12.2",
+        "@typescript-eslint/utils": "8.12.2"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -8674,9 +8755,9 @@
       }
     },
     "node_modules/vite": {
-      "version": "5.4.9",
-      "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz",
-      "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==",
+      "version": "5.4.10",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz",
+      "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -8871,14 +8952,14 @@
       }
     },
     "node_modules/vue-tsc": {
-      "version": "2.1.6",
-      "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.6.tgz",
-      "integrity": "sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==",
+      "version": "2.1.10",
+      "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.10.tgz",
+      "integrity": "sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@volar/typescript": "~2.4.1",
-        "@vue/language-core": "2.1.6",
+        "@volar/typescript": "~2.4.8",
+        "@vue/language-core": "2.1.10",
         "semver": "^7.5.4"
       },
       "bin": {
diff --git a/package.json b/package.json
index 0ae94ecac2da95988f8ffdd38a8c38b29832ea82..50c691bc2e34eb20de902cc779564a4b42c5ed23 100644
--- a/package.json
+++ b/package.json
@@ -39,7 +39,7 @@
   },
   "devDependencies": {
     "@eslint/compat": "^1.2.0",
-    "@hey-api/openapi-ts": "^0.53.9",
+    "@hey-api/openapi-ts": "^0.54.0",
     "@rushstack/eslint-patch": "~1.10.0",
     "@tsconfig/node20": "^20.1.2",
     "@types/bootstrap": "~5.2.0",
@@ -50,11 +50,11 @@
     "@types/showdown": "~2.0.1",
     "@types/sortablejs": "^1.15.7",
     "@vitejs/plugin-vue": "~5.1.0",
-    "@vue/eslint-config-prettier": "~10.0.0",
-    "@vue/eslint-config-typescript": "~14.0.0",
+    "@vue/eslint-config-prettier": "~10.1.0",
+    "@vue/eslint-config-typescript": "~14.1.0",
     "@vue/tsconfig": "~0.5.0",
     "eslint": "~9.12.0",
-    "eslint-plugin-vue": "~9.29.0",
+    "eslint-plugin-vue": "~9.30.0",
     "highlight.js": "^11.9.0",
     "npm-run-all": "~4.1.5",
     "prettier": "~3.3.0",
diff --git a/src/App.vue b/src/App.vue
index cf641530a85f5003aec824e0fdb32ff9202bd93d..64eb9a5147a8b52d93741c2bb3ba2f2ec5b6e867 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -170,10 +170,16 @@ onMounted(() => {
 
 <template>
   <AppHeader />
-  <div class="container-xxl mt-2 flex-grow-1 py-2">
+  <div class="container-fluid container-xxxl mt-2 flex-grow-1 py-2">
     <router-view />
   </div>
   <AppFooter />
 </template>
 
-<style scoped></style>
+<style scoped>
+@media (min-width: 1550px) {
+  .container-xxxl {
+    max-width: 1500px !important;
+  }
+}
+</style>
diff --git a/src/client/services.gen.ts b/src/client/services.gen.ts
index a501638e1c19b611c26ea1226550eda6ceea9911..633fd0c6ee3340cfd21d0059d9b1eae7464093e7 100644
--- a/src/client/services.gen.ts
+++ b/src/client/services.gen.ts
@@ -7,8 +7,6 @@ import {
   formDataBodySerializer,
 } from "@hey-api/client-axios";
 import type {
-  AuthLoginData,
-  AuthLoginCallbackData,
   ApiTokenListTokenData,
   ApiTokenListTokenError,
   ApiTokenListTokenResponse,
@@ -21,38 +19,8 @@ import type {
   ApiTokenDeleteTokenData,
   ApiTokenDeleteTokenError,
   ApiTokenDeleteTokenResponse,
-  UserCreateUserData,
-  UserCreateUserError,
-  UserCreateUserResponse,
-  UserListUsersData,
-  UserListUsersError,
-  UserListUsersResponse,
-  UserSearchUsersData,
-  UserSearchUsersError,
-  UserSearchUsersResponse,
-  UserGetLoggedInUserError,
-  UserGetLoggedInUserResponse,
-  UserGetUserData,
-  UserGetUserError,
-  UserGetUserResponse,
-  UserUpdateRolesData,
-  UserUpdateRolesError,
-  UserUpdateRolesResponse,
-  UserResendInvitationData,
-  UserResendInvitationError,
-  UserResendInvitationResponse,
-  S3KeyGetUserKeysData,
-  S3KeyGetUserKeysError,
-  S3KeyGetUserKeysResponse,
-  S3KeyCreateUserKeyData,
-  S3KeyCreateUserKeyError,
-  S3KeyCreateUserKeyResponse,
-  S3KeyGetUserKeyData,
-  S3KeyGetUserKeyError,
-  S3KeyGetUserKeyResponse,
-  S3KeyDeleteUserKeyData,
-  S3KeyDeleteUserKeyError,
-  S3KeyDeleteUserKeyResponse,
+  AuthLoginData,
+  AuthLoginCallbackData,
   BucketListBucketsData,
   BucketListBucketsError,
   BucketListBucketsResponse,
@@ -107,6 +75,114 @@ import type {
   BucketPermissionDeletePermissionData,
   BucketPermissionDeletePermissionError,
   BucketPermissionDeletePermissionResponse,
+  NewsCreateNewsData,
+  NewsCreateNewsError,
+  NewsCreateNewsResponse,
+  NewsListNewsData,
+  NewsListNewsError,
+  NewsListNewsResponse,
+  NewsListLatestNewsError,
+  NewsListLatestNewsResponse,
+  NewsGetNewsData,
+  NewsGetNewsError,
+  NewsGetNewsResponse,
+  NewsDeleteNewsData,
+  NewsDeleteNewsError,
+  NewsDeleteNewsResponse,
+  ResourceCreateResourceData,
+  ResourceCreateResourceError,
+  ResourceCreateResourceResponse,
+  ResourceListResourcesData,
+  ResourceListResourcesError,
+  ResourceListResourcesResponse,
+  ResourceListSyncRequestsError,
+  ResourceListSyncRequestsResponse,
+  ResourceListResourceOtrsData,
+  ResourceListResourceOtrsError,
+  ResourceListResourceOtrsResponse,
+  ResourceGetResourceData,
+  ResourceGetResourceError,
+  ResourceGetResourceResponse,
+  ResourceDeleteResourceData,
+  ResourceDeleteResourceError,
+  ResourceDeleteResourceResponse,
+  ResourceGetResourceOtrData,
+  ResourceGetResourceOtrError,
+  ResourceGetResourceOtrResponse,
+  ResourceCreateResourceOtrData,
+  ResourceCreateResourceOtrError,
+  ResourceCreateResourceOtrResponse,
+  ResourceAcceptResourceOtrData,
+  ResourceAcceptResourceOtrError,
+  ResourceAcceptResourceOtrResponse,
+  ResourceDeleteResourceOtrData,
+  ResourceDeleteResourceOtrError,
+  ResourceDeleteResourceOtrResponse,
+  ResourceVersionListResourceVersionsData,
+  ResourceVersionListResourceVersionsError,
+  ResourceVersionListResourceVersionsResponse,
+  ResourceVersionRequestResourceVersionData,
+  ResourceVersionRequestResourceVersionError,
+  ResourceVersionRequestResourceVersionResponse,
+  ResourceVersionGetResourceVersionData,
+  ResourceVersionGetResourceVersionError,
+  ResourceVersionGetResourceVersionResponse,
+  ResourceVersionResourceFileTreeData,
+  ResourceVersionResourceFileTreeError,
+  ResourceVersionResourceFileTreeResponse,
+  ResourceVersionRequestResourceVersionReviewData,
+  ResourceVersionRequestResourceVersionReviewError,
+  ResourceVersionRequestResourceVersionReviewResponse,
+  ResourceVersionRequestResourceVersionSyncData,
+  ResourceVersionRequestResourceVersionSyncError,
+  ResourceVersionRequestResourceVersionSyncResponse,
+  ResourceVersionResourceVersionReviewData,
+  ResourceVersionResourceVersionReviewError,
+  ResourceVersionResourceVersionReviewResponse,
+  ResourceVersionResourceVersionSyncData,
+  ResourceVersionResourceVersionSyncError,
+  ResourceVersionResourceVersionSyncResponse,
+  ResourceVersionResourceVersionLatestData,
+  ResourceVersionResourceVersionLatestError,
+  ResourceVersionResourceVersionLatestResponse,
+  ResourceVersionDeleteResourceVersionClusterData,
+  ResourceVersionDeleteResourceVersionClusterError,
+  ResourceVersionDeleteResourceVersionClusterResponse,
+  ResourceVersionDeleteResourceVersionS3Data,
+  ResourceVersionDeleteResourceVersionS3Error,
+  ResourceVersionDeleteResourceVersionS3Response,
+  S3KeyGetUserKeysData,
+  S3KeyGetUserKeysError,
+  S3KeyGetUserKeysResponse,
+  S3KeyCreateUserKeyData,
+  S3KeyCreateUserKeyError,
+  S3KeyCreateUserKeyResponse,
+  S3KeyGetUserKeyData,
+  S3KeyGetUserKeyError,
+  S3KeyGetUserKeyResponse,
+  S3KeyDeleteUserKeyData,
+  S3KeyDeleteUserKeyError,
+  S3KeyDeleteUserKeyResponse,
+  UserCreateUserData,
+  UserCreateUserError,
+  UserCreateUserResponse,
+  UserListUsersData,
+  UserListUsersError,
+  UserListUsersResponse,
+  UserSearchUsersData,
+  UserSearchUsersError,
+  UserSearchUsersResponse,
+  UserGetLoggedInUserError,
+  UserGetLoggedInUserResponse,
+  UserGetUserData,
+  UserGetUserError,
+  UserGetUserResponse,
+  UserUpdateRolesData,
+  UserUpdateRolesError,
+  UserUpdateRolesResponse,
+  UserResendInvitationData,
+  UserResendInvitationError,
+  UserResendInvitationResponse,
   WorkflowCreateWorkflowData,
   WorkflowCreateWorkflowError,
   WorkflowCreateWorkflowResponse,
@@ -143,6 +219,39 @@ import type {
   WorkflowUpdateWorkflowData,
   WorkflowUpdateWorkflowError,
   WorkflowUpdateWorkflowResponse,
+  WorkflowCredentialsGetWorkflowCredentialsData,
+  WorkflowCredentialsGetWorkflowCredentialsError,
+  WorkflowCredentialsGetWorkflowCredentialsResponse,
+  WorkflowCredentialsUpdateWorkflowCredentialsData,
+  WorkflowCredentialsUpdateWorkflowCredentialsError,
+  WorkflowCredentialsUpdateWorkflowCredentialsResponse,
+  WorkflowCredentialsDeleteWorkflowCredentialsData,
+  WorkflowCredentialsDeleteWorkflowCredentialsError,
+  WorkflowCredentialsDeleteWorkflowCredentialsResponse,
+  WorkflowExecutionStartWorkflowData,
+  WorkflowExecutionStartWorkflowError,
+  WorkflowExecutionStartWorkflowResponse,
+  WorkflowExecutionListWorkflowExecutionsData,
+  WorkflowExecutionListWorkflowExecutionsError,
+  WorkflowExecutionListWorkflowExecutionsResponse,
+  WorkflowExecutionStartArbitraryWorkflowData,
+  WorkflowExecutionStartArbitraryWorkflowError,
+  WorkflowExecutionStartArbitraryWorkflowResponse,
+  WorkflowExecutionGetWorkflowExecutionData,
+  WorkflowExecutionGetWorkflowExecutionError,
+  WorkflowExecutionGetWorkflowExecutionResponse,
+  WorkflowExecutionDeleteWorkflowExecutionData,
+  WorkflowExecutionDeleteWorkflowExecutionError,
+  WorkflowExecutionDeleteWorkflowExecutionResponse,
+  WorkflowExecutionGetWorkflowExecutionParamsData,
+  WorkflowExecutionGetWorkflowExecutionParamsError,
+  WorkflowExecutionGetWorkflowExecutionParamsResponse,
+  WorkflowExecutionCancelWorkflowExecutionData,
+  WorkflowExecutionCancelWorkflowExecutionError,
+  WorkflowExecutionCancelWorkflowExecutionResponse,
+  WorkflowModeGetWorkflowModeData,
+  WorkflowModeGetWorkflowModeError,
+  WorkflowModeGetWorkflowModeResponse,
   WorkflowVersionListWorkflowVersionData,
   WorkflowVersionListWorkflowVersionError,
   WorkflowVersionListWorkflowVersionResponse,
@@ -170,155 +279,10 @@ import type {
   WorkflowVersionDeleteWorkflowVersionIconData,
   WorkflowVersionDeleteWorkflowVersionIconError,
   WorkflowVersionDeleteWorkflowVersionIconResponse,
-  WorkflowExecutionStartWorkflowData,
-  WorkflowExecutionStartWorkflowError,
-  WorkflowExecutionStartWorkflowResponse,
-  WorkflowExecutionListWorkflowExecutionsData,
-  WorkflowExecutionListWorkflowExecutionsError,
-  WorkflowExecutionListWorkflowExecutionsResponse,
-  WorkflowExecutionStartArbitraryWorkflowData,
-  WorkflowExecutionStartArbitraryWorkflowError,
-  WorkflowExecutionStartArbitraryWorkflowResponse,
-  WorkflowExecutionGetWorkflowExecutionData,
-  WorkflowExecutionGetWorkflowExecutionError,
-  WorkflowExecutionGetWorkflowExecutionResponse,
-  WorkflowExecutionDeleteWorkflowExecutionData,
-  WorkflowExecutionDeleteWorkflowExecutionError,
-  WorkflowExecutionDeleteWorkflowExecutionResponse,
-  WorkflowExecutionGetWorkflowExecutionParamsData,
-  WorkflowExecutionGetWorkflowExecutionParamsError,
-  WorkflowExecutionGetWorkflowExecutionParamsResponse,
-  WorkflowExecutionCancelWorkflowExecutionData,
-  WorkflowExecutionCancelWorkflowExecutionError,
-  WorkflowExecutionCancelWorkflowExecutionResponse,
-  WorkflowCredentialsGetWorkflowCredentialsData,
-  WorkflowCredentialsGetWorkflowCredentialsError,
-  WorkflowCredentialsGetWorkflowCredentialsResponse,
-  WorkflowCredentialsUpdateWorkflowCredentialsData,
-  WorkflowCredentialsUpdateWorkflowCredentialsError,
-  WorkflowCredentialsUpdateWorkflowCredentialsResponse,
-  WorkflowCredentialsDeleteWorkflowCredentialsData,
-  WorkflowCredentialsDeleteWorkflowCredentialsError,
-  WorkflowCredentialsDeleteWorkflowCredentialsResponse,
-  WorkflowModeGetWorkflowModeData,
-  WorkflowModeGetWorkflowModeError,
-  WorkflowModeGetWorkflowModeResponse,
-  ResourceCreateResourceData,
-  ResourceCreateResourceError,
-  ResourceCreateResourceResponse,
-  ResourceListResourcesData,
-  ResourceListResourcesError,
-  ResourceListResourcesResponse,
-  ResourceListSyncRequestsError,
-  ResourceListSyncRequestsResponse,
-  ResourceListResourceOtrsData,
-  ResourceListResourceOtrsError,
-  ResourceListResourceOtrsResponse,
-  ResourceGetResourceData,
-  ResourceGetResourceError,
-  ResourceGetResourceResponse,
-  ResourceDeleteResourceData,
-  ResourceDeleteResourceError,
-  ResourceDeleteResourceResponse,
-  ResourceGetResourceOtrData,
-  ResourceGetResourceOtrError,
-  ResourceGetResourceOtrResponse,
-  ResourceCreateResourceOtrData,
-  ResourceCreateResourceOtrError,
-  ResourceCreateResourceOtrResponse,
-  ResourceAcceptResourceOtrData,
-  ResourceAcceptResourceOtrError,
-  ResourceAcceptResourceOtrResponse,
-  ResourceDeleteResourceOtrData,
-  ResourceDeleteResourceOtrError,
-  ResourceDeleteResourceOtrResponse,
-  ResourceVersionListResourceVersionsData,
-  ResourceVersionListResourceVersionsError,
-  ResourceVersionListResourceVersionsResponse,
-  ResourceVersionRequestResourceVersionData,
-  ResourceVersionRequestResourceVersionError,
-  ResourceVersionRequestResourceVersionResponse,
-  ResourceVersionGetResourceVersionData,
-  ResourceVersionGetResourceVersionError,
-  ResourceVersionGetResourceVersionResponse,
-  ResourceVersionResourceFileTreeData,
-  ResourceVersionResourceFileTreeError,
-  ResourceVersionResourceFileTreeResponse,
-  ResourceVersionRequestResourceVersionReviewData,
-  ResourceVersionRequestResourceVersionReviewError,
-  ResourceVersionRequestResourceVersionReviewResponse,
-  ResourceVersionRequestResourceVersionSyncData,
-  ResourceVersionRequestResourceVersionSyncError,
-  ResourceVersionRequestResourceVersionSyncResponse,
-  ResourceVersionResourceVersionReviewData,
-  ResourceVersionResourceVersionReviewError,
-  ResourceVersionResourceVersionReviewResponse,
-  ResourceVersionResourceVersionSyncData,
-  ResourceVersionResourceVersionSyncError,
-  ResourceVersionResourceVersionSyncResponse,
-  ResourceVersionResourceVersionLatestData,
-  ResourceVersionResourceVersionLatestError,
-  ResourceVersionResourceVersionLatestResponse,
-  ResourceVersionDeleteResourceVersionClusterData,
-  ResourceVersionDeleteResourceVersionClusterError,
-  ResourceVersionDeleteResourceVersionClusterResponse,
-  ResourceVersionDeleteResourceVersionS3Data,
-  ResourceVersionDeleteResourceVersionS3Error,
-  ResourceVersionDeleteResourceVersionS3Response,
 } from "./types.gen";
 
 export const client = createClient(createConfig());
 
-export class AuthService {
-  /**
-   * Kickstart the login flow
-   * Redirect route to OIDC provider to kickstart the login process.
-   */
-  public static authLogin<ThrowOnError extends boolean = false>(
-    options?: Options<AuthLoginData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).get<void, unknown, ThrowOnError>({
-      ...options,
-      url: "/auth/login",
-    });
-  }
-
-  /**
-   * LifeScience Login Callback
-   * Callback for the Life Science Identity Provider.
-   *
-   * Visit the route login route to start the login process.
-   *
-   * If the user is already known to the system, then a JWT token will be created and sent via the 'set-cookie' header.
-   * The key for this Cookie is 'bearer'.
-   *
-   * If the user is new, he will be created and then a JWT token is issued.
-   *
-   * This JWT has to be sent to all authorized endpoints via the HTTPBearer scheme.
-   */
-  public static authLoginCallback<ThrowOnError extends boolean = false>(
-    options: Options<AuthLoginCallbackData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).get<void, unknown, ThrowOnError>({
-      ...options,
-      url: "/auth/callback/{provider}",
-    });
-  }
-
-  /**
-   * Logout
-   * Logout the user from the system by deleting the bearer cookie.
-   */
-  public static authLogout<ThrowOnError extends boolean = false>(
-    options?: Options<unknown, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).get<void, unknown, ThrowOnError>({
-      ...options,
-      url: "/auth/logout",
-    });
-  }
-}
-
 export class ApiTokenService {
   /**
    * List API token
@@ -399,365 +363,202 @@ export class ApiTokenService {
   }
 }
 
-export class UserService {
+export class AuthService {
   /**
-   * Create User
-   * Create a new user in the system and notify him.
-   *
-   * Permission `user:create` required.
+   * Kickstart the login flow
+   * Redirect route to OIDC provider to kickstart the login process.
    */
-  public static userCreateUser<ThrowOnError extends boolean = false>(
-    options: Options<UserCreateUserData, ThrowOnError>,
+  public static authLogin<ThrowOnError extends boolean = false>(
+    options?: Options<AuthLoginData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).post<
-      UserCreateUserResponse,
-      UserCreateUserError,
-      ThrowOnError
-    >({
+    return (options?.client ?? client).get<void, unknown, ThrowOnError>({
       ...options,
-      url: "/users",
+      url: "/auth/login",
     });
   }
 
   /**
-   * List users and search by their name
-   * List all users in the system..
+   * LifeScience Login Callback
+   * Callback for the Life Science Identity Provider.
    *
-   * Permission `user:list` required.
+   * Visit the route login route to start the login process.
+   *
+   * If the user is already known to the system, then a JWT token will be created and sent via the 'set-cookie' header.
+   * The key for this Cookie is 'bearer'.
+   *
+   * If the user is new, he will be created and then a JWT token is issued.
+   *
+   * This JWT has to be sent to all authorized endpoints via the HTTPBearer scheme.
    */
-  public static userListUsers<ThrowOnError extends boolean = false>(
-    options?: Options<UserListUsersData, ThrowOnError>,
+  public static authLoginCallback<ThrowOnError extends boolean = false>(
+    options: Options<AuthLoginCallbackData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).get<
-      UserListUsersResponse,
-      UserListUsersError,
-      ThrowOnError
-    >({
+    return (options?.client ?? client).get<void, unknown, ThrowOnError>({
       ...options,
-      url: "/users",
+      url: "/auth/callback/{provider}",
     });
   }
 
   /**
-   * Search Users
-   * Search for users in the system by their name.
-   *
-   * Permission `user: search` required.
+   * Logout
+   * Logout the user from the system by deleting the bearer cookie.
    */
-  public static userSearchUsers<ThrowOnError extends boolean = false>(
-    options: Options<UserSearchUsersData, ThrowOnError>,
+  public static authLogout<ThrowOnError extends boolean = false>(
+    options?: Options<unknown, ThrowOnError>,
   ) {
-    return (options?.client ?? client).get<
-      UserSearchUsersResponse,
-      UserSearchUsersError,
-      ThrowOnError
-    >({
+    return (options?.client ?? client).get<void, unknown, ThrowOnError>({
       ...options,
-      url: "/users/search",
+      url: "/auth/logout",
     });
   }
+}
 
+export class BucketService {
   /**
-   * Get the logged in user
-   * Return the user associated with the used JWT.
+   * List buckets
+   * List all the buckets in the system or of the desired user where the user has permissions for.
    *
-   * Permission `user:read` required.
+   * Permission `bucket:list_all` required. See parameter `owner_id` for exception.
    */
-  public static userGetLoggedInUser<ThrowOnError extends boolean = false>(
-    options?: Options<unknown, ThrowOnError>,
+  public static bucketListBuckets<ThrowOnError extends boolean = false>(
+    options?: Options<BucketListBucketsData, ThrowOnError>,
   ) {
     return (options?.client ?? client).get<
-      UserGetLoggedInUserResponse,
-      UserGetLoggedInUserError,
+      BucketListBucketsResponse,
+      BucketListBucketsError,
       ThrowOnError
     >({
       ...options,
-      url: "/users/me",
+      url: "/buckets",
     });
   }
 
   /**
-   * Get a user by its uid
-   * Return the user with the specific uid.
+   * Create a bucket for the current user
+   * Create a bucket for the current user.
    *
-   * Permission `user:read` required.
+   * The name of the bucket has some constraints.
+   * For more information see the
+   * [Ceph documentation](https://docs.ceph.com/en/quincy/radosgw/s3/bucketops/#constraints)
+   *
+   * Permission `bucket:create` required.
    */
-  public static userGetUser<ThrowOnError extends boolean = false>(
-    options: Options<UserGetUserData, ThrowOnError>,
+  public static bucketCreateBucket<ThrowOnError extends boolean = false>(
+    options: Options<BucketCreateBucketData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).get<
-      UserGetUserResponse,
-      UserGetUserError,
+    return (options?.client ?? client).post<
+      BucketCreateBucketResponse,
+      BucketCreateBucketError,
       ThrowOnError
     >({
       ...options,
-      url: "/users/{uid}",
+      url: "/buckets",
     });
   }
 
   /**
-   * Update user roles
-   * Update the roles of a user.
+   * List bucket OTRs
+   * Get the ownership transfer requests for buckets.
    *
-   * Permission `user:update` required.
+   * Permission `bucket:list` required if `current_owner_id` or `new_owner_id` is the current users id,
+   * otherwise `bucket:list_all`
    */
-  public static userUpdateRoles<ThrowOnError extends boolean = false>(
-    options: Options<UserUpdateRolesData, ThrowOnError>,
+  public static bucketListBucketOtrs<ThrowOnError extends boolean = false>(
+    options?: Options<BucketListBucketOtrsData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).put<
-      UserUpdateRolesResponse,
-      UserUpdateRolesError,
+    return (options?.client ?? client).get<
+      BucketListBucketOtrsResponse,
+      BucketListBucketOtrsError,
       ThrowOnError
     >({
       ...options,
-      url: "/users/{uid}/roles",
+      url: "/buckets/ownership_transfer_request",
     });
   }
 
   /**
-   * Resend Invitation
-   * Resend the invitation link for an user that has an open invitation.
+   * Get a bucket by its name
+   * Get a bucket by its name if the current user has READ permissions for the bucket.
    *
-   * Permission `user:create` required.
+   * Permission `bucket:read` required if the current user is the owner of the bucket,
+   * otherwise `bucket:read_any` required.
    */
-  public static userResendInvitation<ThrowOnError extends boolean = false>(
-    options: Options<UserResendInvitationData, ThrowOnError>,
+  public static bucketGetBucket<ThrowOnError extends boolean = false>(
+    options: Options<BucketGetBucketData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).patch<
-      UserResendInvitationResponse,
-      UserResendInvitationError,
+    return (options?.client ?? client).get<
+      BucketGetBucketResponse,
+      BucketGetBucketError,
       ThrowOnError
     >({
       ...options,
-      url: "/users/{uid}/invitation",
+      url: "/buckets/{bucket_name}",
     });
   }
-}
 
-export class S3KeyService {
   /**
-   * Get the S3 Access keys from a user
-   * Get all the S3 Access keys for a specific user.
+   * Delete a bucket
+   * Delete a bucket by its name. Only the owner of the bucket can delete the bucket.
    *
-   * Permission `s3_key:list` required.
+   * Permission `bucket:delete` required if the current user is the owner of the bucket,
+   * otherwise `bucket:delete_any` required.
    */
-  public static s3KeyGetUserKeys<ThrowOnError extends boolean = false>(
-    options: Options<S3KeyGetUserKeysData, ThrowOnError>,
+  public static bucketDeleteBucket<ThrowOnError extends boolean = false>(
+    options: Options<BucketDeleteBucketData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).get<
-      S3KeyGetUserKeysResponse,
-      S3KeyGetUserKeysError,
+    return (options?.client ?? client).delete<
+      BucketDeleteBucketResponse,
+      BucketDeleteBucketError,
       ThrowOnError
     >({
       ...options,
-      url: "/users/{uid}/keys",
+      url: "/buckets/{bucket_name}",
     });
   }
 
   /**
-   * Create a Access key for a user
-   * Create a S3 Access key for a specific user.
+   * Get a bucket OTR
+   * Get a specific bucket ownership transfer request.
    *
-   * Permission `s3_key:create` required.
+   * Permission `bucket:read` required if the current user is the current or new owner of the bucket,
+   * otherwise `bucket:read_any` required.
    */
-  public static s3KeyCreateUserKey<ThrowOnError extends boolean = false>(
-    options: Options<S3KeyCreateUserKeyData, ThrowOnError>,
+  public static bucketGetBucketOtr<ThrowOnError extends boolean = false>(
+    options: Options<BucketGetBucketOtrData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).post<
-      S3KeyCreateUserKeyResponse,
-      S3KeyCreateUserKeyError,
+    return (options?.client ?? client).get<
+      BucketGetBucketOtrResponse,
+      BucketGetBucketOtrError,
       ThrowOnError
     >({
       ...options,
-      url: "/users/{uid}/keys",
+      url: "/buckets/{bucket_name}/ownership_transfer_request",
     });
   }
 
   /**
-   * Get a specific S3 Access key from a user
-   * Get a specific S3 Access Key for a specific user.
+   * Create a bucket OTR
+   * Create a ownership transfer request for a specific bucket.
    *
-   * Permission `s3_key:read` required.
+   * Permission `bucket:update` required if the current user is the current owner of the bucket,
+   * otherwise `bucket:update_any` required.
    */
-  public static s3KeyGetUserKey<ThrowOnError extends boolean = false>(
-    options: Options<S3KeyGetUserKeyData, ThrowOnError>,
+  public static bucketCreateBucketOtr<ThrowOnError extends boolean = false>(
+    options: Options<BucketCreateBucketOtrData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).get<
-      S3KeyGetUserKeyResponse,
-      S3KeyGetUserKeyError,
+    return (options?.client ?? client).post<
+      BucketCreateBucketOtrResponse,
+      BucketCreateBucketOtrError,
       ThrowOnError
     >({
       ...options,
-      url: "/users/{uid}/keys/{access_id}",
+      url: "/buckets/{bucket_name}/ownership_transfer_request",
     });
   }
 
   /**
-   * Delete a specific S3 Access key from a user
-   * Delete a specific S3 Access key for a specific user.
-   *
-   * Permission `s3_key:delete` required if the current user is the target, otherwise `s3_key:delete_any` required.
-   */
-  public static s3KeyDeleteUserKey<ThrowOnError extends boolean = false>(
-    options: Options<S3KeyDeleteUserKeyData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).delete<
-      S3KeyDeleteUserKeyResponse,
-      S3KeyDeleteUserKeyError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/users/{uid}/keys/{access_id}",
-    });
-  }
-}
-
-export class BucketService {
-  /**
-   * List buckets
-   * List all the buckets in the system or of the desired user where the user has permissions for.
-   *
-   * Permission `bucket:list_all` required. See parameter `owner_id` for exception.
-   */
-  public static bucketListBuckets<ThrowOnError extends boolean = false>(
-    options?: Options<BucketListBucketsData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).get<
-      BucketListBucketsResponse,
-      BucketListBucketsError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/buckets",
-    });
-  }
-
-  /**
-   * Create a bucket for the current user
-   * Create a bucket for the current user.
-   *
-   * The name of the bucket has some constraints.
-   * For more information see the
-   * [Ceph documentation](https://docs.ceph.com/en/quincy/radosgw/s3/bucketops/#constraints)
-   *
-   * Permission `bucket:create` required.
-   */
-  public static bucketCreateBucket<ThrowOnError extends boolean = false>(
-    options: Options<BucketCreateBucketData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).post<
-      BucketCreateBucketResponse,
-      BucketCreateBucketError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/buckets",
-    });
-  }
-
-  /**
-   * List bucket OTRs
-   * Get the ownership transfer requests for buckets.
-   *
-   * Permission `bucket:list` required if `current_owner_id` or `new_owner_id` is the current users id,
-   * otherwise `bucket:list_all`
-   */
-  public static bucketListBucketOtrs<ThrowOnError extends boolean = false>(
-    options?: Options<BucketListBucketOtrsData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).get<
-      BucketListBucketOtrsResponse,
-      BucketListBucketOtrsError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/buckets/ownership_transfer_request",
-    });
-  }
-
-  /**
-   * Get a bucket by its name
-   * Get a bucket by its name if the current user has READ permissions for the bucket.
-   *
-   * Permission `bucket:read` required if the current user is the owner of the bucket,
-   * otherwise `bucket:read_any` required.
-   */
-  public static bucketGetBucket<ThrowOnError extends boolean = false>(
-    options: Options<BucketGetBucketData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).get<
-      BucketGetBucketResponse,
-      BucketGetBucketError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/buckets/{bucket_name}",
-    });
-  }
-
-  /**
-   * Delete a bucket
-   * Delete a bucket by its name. Only the owner of the bucket can delete the bucket.
-   *
-   * Permission `bucket:delete` required if the current user is the owner of the bucket,
-   * otherwise `bucket:delete_any` required.
-   */
-  public static bucketDeleteBucket<ThrowOnError extends boolean = false>(
-    options: Options<BucketDeleteBucketData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).delete<
-      BucketDeleteBucketResponse,
-      BucketDeleteBucketError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/buckets/{bucket_name}",
-    });
-  }
-
-  /**
-   * Get a bucket OTR
-   * Get a specific bucket ownership transfer request.
-   *
-   * Permission `bucket:read` required if the current user is the current or new owner of the bucket,
-   * otherwise `bucket:read_any` required.
-   */
-  public static bucketGetBucketOtr<ThrowOnError extends boolean = false>(
-    options: Options<BucketGetBucketOtrData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).get<
-      BucketGetBucketOtrResponse,
-      BucketGetBucketOtrError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/buckets/{bucket_name}/ownership_transfer_request",
-    });
-  }
-
-  /**
-   * Create a bucket OTR
-   * Create a ownership transfer request for a specific bucket.
-   *
-   * Permission `bucket:update` required if the current user is the current owner of the bucket,
-   * otherwise `bucket:update_any` required.
-   */
-  public static bucketCreateBucketOtr<ThrowOnError extends boolean = false>(
-    options: Options<BucketCreateBucketOtrData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).post<
-      BucketCreateBucketOtrResponse,
-      BucketCreateBucketOtrError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/buckets/{bucket_name}/ownership_transfer_request",
-    });
-  }
-
-  /**
-   * Accept a bucket OTR
-   * Accept an ownership transfer request for a specific workflow.
+   * Accept a bucket OTR
+   * Accept an ownership transfer request for a specific workflow.
    *
    * Permission `bucket:update` required if the current user is the new owner of the workflow,
    * otherwise `bucket:update_any` required.
@@ -983,629 +784,984 @@ export class BucketPermissionService {
   }
 }
 
-export class WorkflowService {
+export class NewsService {
   /**
-   * Create a new workflow
-   * Create a new workflow.
-   *
-   * For private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.
+   * Create news
+   * Create a news event.
    *
-   * For private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.
-   *
-   * Permission `workflow:create` required.
+   * Permission `news:create` required.
    */
-  public static workflowCreateWorkflow<ThrowOnError extends boolean = false>(
-    options: Options<WorkflowCreateWorkflowData, ThrowOnError>,
+  public static newsCreateNews<ThrowOnError extends boolean = false>(
+    options: Options<NewsCreateNewsData, ThrowOnError>,
   ) {
     return (options?.client ?? client).post<
-      WorkflowCreateWorkflowResponse,
-      WorkflowCreateWorkflowError,
+      NewsCreateNewsResponse,
+      NewsCreateNewsError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows",
+      url: "/news",
     });
   }
 
   /**
-   * List workflows
-   * List all workflows.
+   * List news
+   * List all news events with filters.
    *
-   * Permission `workflow:list` required.
+   * This endpoint enforces keyset pagination. To iterate over all news, follow the link provided in the `Link` header.
+   * A missing `Link` header indicates that you iterated over all news with the current filters.
+   *
+   * Permission `news:list` required.
    */
-  public static workflowListWorkflows<ThrowOnError extends boolean = false>(
-    options?: Options<WorkflowListWorkflowsData, ThrowOnError>,
+  public static newsListNews<ThrowOnError extends boolean = false>(
+    options?: Options<NewsListNewsData, ThrowOnError>,
   ) {
     return (options?.client ?? client).get<
-      WorkflowListWorkflowsResponse,
-      WorkflowListWorkflowsError,
+      NewsListNewsResponse,
+      NewsListNewsError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows",
+      url: "/news",
     });
   }
 
   /**
-   * List workflow OTRs
-   * Get the ownership transfer requests for workflows.
+   * Get latest news
+   * List the current news events.
    *
-   * Permission `workflow:list` required if `current_owner_id` or `new_owner_id` is the current users id,
-   * otherwise `workflow:list_all`
+   * Permission `news:list` required.
    */
-  public static workflowListWorkflowOtrs<ThrowOnError extends boolean = false>(
-    options?: Options<WorkflowListWorkflowOtrsData, ThrowOnError>,
+  public static newsListLatestNews<ThrowOnError extends boolean = false>(
+    options?: Options<unknown, ThrowOnError>,
   ) {
     return (options?.client ?? client).get<
-      WorkflowListWorkflowOtrsResponse,
-      WorkflowListWorkflowOtrsError,
+      NewsListLatestNewsResponse,
+      NewsListLatestNewsError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/ownership_transfer_request",
+      url: "/news/latest",
     });
   }
 
   /**
-   * Get anonymized workflow execution
-   * Get the workflow executions with meta information and anonymized user IDs.
+   * Get a specific news
+   * Get a specified news event.
    *
-   * Permission `workflow:read` required if the `developer_id` is the same as the uid of the current user,
-   * other `workflow:read_any`.
+   * Permission `news:read` required.
    */
-  public static workflowGetDeveloperWorkflowStatistics<
-    ThrowOnError extends boolean = false,
-  >(
-    options?: Options<WorkflowGetDeveloperWorkflowStatisticsData, ThrowOnError>,
+  public static newsGetNews<ThrowOnError extends boolean = false>(
+    options: Options<NewsGetNewsData, ThrowOnError>,
   ) {
     return (options?.client ?? client).get<
-      WorkflowGetDeveloperWorkflowStatisticsResponse,
-      WorkflowGetDeveloperWorkflowStatisticsError,
+      NewsGetNewsResponse,
+      NewsGetNewsError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/developer_statistics",
+      url: "/news/{nid}",
     });
   }
 
   /**
-   * Get a workflow
-   * Get a specific workflow.
+   * Delete a specific news
+   * Delete a specified news event.
    *
-   * Permission `workflow:read` required.
+   * Permission `news:delete` required.
    */
-  public static workflowGetWorkflow<ThrowOnError extends boolean = false>(
-    options: Options<WorkflowGetWorkflowData, ThrowOnError>,
+  public static newsDeleteNews<ThrowOnError extends boolean = false>(
+    options: Options<NewsDeleteNewsData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).get<
-      WorkflowGetWorkflowResponse,
-      WorkflowGetWorkflowError,
+    return (options?.client ?? client).delete<
+      NewsDeleteNewsResponse,
+      NewsDeleteNewsError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}",
+      url: "/news/{nid}",
     });
   }
+}
 
+export class ResourceService {
   /**
-   * Delete a workflow
-   * Delete a workflow.
+   * Request a new resource
+   * Request a new resources.
    *
-   * Permission `workflow:delete` required if the `developer_id` is the same as the uid of the current user,
-   * other `workflow:delete_any`.
+   * Permission `resource:create` required.
    */
-  public static workflowDeleteWorkflow<ThrowOnError extends boolean = false>(
-    options: Options<WorkflowDeleteWorkflowData, ThrowOnError>,
+  public static resourceCreateResource<ThrowOnError extends boolean = false>(
+    options: Options<ResourceCreateResourceData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).delete<
-      WorkflowDeleteWorkflowResponse,
-      WorkflowDeleteWorkflowError,
+    return (options?.client ?? client).post<
+      ResourceCreateResourceResponse,
+      ResourceCreateResourceError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}",
+      url: "/resources",
     });
   }
 
   /**
-   * Get a workflow OTR
-   * Get a specific workflow ownership transfer request.
+   * List resources
+   * List all resources.
    *
-   * Permission `workflow:read` required if current user is the current or new owner of the workflow,
-   * otherwise `workflow:read_any` required.
+   * Permission `resource:list` required.
    */
-  public static workflowGetWorkflowOtr<ThrowOnError extends boolean = false>(
-    options: Options<WorkflowGetWorkflowOtrData, ThrowOnError>,
+  public static resourceListResources<ThrowOnError extends boolean = false>(
+    options?: Options<ResourceListResourcesData, ThrowOnError>,
   ) {
     return (options?.client ?? client).get<
-      WorkflowGetWorkflowOtrResponse,
-      WorkflowGetWorkflowOtrError,
+      ResourceListResourcesResponse,
+      ResourceListResourcesError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/ownership_transfer_request",
+      url: "/resources",
     });
   }
 
   /**
-   * Create a workflow OTR
-   * Create a ownership transfer request for a specific workflow.
+   * List resource sync requests
+   * List all resource sync requests.
    *
-   * Permission `workflow:update` required if the current user is the current owner of the workflow,
-   * otherwise `workflow:update_any` required.
+   * Permission `resource:update_any` required.
    */
-  public static workflowCreateWorkflowOtr<ThrowOnError extends boolean = false>(
-    options: Options<WorkflowCreateWorkflowOtrData, ThrowOnError>,
+  public static resourceListSyncRequests<ThrowOnError extends boolean = false>(
+    options?: Options<unknown, ThrowOnError>,
   ) {
-    return (options?.client ?? client).post<
-      WorkflowCreateWorkflowOtrResponse,
-      WorkflowCreateWorkflowOtrError,
+    return (options?.client ?? client).get<
+      ResourceListSyncRequestsResponse,
+      ResourceListSyncRequestsError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/ownership_transfer_request",
+      url: "/resources/sync_requests",
     });
   }
 
   /**
-   * Accept a workflow OTR
-   * Accept an ownership transfer request for a specific workflow.
+   * List resource OTRs
+   * Get the ownership transfer requests for resources.
    *
-   * Permission `workflow:update` required if the current user is the new owner of the workflow,
-   * otherwise `workflow:update_any` required.
+   * Permission `resource:list` required if `current_owner_id` or `new_owner_id` is the current users id,
+   * otherwise `resource:list_all`
    */
-  public static workflowAcceptWorkflowOtr<ThrowOnError extends boolean = false>(
-    options: Options<WorkflowAcceptWorkflowOtrData, ThrowOnError>,
+  public static resourceListResourceOtrs<ThrowOnError extends boolean = false>(
+    options?: Options<ResourceListResourceOtrsData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).patch<
-      WorkflowAcceptWorkflowOtrResponse,
-      WorkflowAcceptWorkflowOtrError,
+    return (options?.client ?? client).get<
+      ResourceListResourceOtrsResponse,
+      ResourceListResourceOtrsError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/ownership_transfer_request",
+      url: "/resources/ownership_transfer_request",
     });
   }
 
   /**
-   * Delete a workflow OTR
-   * Delete/Reject a workflow ownership transfer request.
+   * Get a resource
+   * Get a specific resource.
    *
-   * Permission `workflow:update` required if current user is the current or new owner of the workflow,
-   * otherwise `workflow:update_any` required.
+   * Permission `resource:read` required.
    */
-  public static workflowDeleteWorkflowOtr<ThrowOnError extends boolean = false>(
-    options: Options<WorkflowDeleteWorkflowOtrData, ThrowOnError>,
+  public static resourceGetResource<ThrowOnError extends boolean = false>(
+    options: Options<ResourceGetResourceData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).delete<
-      WorkflowDeleteWorkflowOtrResponse,
-      WorkflowDeleteWorkflowOtrError,
+    return (options?.client ?? client).get<
+      ResourceGetResourceResponse,
+      ResourceGetResourceError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/ownership_transfer_request",
+      url: "/resources/{rid}",
     });
   }
 
   /**
-   * Get statistics for a workflow
-   * Get the number of started workflow per day.
+   * Delete a resource
+   * Delete a resources.
    *
-   * Permission `workflow:read` required.
+   * Permission `resource:delete` required.
    */
-  public static workflowGetWorkflowStatistics<
-    ThrowOnError extends boolean = false,
-  >(options: Options<WorkflowGetWorkflowStatisticsData, ThrowOnError>) {
-    return (options?.client ?? client).get<
-      WorkflowGetWorkflowStatisticsResponse,
-      WorkflowGetWorkflowStatisticsError,
+  public static resourceDeleteResource<ThrowOnError extends boolean = false>(
+    options: Options<ResourceDeleteResourceData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).delete<
+      ResourceDeleteResourceResponse,
+      ResourceDeleteResourceError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/statistics",
+      url: "/resources/{rid}",
     });
   }
 
   /**
-   * Update a workflow
-   * Create a new workflow version.
+   * Get a resource OTR
+   * Get a specific resource ownership transfer request.
    *
-   * Permission `workflow:update` required.
+   * Permission `resource:read` required if the current user is the current or new owner of the resource,
+   * otherwise `resource:read_any` required.
    */
-  public static workflowUpdateWorkflow<ThrowOnError extends boolean = false>(
-    options: Options<WorkflowUpdateWorkflowData, ThrowOnError>,
+  public static resourceGetResourceOtr<ThrowOnError extends boolean = false>(
+    options: Options<ResourceGetResourceOtrData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).post<
-      WorkflowUpdateWorkflowResponse,
-      WorkflowUpdateWorkflowError,
+    return (options?.client ?? client).get<
+      ResourceGetResourceOtrResponse,
+      ResourceGetResourceOtrError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/update",
+      url: "/resources/{rid}/ownership_transfer_request",
     });
   }
-}
 
-export class WorkflowVersionService {
   /**
-   * Get all versions of a workflow
-   * List all versions of a Workflow.
+   * Create a resource OTR
+   * Create a ownership transfer request for a specific resource.
    *
-   * Permission `workflow:list` required.
+   * Permission `resource:update` required if the current user is the current owner of the resource,
+   * otherwise `resource:update_any` required.
    */
-  public static workflowVersionListWorkflowVersion<
-    ThrowOnError extends boolean = false,
-  >(options: Options<WorkflowVersionListWorkflowVersionData, ThrowOnError>) {
-    return (options?.client ?? client).get<
-      WorkflowVersionListWorkflowVersionResponse,
-      WorkflowVersionListWorkflowVersionError,
+  public static resourceCreateResourceOtr<ThrowOnError extends boolean = false>(
+    options: Options<ResourceCreateResourceOtrData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).post<
+      ResourceCreateResourceOtrResponse,
+      ResourceCreateResourceOtrError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/versions",
+      url: "/resources/{rid}/ownership_transfer_request",
     });
   }
 
   /**
-   * Get a workflow version
-   * Get a specific version of a workflow.
+   * Accept a resource OTR
+   * Accept an ownership transfer request for a specific resource.
    *
-   * Permission `workflow:read` required if the version is public or you are the developer of the workflow,
-   * otherwise `workflow:read_any`
+   * Permission `resource:update` required if the current user is the new owner of the resource,
+   * otherwise `resource:update_any` required.
    */
-  public static workflowVersionGetWorkflowVersion<
-    ThrowOnError extends boolean = false,
-  >(options: Options<WorkflowVersionGetWorkflowVersionData, ThrowOnError>) {
-    return (options?.client ?? client).get<
-      WorkflowVersionGetWorkflowVersionResponse,
-      WorkflowVersionGetWorkflowVersionError,
+  public static resourceAcceptResourceOtr<ThrowOnError extends boolean = false>(
+    options: Options<ResourceAcceptResourceOtrData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).patch<
+      ResourceAcceptResourceOtrResponse,
+      ResourceAcceptResourceOtrError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/versions/{git_commit_hash}",
+      url: "/resources/{rid}/ownership_transfer_request",
     });
   }
 
   /**
-   * Update status of workflow version
-   * Update the status of a workflow version.
+   * Delete a resource OTR
+   * Delete/Reject a resource ownership transfer request.
    *
-   * Permission `workflow:update_status`
+   * Permission `resource:update` required if the current user is the current or new owner of the resource,
+   * otherwise `resource:update_any` required.
    */
-  public static workflowVersionUpdateWorkflowVersionStatus<
-    ThrowOnError extends boolean = false,
-  >(
-    options: Options<
-      WorkflowVersionUpdateWorkflowVersionStatusData,
-      ThrowOnError
-    >,
+  public static resourceDeleteResourceOtr<ThrowOnError extends boolean = false>(
+    options: Options<ResourceDeleteResourceOtrData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).patch<
-      WorkflowVersionUpdateWorkflowVersionStatusResponse,
-      WorkflowVersionUpdateWorkflowVersionStatusError,
+    return (options?.client ?? client).delete<
+      ResourceDeleteResourceOtrResponse,
+      ResourceDeleteResourceOtrError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/versions/{git_commit_hash}/status",
+      url: "/resources/{rid}/ownership_transfer_request",
     });
   }
+}
 
+export class ResourceVersionService {
   /**
-   * Deprecate a workflow version
-   * Deprecate a workflow version.
+   * List versions of a resource
+   * List all the resource version for a specific resource.
    *
-   * Permission `workflow:update` required if you are the developer of the workflow,
-   * otherwise `workflow:update_status`
+   * Permission 'resource:read' required.
    */
-  public static workflowVersionDeprecateWorkflowVersion<
+  public static resourceVersionListResourceVersions<
     ThrowOnError extends boolean = false,
-  >(
-    options: Options<WorkflowVersionDeprecateWorkflowVersionData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).patch<
-      WorkflowVersionDeprecateWorkflowVersionResponse,
-      WorkflowVersionDeprecateWorkflowVersionError,
+  >(options: Options<ResourceVersionListResourceVersionsData, ThrowOnError>) {
+    return (options?.client ?? client).get<
+      ResourceVersionListResourceVersionsResponse,
+      ResourceVersionListResourceVersionsError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/versions/{git_commit_hash}/deprecate",
+      url: "/resources/{rid}/versions",
     });
   }
 
   /**
-   * Update parameter extension of workflow version
-   * Update the parameter extension of a workflow version.
+   * Request new version of a resource
+   * Request a new resource version.
    *
-   * Permission `workflow:update` required.
+   * Permission `resource:update` required if the current user is the maintainer, `resource:update_any` otherwise.
    */
-  public static workflowVersionUpdateWorkflowVersionParameterExtension<
+  public static resourceVersionRequestResourceVersion<
     ThrowOnError extends boolean = false,
-  >(
-    options: Options<
-      WorkflowVersionUpdateWorkflowVersionParameterExtensionData,
-      ThrowOnError
-    >,
-  ) {
-    return (options?.client ?? client).patch<
-      WorkflowVersionUpdateWorkflowVersionParameterExtensionResponse,
-      WorkflowVersionUpdateWorkflowVersionParameterExtensionError,
+  >(options: Options<ResourceVersionRequestResourceVersionData, ThrowOnError>) {
+    return (options?.client ?? client).post<
+      ResourceVersionRequestResourceVersionResponse,
+      ResourceVersionRequestResourceVersionError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/versions/{git_commit_hash}/parameter-extension",
+      url: "/resources/{rid}/versions",
     });
   }
 
   /**
-   * Delete parameter extension of workflow version
-   * Delete the parameter extension of a workflow version.
+   * Get version of a resource
+   * Get a specific resource version for a specific resource.
    *
-   * Permission `workflow:update` required.
+   * Permission `resource:read` required. If the status of the resource version is not `LATEST` or `SYNCHRONIZED` and
+   * the current user is not the maintainer, then the permission `resource:read_any` is required.
    */
-  public static workflowVersionDeleteWorkflowVersionParameterExtension<
+  public static resourceVersionGetResourceVersion<
     ThrowOnError extends boolean = false,
-  >(
-    options: Options<
-      WorkflowVersionDeleteWorkflowVersionParameterExtensionData,
-      ThrowOnError
-    >,
-  ) {
-    return (options?.client ?? client).delete<
-      WorkflowVersionDeleteWorkflowVersionParameterExtensionResponse,
-      WorkflowVersionDeleteWorkflowVersionParameterExtensionError,
+  >(options: Options<ResourceVersionGetResourceVersionData, ThrowOnError>) {
+    return (options?.client ?? client).get<
+      ResourceVersionGetResourceVersionResponse,
+      ResourceVersionGetResourceVersionError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/versions/{git_commit_hash}/parameter-extension",
+      url: "/resources/{rid}/versions/{rvid}",
     });
   }
 
   /**
-   * Fetch documentation for a workflow version
-   * Get the documentation for a specific workflow version.
-   * Streams the response directly from the right git repository.
+   * Download folder structure of resource
+   * Get the folder structure of the resources. Only available if the resource was previously downloaded to the cluster.
    *
-   * Permission `workflow:read` required.
+   * Permission `resource:read` required.
    */
-  public static workflowVersionDownloadWorkflowDocumentation<
+  public static resourceVersionResourceFileTree<
     ThrowOnError extends boolean = false,
-  >(
-    options: Options<
-      WorkflowVersionDownloadWorkflowDocumentationData,
-      ThrowOnError
-    >,
-  ) {
+  >(options: Options<ResourceVersionResourceFileTreeData, ThrowOnError>) {
     return (options?.client ?? client).get<
-      WorkflowVersionDownloadWorkflowDocumentationResponse,
-      WorkflowVersionDownloadWorkflowDocumentationError,
+      ResourceVersionResourceFileTreeResponse,
+      ResourceVersionResourceFileTreeError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/versions/{git_commit_hash}/documentation",
+      url: "/resources/{rid}/versions/{rvid}/tree",
     });
   }
 
   /**
-   * Upload icon for workflow version
-   * Upload an icon for the workflow version and returns the new icon URL.
+   * Request resource version review
+   * Request the review of a resource version.
    *
-   * Permission `workflow:update` required.
+   * Permission `resource:update` required.
    */
-  public static workflowVersionUploadWorkflowVersionIcon<
+  public static resourceVersionRequestResourceVersionReview<
     ThrowOnError extends boolean = false,
   >(
     options: Options<
-      WorkflowVersionUploadWorkflowVersionIconData,
+      ResourceVersionRequestResourceVersionReviewData,
       ThrowOnError
     >,
   ) {
-    return (options?.client ?? client).post<
-      WorkflowVersionUploadWorkflowVersionIconResponse,
-      WorkflowVersionUploadWorkflowVersionIconError,
+    return (options?.client ?? client).put<
+      ResourceVersionRequestResourceVersionReviewResponse,
+      ResourceVersionRequestResourceVersionReviewError,
       ThrowOnError
     >({
       ...options,
-      ...formDataBodySerializer,
-      headers: {
-        "Content-Type": null,
-        ...options?.headers,
-      },
-      url: "/workflows/{wid}/versions/{git_commit_hash}/icon",
+      url: "/resources/{rid}/versions/{rvid}/request_review",
     });
   }
 
   /**
-   * Delete icon of workflow version
-   * Delete the icon of the workflow version.
+   * Request resource version synchronization
+   * Request the synchronization of a resource version to the cluster.
    *
-   * Permission `workflow:update` required.
+   * Permission `resource:request_sync` required.
    */
-  public static workflowVersionDeleteWorkflowVersionIcon<
+  public static resourceVersionRequestResourceVersionSync<
     ThrowOnError extends boolean = false,
   >(
     options: Options<
-      WorkflowVersionDeleteWorkflowVersionIconData,
+      ResourceVersionRequestResourceVersionSyncData,
       ThrowOnError
     >,
   ) {
-    return (options?.client ?? client).delete<
-      WorkflowVersionDeleteWorkflowVersionIconResponse,
-      WorkflowVersionDeleteWorkflowVersionIconError,
+    return (options?.client ?? client).put<
+      ResourceVersionRequestResourceVersionSyncResponse,
+      ResourceVersionRequestResourceVersionSyncError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflows/{wid}/versions/{git_commit_hash}/icon",
+      url: "/resources/{rid}/versions/{rvid}/request_sync",
     });
   }
-}
 
-export class WorkflowExecutionService {
   /**
-   * Start a new workflow execution
-   * Start a new workflow execution. Workflow versions wit status `DEPRECATED` or `DENIED` can't be started.
+   * Review resource version
+   * Review answer the resource version.
    *
-   * Permission `workflow_execution:create` required if workflow versions status is `PUBLISHED`,
-   * otherwise `workflow_execution:create_any` required.
+   * Permission `resource:update_status` required.
    */
-  public static workflowExecutionStartWorkflow<
+  public static resourceVersionResourceVersionReview<
     ThrowOnError extends boolean = false,
-  >(options: Options<WorkflowExecutionStartWorkflowData, ThrowOnError>) {
-    return (options?.client ?? client).post<
-      WorkflowExecutionStartWorkflowResponse,
-      WorkflowExecutionStartWorkflowError,
+  >(options: Options<ResourceVersionResourceVersionReviewData, ThrowOnError>) {
+    return (options?.client ?? client).put<
+      ResourceVersionResourceVersionReviewResponse,
+      ResourceVersionResourceVersionReviewError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflow_executions",
+      url: "/resources/{rid}/versions/{rvid}/review",
     });
   }
 
   /**
-   * Get all workflow executions
-   * Get all workflow executions.
+   * Synchronize resource version with cluster
+   * Synchronize the resource version to the cluster.
    *
-   * This endpoint enforces keyset pagination. To iterate over all workflow executions, follow the link provided in the
-   * `Link` header.
-   * A missing `Link` header indicates that you iterated over all workflow executions with the current filters.
+   * Permission `resource:update_any` required.
+   */
+  public static resourceVersionResourceVersionSync<
+    ThrowOnError extends boolean = false,
+  >(options: Options<ResourceVersionResourceVersionSyncData, ThrowOnError>) {
+    return (options?.client ?? client).put<
+      ResourceVersionResourceVersionSyncResponse,
+      ResourceVersionResourceVersionSyncError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/resources/{rid}/versions/{rvid}/sync",
+    });
+  }
+
+  /**
+   * Set resource version to latest
+   * Set the resource version as the latest version.
    *
-   * Permission `workflow_execution:list` required, if `executor_id` is the same as the current user,
-   * otherwise `workflow_execution:list_all` required.
+   * Permission `resource:update_any` required.
    */
-  public static workflowExecutionListWorkflowExecutions<
+  public static resourceVersionResourceVersionLatest<
+    ThrowOnError extends boolean = false,
+  >(options: Options<ResourceVersionResourceVersionLatestData, ThrowOnError>) {
+    return (options?.client ?? client).put<
+      ResourceVersionResourceVersionLatestResponse,
+      ResourceVersionResourceVersionLatestError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/resources/{rid}/versions/{rvid}/latest",
+    });
+  }
+
+  /**
+   * Delete resource version on cluster
+   * Delete the resource version on the cluster.
+   *
+   * Permission `resource:delete_any` required.
+   */
+  public static resourceVersionDeleteResourceVersionCluster<
     ThrowOnError extends boolean = false,
   >(
-    options?: Options<
-      WorkflowExecutionListWorkflowExecutionsData,
+    options: Options<
+      ResourceVersionDeleteResourceVersionClusterData,
       ThrowOnError
     >,
   ) {
-    return (options?.client ?? client).get<
-      WorkflowExecutionListWorkflowExecutionsResponse,
-      WorkflowExecutionListWorkflowExecutionsError,
+    return (options?.client ?? client).delete<
+      ResourceVersionDeleteResourceVersionClusterResponse,
+      ResourceVersionDeleteResourceVersionClusterError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflow_executions",
+      url: "/resources/{rid}/versions/{rvid}/cluster",
     });
   }
 
   /**
-   * Start a workflow execution with arbitrary git repository
-   * Start a new workflow execution from an arbitrary git repository.
-   *
-   * For private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.
-   *
-   * For private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.
+   * Delete resource version in S3
+   * Delete the resource version in the S3 bucket.
    *
-   * Permission `workflow:create` required.
+   * Permission `resource:delete_any` required.
    */
-  public static workflowExecutionStartArbitraryWorkflow<
+  public static resourceVersionDeleteResourceVersionS3<
     ThrowOnError extends boolean = false,
   >(
-    options: Options<WorkflowExecutionStartArbitraryWorkflowData, ThrowOnError>,
+    options: Options<ResourceVersionDeleteResourceVersionS3Data, ThrowOnError>,
   ) {
-    return (options?.client ?? client).post<
-      WorkflowExecutionStartArbitraryWorkflowResponse,
-      WorkflowExecutionStartArbitraryWorkflowError,
+    return (options?.client ?? client).delete<
+      ResourceVersionDeleteResourceVersionS3Response,
+      ResourceVersionDeleteResourceVersionS3Error,
       ThrowOnError
     >({
       ...options,
-      url: "/workflow_executions/arbitrary",
+      url: "/resources/{rid}/versions/{rvid}/s3",
     });
   }
+}
 
+export class S3KeyService {
   /**
-   * Get a workflow execution
-   * Get a specific workflow execution.
+   * Get the S3 Access keys from a user
+   * Get all the S3 Access keys for a specific user.
    *
-   * Permission `workflow_execution:read` required if the current user started the workflow execution,
-   * otherwise `workflow_execution:read_any` required.
+   * Permission `s3_key:list` required.
    */
-  public static workflowExecutionGetWorkflowExecution<
-    ThrowOnError extends boolean = false,
-  >(options: Options<WorkflowExecutionGetWorkflowExecutionData, ThrowOnError>) {
+  public static s3KeyGetUserKeys<ThrowOnError extends boolean = false>(
+    options: Options<S3KeyGetUserKeysData, ThrowOnError>,
+  ) {
     return (options?.client ?? client).get<
-      WorkflowExecutionGetWorkflowExecutionResponse,
-      WorkflowExecutionGetWorkflowExecutionError,
+      S3KeyGetUserKeysResponse,
+      S3KeyGetUserKeysError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflow_executions/{eid}",
+      url: "/users/{uid}/keys",
     });
   }
 
   /**
-   * Delete a workflow execution
-   * Delete a specific workflow execution.
+   * Create a Access key for a user
+   * Create a S3 Access key for a specific user.
    *
-   * Permission `workflow_execution:delete` required if the current user started the workflow execution,
-   * otherwise `workflow_execution:delete_any` required.
+   * Permission `s3_key:create` required.
    */
-  public static workflowExecutionDeleteWorkflowExecution<
-    ThrowOnError extends boolean = false,
-  >(
-    options: Options<
-      WorkflowExecutionDeleteWorkflowExecutionData,
+  public static s3KeyCreateUserKey<ThrowOnError extends boolean = false>(
+    options: Options<S3KeyCreateUserKeyData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).post<
+      S3KeyCreateUserKeyResponse,
+      S3KeyCreateUserKeyError,
       ThrowOnError
-    >,
+    >({
+      ...options,
+      url: "/users/{uid}/keys",
+    });
+  }
+
+  /**
+   * Get a specific S3 Access key from a user
+   * Get a specific S3 Access Key for a specific user.
+   *
+   * Permission `s3_key:read` required.
+   */
+  public static s3KeyGetUserKey<ThrowOnError extends boolean = false>(
+    options: Options<S3KeyGetUserKeyData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).get<
+      S3KeyGetUserKeyResponse,
+      S3KeyGetUserKeyError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/users/{uid}/keys/{access_id}",
+    });
+  }
+
+  /**
+   * Delete a specific S3 Access key from a user
+   * Delete a specific S3 Access key for a specific user.
+   *
+   * Permission `s3_key:delete` required if the current user is the target, otherwise `s3_key:delete_any` required.
+   */
+  public static s3KeyDeleteUserKey<ThrowOnError extends boolean = false>(
+    options: Options<S3KeyDeleteUserKeyData, ThrowOnError>,
   ) {
     return (options?.client ?? client).delete<
-      WorkflowExecutionDeleteWorkflowExecutionResponse,
-      WorkflowExecutionDeleteWorkflowExecutionError,
+      S3KeyDeleteUserKeyResponse,
+      S3KeyDeleteUserKeyError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/users/{uid}/keys/{access_id}",
+    });
+  }
+}
+
+export class UserService {
+  /**
+   * Create User
+   * Create a new user in the system and notify him.
+   *
+   * Permission `user:create` required.
+   */
+  public static userCreateUser<ThrowOnError extends boolean = false>(
+    options: Options<UserCreateUserData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).post<
+      UserCreateUserResponse,
+      UserCreateUserError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/users",
+    });
+  }
+
+  /**
+   * List users and search by their name
+   * List all users in the system..
+   *
+   * Permission `user:list` required.
+   */
+  public static userListUsers<ThrowOnError extends boolean = false>(
+    options?: Options<UserListUsersData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).get<
+      UserListUsersResponse,
+      UserListUsersError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/users",
+    });
+  }
+
+  /**
+   * Search Users
+   * Search for users in the system by their name.
+   *
+   * Permission `user: search` required.
+   */
+  public static userSearchUsers<ThrowOnError extends boolean = false>(
+    options: Options<UserSearchUsersData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).get<
+      UserSearchUsersResponse,
+      UserSearchUsersError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/users/search",
+    });
+  }
+
+  /**
+   * Get the logged in user
+   * Return the user associated with the used JWT.
+   *
+   * Permission `user:read` required.
+   */
+  public static userGetLoggedInUser<ThrowOnError extends boolean = false>(
+    options?: Options<unknown, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).get<
+      UserGetLoggedInUserResponse,
+      UserGetLoggedInUserError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/users/me",
+    });
+  }
+
+  /**
+   * Get a user by its uid
+   * Return the user with the specific uid.
+   *
+   * Permission `user:read` required.
+   */
+  public static userGetUser<ThrowOnError extends boolean = false>(
+    options: Options<UserGetUserData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).get<
+      UserGetUserResponse,
+      UserGetUserError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/users/{uid}",
+    });
+  }
+
+  /**
+   * Update user roles
+   * Update the roles of a user.
+   *
+   * Permission `user:update` required.
+   */
+  public static userUpdateRoles<ThrowOnError extends boolean = false>(
+    options: Options<UserUpdateRolesData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).put<
+      UserUpdateRolesResponse,
+      UserUpdateRolesError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/users/{uid}/roles",
+    });
+  }
+
+  /**
+   * Resend Invitation
+   * Resend the invitation link for an user that has an open invitation.
+   *
+   * Permission `user:create` required.
+   */
+  public static userResendInvitation<ThrowOnError extends boolean = false>(
+    options: Options<UserResendInvitationData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).patch<
+      UserResendInvitationResponse,
+      UserResendInvitationError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/users/{uid}/invitation",
+    });
+  }
+}
+
+export class WorkflowService {
+  /**
+   * Create a new workflow
+   * Create a new workflow.
+   *
+   * For private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.
+   *
+   * For private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.
+   *
+   * Permission `workflow:create` required.
+   */
+  public static workflowCreateWorkflow<ThrowOnError extends boolean = false>(
+    options: Options<WorkflowCreateWorkflowData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).post<
+      WorkflowCreateWorkflowResponse,
+      WorkflowCreateWorkflowError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows",
+    });
+  }
+
+  /**
+   * List workflows
+   * List all workflows.
+   *
+   * Permission `workflow:list` required.
+   */
+  public static workflowListWorkflows<ThrowOnError extends boolean = false>(
+    options?: Options<WorkflowListWorkflowsData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).get<
+      WorkflowListWorkflowsResponse,
+      WorkflowListWorkflowsError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows",
+    });
+  }
+
+  /**
+   * List workflow OTRs
+   * Get the ownership transfer requests for workflows.
+   *
+   * Permission `workflow:list` required if `current_owner_id` or `new_owner_id` is the current users id,
+   * otherwise `workflow:list_all`
+   */
+  public static workflowListWorkflowOtrs<ThrowOnError extends boolean = false>(
+    options?: Options<WorkflowListWorkflowOtrsData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).get<
+      WorkflowListWorkflowOtrsResponse,
+      WorkflowListWorkflowOtrsError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows/ownership_transfer_request",
+    });
+  }
+
+  /**
+   * Get anonymized workflow execution
+   * Get the workflow executions with meta information and anonymized user IDs.
+   *
+   * Permission `workflow:read` required if the `developer_id` is the same as the uid of the current user,
+   * other `workflow:read_any`.
+   */
+  public static workflowGetDeveloperWorkflowStatistics<
+    ThrowOnError extends boolean = false,
+  >(
+    options?: Options<WorkflowGetDeveloperWorkflowStatisticsData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).get<
+      WorkflowGetDeveloperWorkflowStatisticsResponse,
+      WorkflowGetDeveloperWorkflowStatisticsError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows/developer_statistics",
+    });
+  }
+
+  /**
+   * Get a workflow
+   * Get a specific workflow.
+   *
+   * Permission `workflow:read` required.
+   */
+  public static workflowGetWorkflow<ThrowOnError extends boolean = false>(
+    options: Options<WorkflowGetWorkflowData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).get<
+      WorkflowGetWorkflowResponse,
+      WorkflowGetWorkflowError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows/{wid}",
+    });
+  }
+
+  /**
+   * Delete a workflow
+   * Delete a workflow.
+   *
+   * Permission `workflow:delete` required if the `developer_id` is the same as the uid of the current user,
+   * other `workflow:delete_any`.
+   */
+  public static workflowDeleteWorkflow<ThrowOnError extends boolean = false>(
+    options: Options<WorkflowDeleteWorkflowData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).delete<
+      WorkflowDeleteWorkflowResponse,
+      WorkflowDeleteWorkflowError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows/{wid}",
+    });
+  }
+
+  /**
+   * Get a workflow OTR
+   * Get a specific workflow ownership transfer request.
+   *
+   * Permission `workflow:read` required if current user is the current or new owner of the workflow,
+   * otherwise `workflow:read_any` required.
+   */
+  public static workflowGetWorkflowOtr<ThrowOnError extends boolean = false>(
+    options: Options<WorkflowGetWorkflowOtrData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).get<
+      WorkflowGetWorkflowOtrResponse,
+      WorkflowGetWorkflowOtrError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows/{wid}/ownership_transfer_request",
+    });
+  }
+
+  /**
+   * Create a workflow OTR
+   * Create a ownership transfer request for a specific workflow.
+   *
+   * Permission `workflow:update` required if the current user is the current owner of the workflow,
+   * otherwise `workflow:update_any` required.
+   */
+  public static workflowCreateWorkflowOtr<ThrowOnError extends boolean = false>(
+    options: Options<WorkflowCreateWorkflowOtrData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).post<
+      WorkflowCreateWorkflowOtrResponse,
+      WorkflowCreateWorkflowOtrError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows/{wid}/ownership_transfer_request",
+    });
+  }
+
+  /**
+   * Accept a workflow OTR
+   * Accept an ownership transfer request for a specific workflow.
+   *
+   * Permission `workflow:update` required if the current user is the new owner of the workflow,
+   * otherwise `workflow:update_any` required.
+   */
+  public static workflowAcceptWorkflowOtr<ThrowOnError extends boolean = false>(
+    options: Options<WorkflowAcceptWorkflowOtrData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).patch<
+      WorkflowAcceptWorkflowOtrResponse,
+      WorkflowAcceptWorkflowOtrError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows/{wid}/ownership_transfer_request",
+    });
+  }
+
+  /**
+   * Delete a workflow OTR
+   * Delete/Reject a workflow ownership transfer request.
+   *
+   * Permission `workflow:update` required if current user is the current or new owner of the workflow,
+   * otherwise `workflow:update_any` required.
+   */
+  public static workflowDeleteWorkflowOtr<ThrowOnError extends boolean = false>(
+    options: Options<WorkflowDeleteWorkflowOtrData, ThrowOnError>,
+  ) {
+    return (options?.client ?? client).delete<
+      WorkflowDeleteWorkflowOtrResponse,
+      WorkflowDeleteWorkflowOtrError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflow_executions/{eid}",
+      url: "/workflows/{wid}/ownership_transfer_request",
     });
   }
 
   /**
-   * Get the parameters of a workflow execution
-   * Get the parameters of a specific workflow execution.
+   * Get statistics for a workflow
+   * Get the number of started workflow per day.
    *
-   * Permission `workflow_execution:read` required if the current user started the workflow execution,
-   * otherwise `workflow_execution:read_any` required.
+   * Permission `workflow:read` required.
    */
-  public static workflowExecutionGetWorkflowExecutionParams<
+  public static workflowGetWorkflowStatistics<
     ThrowOnError extends boolean = false,
-  >(
-    options: Options<
-      WorkflowExecutionGetWorkflowExecutionParamsData,
-      ThrowOnError
-    >,
-  ) {
+  >(options: Options<WorkflowGetWorkflowStatisticsData, ThrowOnError>) {
     return (options?.client ?? client).get<
-      WorkflowExecutionGetWorkflowExecutionParamsResponse,
-      WorkflowExecutionGetWorkflowExecutionParamsError,
+      WorkflowGetWorkflowStatisticsResponse,
+      WorkflowGetWorkflowStatisticsError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflow_executions/{eid}/params",
+      url: "/workflows/{wid}/statistics",
     });
   }
 
   /**
-   * Cancel a workflow execution
-   * Cancel a running workflow execution.
+   * Update a workflow
+   * Create a new workflow version.
    *
-   * Permission `workflow_execution:cancel` required if the current user started the workflow execution,
-   * otherwise `workflow_execution:cancel_any` required.
+   * Permission `workflow:update` required.
    */
-  public static workflowExecutionCancelWorkflowExecution<
-    ThrowOnError extends boolean = false,
-  >(
-    options: Options<
-      WorkflowExecutionCancelWorkflowExecutionData,
-      ThrowOnError
-    >,
+  public static workflowUpdateWorkflow<ThrowOnError extends boolean = false>(
+    options: Options<WorkflowUpdateWorkflowData, ThrowOnError>,
   ) {
     return (options?.client ?? client).post<
-      WorkflowExecutionCancelWorkflowExecutionResponse,
-      WorkflowExecutionCancelWorkflowExecutionError,
+      WorkflowUpdateWorkflowResponse,
+      WorkflowUpdateWorkflowError,
       ThrowOnError
     >({
       ...options,
-      url: "/workflow_executions/{eid}/cancel",
+      url: "/workflows/{wid}/update",
     });
   }
 }
@@ -1685,449 +1841,407 @@ export class WorkflowCredentialsService {
   }
 }
 
-export class WorkflowModeService {
+export class WorkflowExecutionService {
   /**
-   * Get workflow mode
-   * Get a workflow mode
+   * Start a new workflow execution
+   * Start a new workflow execution. Workflow versions wit status `DEPRECATED` or `DENIED` can't be started.
    *
-   * Permission `workflow:read` required
+   * Permission `workflow_execution:create` required if workflow versions status is `PUBLISHED`,
+   * otherwise `workflow_execution:create_any` required.
    */
-  public static workflowModeGetWorkflowMode<
+  public static workflowExecutionStartWorkflow<
     ThrowOnError extends boolean = false,
-  >(options: Options<WorkflowModeGetWorkflowModeData, ThrowOnError>) {
-    return (options?.client ?? client).get<
-      WorkflowModeGetWorkflowModeResponse,
-      WorkflowModeGetWorkflowModeError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/workflow_modes/{mode_id}",
-    });
-  }
-}
-
-export class ResourceService {
-  /**
-   * Request a new resource
-   * Request a new resources.
-   *
-   * Permission `resource:create` required.
-   */
-  public static resourceCreateResource<ThrowOnError extends boolean = false>(
-    options: Options<ResourceCreateResourceData, ThrowOnError>,
-  ) {
+  >(options: Options<WorkflowExecutionStartWorkflowData, ThrowOnError>) {
     return (options?.client ?? client).post<
-      ResourceCreateResourceResponse,
-      ResourceCreateResourceError,
+      WorkflowExecutionStartWorkflowResponse,
+      WorkflowExecutionStartWorkflowError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources",
+      url: "/workflow_executions",
     });
   }
 
   /**
-   * List resources
-   * List all resources.
+   * List all workflow executions
+   * Get all workflow executions.
    *
-   * Permission `resource:list` required.
-   */
-  public static resourceListResources<ThrowOnError extends boolean = false>(
-    options?: Options<ResourceListResourcesData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).get<
-      ResourceListResourcesResponse,
-      ResourceListResourcesError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/resources",
-    });
-  }
-
-  /**
-   * List resource sync requests
-   * List all resource sync requests.
+   * This endpoint enforces keyset pagination. To iterate over all workflow executions, follow the link provided in the
+   * `Link` header.
+   * A missing `Link` header indicates that you iterated over all workflow executions with the current filters.
    *
-   * Permission `resource:update_any` required.
+   * Permission `workflow_execution:list` required, if `executor_id` is the same as the current user,
+   * otherwise `workflow_execution:list_all` required.
    */
-  public static resourceListSyncRequests<ThrowOnError extends boolean = false>(
-    options?: Options<unknown, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).get<
-      ResourceListSyncRequestsResponse,
-      ResourceListSyncRequestsError,
+  public static workflowExecutionListWorkflowExecutions<
+    ThrowOnError extends boolean = false,
+  >(
+    options?: Options<
+      WorkflowExecutionListWorkflowExecutionsData,
       ThrowOnError
-    >({
-      ...options,
-      url: "/resources/sync_requests",
-    });
-  }
-
-  /**
-   * List resource OTRs
-   * Get the ownership transfer requests for resources.
-   *
-   * Permission `resource:list` required if `current_owner_id` or `new_owner_id` is the current users id,
-   * otherwise `resource:list_all`
-   */
-  public static resourceListResourceOtrs<ThrowOnError extends boolean = false>(
-    options?: Options<ResourceListResourceOtrsData, ThrowOnError>,
+    >,
   ) {
     return (options?.client ?? client).get<
-      ResourceListResourceOtrsResponse,
-      ResourceListResourceOtrsError,
+      WorkflowExecutionListWorkflowExecutionsResponse,
+      WorkflowExecutionListWorkflowExecutionsError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/ownership_transfer_request",
+      url: "/workflow_executions",
     });
   }
 
   /**
-   * Get a resource
-   * Get a specific resource.
+   * Start a workflow execution with arbitrary git repository
+   * Start a new workflow execution from an arbitrary git repository.
    *
-   * Permission `resource:read` required.
-   */
-  public static resourceGetResource<ThrowOnError extends boolean = false>(
-    options: Options<ResourceGetResourceData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).get<
-      ResourceGetResourceResponse,
-      ResourceGetResourceError,
-      ThrowOnError
-    >({
-      ...options,
-      url: "/resources/{rid}",
-    });
-  }
-
-  /**
-   * Delete a resource
-   * Delete a resources.
+   * For private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.
    *
-   * Permission `resource:delete` required.
+   * For private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.
+   *
+   * Permission `workflow:create` required.
    */
-  public static resourceDeleteResource<ThrowOnError extends boolean = false>(
-    options: Options<ResourceDeleteResourceData, ThrowOnError>,
+  public static workflowExecutionStartArbitraryWorkflow<
+    ThrowOnError extends boolean = false,
+  >(
+    options: Options<WorkflowExecutionStartArbitraryWorkflowData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).delete<
-      ResourceDeleteResourceResponse,
-      ResourceDeleteResourceError,
+    return (options?.client ?? client).post<
+      WorkflowExecutionStartArbitraryWorkflowResponse,
+      WorkflowExecutionStartArbitraryWorkflowError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}",
+      url: "/workflow_executions/arbitrary",
     });
   }
 
   /**
-   * Get a resource OTR
-   * Get a specific resource ownership transfer request.
+   * Get a workflow execution
+   * Get a specific workflow execution.
    *
-   * Permission `resource:read` required if the current user is the current or new owner of the resource,
-   * otherwise `resource:read_any` required.
+   * Permission `workflow_execution:read` required if the current user started the workflow execution,
+   * otherwise `workflow_execution:read_any` required.
    */
-  public static resourceGetResourceOtr<ThrowOnError extends boolean = false>(
-    options: Options<ResourceGetResourceOtrData, ThrowOnError>,
-  ) {
+  public static workflowExecutionGetWorkflowExecution<
+    ThrowOnError extends boolean = false,
+  >(options: Options<WorkflowExecutionGetWorkflowExecutionData, ThrowOnError>) {
     return (options?.client ?? client).get<
-      ResourceGetResourceOtrResponse,
-      ResourceGetResourceOtrError,
+      WorkflowExecutionGetWorkflowExecutionResponse,
+      WorkflowExecutionGetWorkflowExecutionError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/ownership_transfer_request",
+      url: "/workflow_executions/{eid}",
     });
   }
 
   /**
-   * Create a resource OTR
-   * Create a ownership transfer request for a specific resource.
+   * Delete a workflow execution
+   * Delete a specific workflow execution.
    *
-   * Permission `resource:update` required if the current user is the current owner of the resource,
-   * otherwise `resource:update_any` required.
+   * Permission `workflow_execution:delete` required if the current user started the workflow execution,
+   * otherwise `workflow_execution:delete_any` required.
    */
-  public static resourceCreateResourceOtr<ThrowOnError extends boolean = false>(
-    options: Options<ResourceCreateResourceOtrData, ThrowOnError>,
-  ) {
-    return (options?.client ?? client).post<
-      ResourceCreateResourceOtrResponse,
-      ResourceCreateResourceOtrError,
+  public static workflowExecutionDeleteWorkflowExecution<
+    ThrowOnError extends boolean = false,
+  >(
+    options: Options<
+      WorkflowExecutionDeleteWorkflowExecutionData,
       ThrowOnError
-    >({
-      ...options,
-      url: "/resources/{rid}/ownership_transfer_request",
-    });
-  }
-
-  /**
-   * Accept a resource OTR
-   * Accept an ownership transfer request for a specific resource.
-   *
-   * Permission `resource:update` required if the current user is the new owner of the resource,
-   * otherwise `resource:update_any` required.
-   */
-  public static resourceAcceptResourceOtr<ThrowOnError extends boolean = false>(
-    options: Options<ResourceAcceptResourceOtrData, ThrowOnError>,
+    >,
   ) {
-    return (options?.client ?? client).patch<
-      ResourceAcceptResourceOtrResponse,
-      ResourceAcceptResourceOtrError,
+    return (options?.client ?? client).delete<
+      WorkflowExecutionDeleteWorkflowExecutionResponse,
+      WorkflowExecutionDeleteWorkflowExecutionError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/ownership_transfer_request",
+      url: "/workflow_executions/{eid}",
     });
   }
 
   /**
-   * Delete a resource OTR
-   * Delete/Reject a resource ownership transfer request.
+   * Get the parameters of a workflow execution
+   * Get the parameters of a specific workflow execution.
    *
-   * Permission `resource:update` required if the current user is the current or new owner of the resource,
-   * otherwise `resource:update_any` required.
+   * Permission `workflow_execution:read` required if the current user started the workflow execution,
+   * otherwise `workflow_execution:read_any` required.
    */
-  public static resourceDeleteResourceOtr<ThrowOnError extends boolean = false>(
-    options: Options<ResourceDeleteResourceOtrData, ThrowOnError>,
+  public static workflowExecutionGetWorkflowExecutionParams<
+    ThrowOnError extends boolean = false,
+  >(
+    options: Options<
+      WorkflowExecutionGetWorkflowExecutionParamsData,
+      ThrowOnError
+    >,
   ) {
-    return (options?.client ?? client).delete<
-      ResourceDeleteResourceOtrResponse,
-      ResourceDeleteResourceOtrError,
+    return (options?.client ?? client).get<
+      WorkflowExecutionGetWorkflowExecutionParamsResponse,
+      WorkflowExecutionGetWorkflowExecutionParamsError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/ownership_transfer_request",
+      url: "/workflow_executions/{eid}/params",
     });
   }
-}
 
-export class ResourceVersionService {
   /**
-   * List versions of a resource
-   * List all the resource version for a specific resource.
+   * Cancel a workflow execution
+   * Cancel a running workflow execution.
    *
-   * Permission 'resource:read' required.
+   * Permission `workflow_execution:cancel` required if the current user started the workflow execution,
+   * otherwise `workflow_execution:cancel_any` required.
    */
-  public static resourceVersionListResourceVersions<
+  public static workflowExecutionCancelWorkflowExecution<
     ThrowOnError extends boolean = false,
-  >(options: Options<ResourceVersionListResourceVersionsData, ThrowOnError>) {
-    return (options?.client ?? client).get<
-      ResourceVersionListResourceVersionsResponse,
-      ResourceVersionListResourceVersionsError,
+  >(
+    options: Options<
+      WorkflowExecutionCancelWorkflowExecutionData,
+      ThrowOnError
+    >,
+  ) {
+    return (options?.client ?? client).post<
+      WorkflowExecutionCancelWorkflowExecutionResponse,
+      WorkflowExecutionCancelWorkflowExecutionError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions",
+      url: "/workflow_executions/{eid}/cancel",
     });
   }
+}
 
+export class WorkflowModeService {
   /**
-   * Request new version of a resource
-   * Request a new resource version.
+   * Get workflow mode
+   * Get a workflow mode
    *
-   * Permission `resource:update` required if the current user is the maintainer, `resource:update_any` otherwise.
+   * Permission `workflow:read` required
    */
-  public static resourceVersionRequestResourceVersion<
+  public static workflowModeGetWorkflowMode<
     ThrowOnError extends boolean = false,
-  >(options: Options<ResourceVersionRequestResourceVersionData, ThrowOnError>) {
-    return (options?.client ?? client).post<
-      ResourceVersionRequestResourceVersionResponse,
-      ResourceVersionRequestResourceVersionError,
+  >(options: Options<WorkflowModeGetWorkflowModeData, ThrowOnError>) {
+    return (options?.client ?? client).get<
+      WorkflowModeGetWorkflowModeResponse,
+      WorkflowModeGetWorkflowModeError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions",
+      url: "/workflow_modes/{mode_id}",
     });
   }
+}
 
+export class WorkflowVersionService {
   /**
-   * Get version of a resource
-   * Get a specific resource version for a specific resource.
+   * Get all versions of a workflow
+   * List all versions of a Workflow.
    *
-   * Permission `resource:read` required. If the status of the resource version is not `LATEST` or `SYNCHRONIZED` and
-   * the current user is not the maintainer, then the permission `resource:read_any` is required.
+   * Permission `workflow:list` required.
    */
-  public static resourceVersionGetResourceVersion<
+  public static workflowVersionListWorkflowVersion<
     ThrowOnError extends boolean = false,
-  >(options: Options<ResourceVersionGetResourceVersionData, ThrowOnError>) {
+  >(options: Options<WorkflowVersionListWorkflowVersionData, ThrowOnError>) {
     return (options?.client ?? client).get<
-      ResourceVersionGetResourceVersionResponse,
-      ResourceVersionGetResourceVersionError,
+      WorkflowVersionListWorkflowVersionResponse,
+      WorkflowVersionListWorkflowVersionError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions/{rvid}",
+      url: "/workflows/{wid}/versions",
     });
   }
 
   /**
-   * Download folder structure of resource
-   * Get the folder structure of the resources. Only available if the resource was previously downloaded to the cluster.
+   * Get a workflow version
+   * Get a specific version of a workflow.
    *
-   * Permission `resource:read` required.
+   * Permission `workflow:read` required if the version is public or you are the developer of the workflow,
+   * otherwise `workflow:read_any`
    */
-  public static resourceVersionResourceFileTree<
+  public static workflowVersionGetWorkflowVersion<
     ThrowOnError extends boolean = false,
-  >(options: Options<ResourceVersionResourceFileTreeData, ThrowOnError>) {
+  >(options: Options<WorkflowVersionGetWorkflowVersionData, ThrowOnError>) {
     return (options?.client ?? client).get<
-      ResourceVersionResourceFileTreeResponse,
-      ResourceVersionResourceFileTreeError,
+      WorkflowVersionGetWorkflowVersionResponse,
+      WorkflowVersionGetWorkflowVersionError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions/{rvid}/tree",
+      url: "/workflows/{wid}/versions/{git_commit_hash}",
     });
   }
 
   /**
-   * Request resource version review
-   * Request the review of a resource version.
+   * Update status of workflow version
+   * Update the status of a workflow version.
    *
-   * Permission `resource:update` required.
+   * Permission `workflow:update_status`
    */
-  public static resourceVersionRequestResourceVersionReview<
+  public static workflowVersionUpdateWorkflowVersionStatus<
     ThrowOnError extends boolean = false,
   >(
     options: Options<
-      ResourceVersionRequestResourceVersionReviewData,
+      WorkflowVersionUpdateWorkflowVersionStatusData,
       ThrowOnError
     >,
   ) {
-    return (options?.client ?? client).put<
-      ResourceVersionRequestResourceVersionReviewResponse,
-      ResourceVersionRequestResourceVersionReviewError,
+    return (options?.client ?? client).patch<
+      WorkflowVersionUpdateWorkflowVersionStatusResponse,
+      WorkflowVersionUpdateWorkflowVersionStatusError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions/{rvid}/request_review",
+      url: "/workflows/{wid}/versions/{git_commit_hash}/status",
     });
   }
 
   /**
-   * Request resource version synchronization
-   * Request the synchronization of a resource version to the cluster.
+   * Deprecate a workflow version
+   * Deprecate a workflow version.
    *
-   * Permission `resource:request_sync` required.
+   * Permission `workflow:update` required if you are the developer of the workflow,
+   * otherwise `workflow:update_status`
    */
-  public static resourceVersionRequestResourceVersionSync<
+  public static workflowVersionDeprecateWorkflowVersion<
     ThrowOnError extends boolean = false,
   >(
-    options: Options<
-      ResourceVersionRequestResourceVersionSyncData,
-      ThrowOnError
-    >,
+    options: Options<WorkflowVersionDeprecateWorkflowVersionData, ThrowOnError>,
   ) {
-    return (options?.client ?? client).put<
-      ResourceVersionRequestResourceVersionSyncResponse,
-      ResourceVersionRequestResourceVersionSyncError,
+    return (options?.client ?? client).patch<
+      WorkflowVersionDeprecateWorkflowVersionResponse,
+      WorkflowVersionDeprecateWorkflowVersionError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions/{rvid}/request_sync",
+      url: "/workflows/{wid}/versions/{git_commit_hash}/deprecate",
     });
   }
 
   /**
-   * Review resource version
-   * Review answer the resource version.
+   * Update parameter extension of workflow version
+   * Update the parameter extension of a workflow version.
    *
-   * Permission `resource:update_status` required.
+   * Permission `workflow:update` required.
    */
-  public static resourceVersionResourceVersionReview<
+  public static workflowVersionUpdateWorkflowVersionParameterExtension<
     ThrowOnError extends boolean = false,
-  >(options: Options<ResourceVersionResourceVersionReviewData, ThrowOnError>) {
-    return (options?.client ?? client).put<
-      ResourceVersionResourceVersionReviewResponse,
-      ResourceVersionResourceVersionReviewError,
+  >(
+    options: Options<
+      WorkflowVersionUpdateWorkflowVersionParameterExtensionData,
+      ThrowOnError
+    >,
+  ) {
+    return (options?.client ?? client).patch<
+      WorkflowVersionUpdateWorkflowVersionParameterExtensionResponse,
+      WorkflowVersionUpdateWorkflowVersionParameterExtensionError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions/{rvid}/review",
+      url: "/workflows/{wid}/versions/{git_commit_hash}/parameter-extension",
     });
   }
 
   /**
-   * Synchronize resource version with cluster
-   * Synchronize the resource version to the cluster.
+   * Delete parameter extension of workflow version
+   * Delete the parameter extension of a workflow version.
    *
-   * Permission `resource:update_any` required.
+   * Permission `workflow:update` required.
    */
-  public static resourceVersionResourceVersionSync<
+  public static workflowVersionDeleteWorkflowVersionParameterExtension<
     ThrowOnError extends boolean = false,
-  >(options: Options<ResourceVersionResourceVersionSyncData, ThrowOnError>) {
-    return (options?.client ?? client).put<
-      ResourceVersionResourceVersionSyncResponse,
-      ResourceVersionResourceVersionSyncError,
+  >(
+    options: Options<
+      WorkflowVersionDeleteWorkflowVersionParameterExtensionData,
+      ThrowOnError
+    >,
+  ) {
+    return (options?.client ?? client).delete<
+      WorkflowVersionDeleteWorkflowVersionParameterExtensionResponse,
+      WorkflowVersionDeleteWorkflowVersionParameterExtensionError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions/{rvid}/sync",
+      url: "/workflows/{wid}/versions/{git_commit_hash}/parameter-extension",
     });
   }
 
   /**
-   * Set resource version to latest
-   * Set the resource version as the latest version.
+   * Fetch documentation for a workflow version
+   * Get the documentation for a specific workflow version.
+   * Streams the response directly from the right git repository.
    *
-   * Permission `resource:update_any` required.
+   * Permission `workflow:read` required.
    */
-  public static resourceVersionResourceVersionLatest<
+  public static workflowVersionDownloadWorkflowDocumentation<
     ThrowOnError extends boolean = false,
-  >(options: Options<ResourceVersionResourceVersionLatestData, ThrowOnError>) {
-    return (options?.client ?? client).put<
-      ResourceVersionResourceVersionLatestResponse,
-      ResourceVersionResourceVersionLatestError,
+  >(
+    options: Options<
+      WorkflowVersionDownloadWorkflowDocumentationData,
+      ThrowOnError
+    >,
+  ) {
+    return (options?.client ?? client).get<
+      WorkflowVersionDownloadWorkflowDocumentationResponse,
+      WorkflowVersionDownloadWorkflowDocumentationError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions/{rvid}/latest",
+      url: "/workflows/{wid}/versions/{git_commit_hash}/documentation",
     });
   }
 
   /**
-   * Delete resource version on cluster
-   * Delete the resource version on the cluster.
+   * Upload icon for workflow version
+   * Upload an icon for the workflow version and returns the new icon URL.
    *
-   * Permission `resource:delete_any` required.
+   * Permission `workflow:update` required.
    */
-  public static resourceVersionDeleteResourceVersionCluster<
+  public static workflowVersionUploadWorkflowVersionIcon<
     ThrowOnError extends boolean = false,
   >(
     options: Options<
-      ResourceVersionDeleteResourceVersionClusterData,
+      WorkflowVersionUploadWorkflowVersionIconData,
       ThrowOnError
     >,
   ) {
-    return (options?.client ?? client).delete<
-      ResourceVersionDeleteResourceVersionClusterResponse,
-      ResourceVersionDeleteResourceVersionClusterError,
+    return (options?.client ?? client).post<
+      WorkflowVersionUploadWorkflowVersionIconResponse,
+      WorkflowVersionUploadWorkflowVersionIconError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions/{rvid}/cluster",
+      ...formDataBodySerializer,
+      headers: {
+        "Content-Type": null,
+        ...options?.headers,
+      },
+      url: "/workflows/{wid}/versions/{git_commit_hash}/icon",
     });
   }
 
   /**
-   * Delete resource version in S3
-   * Delete the resource version in the S3 bucket.
+   * Delete icon of workflow version
+   * Delete the icon of the workflow version.
    *
-   * Permission `resource:delete_any` required.
+   * Permission `workflow:update` required.
    */
-  public static resourceVersionDeleteResourceVersionS3<
+  public static workflowVersionDeleteWorkflowVersionIcon<
     ThrowOnError extends boolean = false,
   >(
-    options: Options<ResourceVersionDeleteResourceVersionS3Data, ThrowOnError>,
+    options: Options<
+      WorkflowVersionDeleteWorkflowVersionIconData,
+      ThrowOnError
+    >,
   ) {
     return (options?.client ?? client).delete<
-      ResourceVersionDeleteResourceVersionS3Response,
-      ResourceVersionDeleteResourceVersionS3Error,
+      WorkflowVersionDeleteWorkflowVersionIconResponse,
+      WorkflowVersionDeleteWorkflowVersionIconError,
       ThrowOnError
     >({
       ...options,
-      url: "/resources/{rid}/versions/{rvid}/s3",
+      url: "/workflows/{wid}/versions/{git_commit_hash}/icon",
     });
   }
 }
diff --git a/src/client/types.gen.ts b/src/client/types.gen.ts
index b3835a4585c11c4c63bccc1d70873d2011467489..5b778e384de375536e68886c01aacabcb6ee23d8 100644
--- a/src/client/types.gen.ts
+++ b/src/client/types.gen.ts
@@ -47,7 +47,7 @@ export type ApiTokenIn = {
   /**
    * List of scopes this Api token has
    */
-  scopes: Array<ScopeEnum>;
+  scopes: Array<"read" | "write">;
 };
 
 export type ApiTokenOut = {
@@ -62,7 +62,7 @@ export type ApiTokenOut = {
   /**
    * List of scopes this Api token has
    */
-  scopes: Array<ScopeEnum>;
+  scopes: Array<"read" | "write">;
   /**
    * The ID of the token
    */
@@ -93,7 +93,7 @@ export type ApiTokenPrivateOut = {
   /**
    * List of scopes this Api token has
    */
-  scopes: Array<ScopeEnum>;
+  scopes: Array<"read" | "write">;
   /**
    * The ID of the token
    */
@@ -118,7 +118,7 @@ export type ApiTokenPrivateOut = {
 
 export type Body_Bucket_update_bucket_public_state = {
   /**
-   * New State
+   * New public state
    */
   public: boolean;
 };
@@ -165,7 +165,7 @@ export type BucketOut = {
    */
   description: string;
   /**
-   * Time when the bucket was created as UNIX timestamp
+   * UNIX timestamp when the bucket was created
    */
   created_at: number;
   /**
@@ -192,9 +192,9 @@ export type BucketPermissionIn = {
    */
   file_prefix?: string | null;
   /**
-   * Permission
+   * Scopes of the bucket permission
    */
-  permission?: Permission | "READ" | "WRITE" | "READWRITE";
+  scopes: Array<"read" | "write">;
   /**
    * UID of the grantee
    */
@@ -222,9 +222,9 @@ export type BucketPermissionOut = {
    */
   file_prefix?: string | null;
   /**
-   * Permission
+   * Scopes of the bucket permission
    */
-  permission?: Permission | "READ" | "WRITE" | "READWRITE";
+  scopes: Array<"read" | "write">;
   /**
    * UID of the grantee
    */
@@ -252,9 +252,9 @@ export type BucketPermissionParameters = {
    */
   file_prefix?: string | null;
   /**
-   * Permission
+   * Scopes of the bucket permission
    */
-  permission?: Permission | "READ" | "WRITE" | "READWRITE";
+  scopes: Array<"read" | "write">;
 };
 
 /**
@@ -369,6 +369,65 @@ export type IconUpdateOut = {
   icon_url: string;
 };
 
+export type NewsIn = {
+  /**
+   * Content of the news. Can contain Markdown.
+   */
+  content: string;
+  /**
+   * Title of the news
+   */
+  title: string;
+  /**
+   * UNIX timestamp till the news is important.
+   */
+  important_till?: number | null;
+  /**
+   * Category of the news event
+   */
+  category?: "workflow" | "resource" | "system";
+};
+
+/**
+ * Category of the news event
+ */
+export enum category {
+  WORKFLOW = "workflow",
+  RESOURCE = "resource",
+  SYSTEM = "system",
+}
+
+export type NewsOut = {
+  /**
+   * Content of the news. Can contain Markdown.
+   */
+  content: string;
+  /**
+   * Title of the news
+   */
+  title: string;
+  /**
+   * UNIX timestamp till the news is important.
+   */
+  important_till?: number | null;
+  /**
+   * Category of the news event
+   */
+  category: "workflow" | "resource" | "system";
+  /**
+   * ID of the news event
+   */
+  news_id: string;
+  /**
+   * ID of the creator
+   */
+  creator_id?: string | null;
+  /**
+   * UNIX timestamp when the bucket was created
+   */
+  created_at: number;
+};
+
 export enum NextflowVersion {
   _22_10_0 = "22.10.0",
   _22_10_1 = "22.10.1",
@@ -469,15 +528,6 @@ export type ParameterExtension = {
   };
 };
 
-/**
- * Enumeration for the possible permission on a bucket.
- */
-export enum Permission {
-  READ = "READ",
-  WRITE = "WRITE",
-  READWRITE = "READWRITE",
-}
-
 /**
  * Status of a bucket permission. Can be either `ACTIVE` or `INACTIVE`. A permission can only get `INACTIVE` if the
  * permission itself has a time limit and the current time is not in the timespan.
@@ -630,11 +680,6 @@ export type S3Key = {
   secret_key: string;
 };
 
-export enum ScopeEnum {
-  READ = "read",
-  WRITE = "write",
-}
-
 export type UserIn = {
   /**
    * Full Name of the user
@@ -1042,35 +1087,12 @@ export type WorkflowVersionStatusSchema = {
   status: WorkflowVersionStatus;
 };
 
-export type AuthLoginData = {
-  query?: {
-    /**
-     * Unique token to validate an invitation
-     */
-    invitation_token?: string;
-    /**
-     * Will be appended to redirect response in the callback route as URL query parameter `next`
-     */
-    next?: string;
-    /**
-     * The OIDC provider to use for login
-     */
-    provider?: OIDCProvider;
-  };
-};
-
-export type AuthLoginCallbackData = {
-  path: {
-    provider: OIDCProvider;
-  };
-};
-
 export type ApiTokenListTokenData = {
   query?: {
     /**
      * UID of the user to filter for. Permission `api_token:list` required if current users is the target.
      */
-    uid?: string;
+    uid?: string | null;
   };
 };
 
@@ -1112,148 +1134,29 @@ export type ApiTokenDeleteTokenResponse = void;
 
 export type ApiTokenDeleteTokenError = ErrorDetail | HTTPValidationError;
 
-export type UserCreateUserData = {
-  body: UserIn;
-};
-
-export type UserCreateUserResponse = UserOutExtended;
-
-export type UserCreateUserError = ErrorDetail | HTTPValidationError;
-
-export type UserListUsersData = {
+export type AuthLoginData = {
   query?: {
     /**
-     * Filter users by their role. If multiple are selected, they are concatenating by an OR Expression.
-     */
-    filter_roles?: Array<RoleEnum>;
-    /**
-     * Filter users by a substring in their name.
-     */
-    name_substring?: string;
-  };
-};
-
-export type UserListUsersResponse = Array<UserOutExtended>;
-
-export type UserListUsersError = ErrorDetail | HTTPValidationError;
-
-export type UserSearchUsersData = {
-  query: {
-    /**
-     * Filter users by a substring in their name.
-     */
-    name_substring: string;
-  };
-};
-
-export type UserSearchUsersResponse = Array<UserOut>;
-
-export type UserSearchUsersError = ErrorDetail | HTTPValidationError;
-
-export type UserGetLoggedInUserResponse = UserOutExtended;
-
-export type UserGetLoggedInUserError = ErrorDetail;
-
-export type UserGetUserData = {
-  path: {
-    /**
-     * UID of a user
-     */
-    uid: string;
-  };
-};
-
-export type UserGetUserResponse = UserOut;
-
-export type UserGetUserError = ErrorDetail | HTTPValidationError;
-
-export type UserUpdateRolesData = {
-  body: UserRoles;
-  path: {
-    /**
-     * UID of a user
-     */
-    uid: string;
-  };
-};
-
-export type UserUpdateRolesResponse = UserOutExtended;
-
-export type UserUpdateRolesError = ErrorDetail | HTTPValidationError;
-
-export type UserResendInvitationData = {
-  path: {
-    /**
-     * UID of a user
-     */
-    uid: string;
-  };
-};
-
-export type UserResendInvitationResponse = UserOutExtended;
-
-export type UserResendInvitationError = ErrorDetail | HTTPValidationError;
-
-export type S3KeyGetUserKeysData = {
-  path: {
-    /**
-     * UID of a user
-     */
-    uid: string;
-  };
-};
-
-export type S3KeyGetUserKeysResponse = Array<S3Key>;
-
-export type S3KeyGetUserKeysError = ErrorDetail | HTTPValidationError;
-
-export type S3KeyCreateUserKeyData = {
-  path: {
-    /**
-     * UID of a user
+     * Unique token to validate an invitation
      */
-    uid: string;
-  };
-};
-
-export type S3KeyCreateUserKeyResponse = S3Key;
-
-export type S3KeyCreateUserKeyError = ErrorDetail | HTTPValidationError;
-
-export type S3KeyGetUserKeyData = {
-  path: {
+    invitation_token?: string | null;
     /**
-     * ID of the S3 access key
+     * Will be appended to redirect response in the callback route as URL query parameter `next`
      */
-    access_id: string;
+    next?: string | null;
     /**
-     * UID of a user
+     * The OIDC provider to use for login
      */
-    uid: string;
+    provider?: OIDCProvider;
   };
 };
 
-export type S3KeyGetUserKeyResponse = S3Key;
-
-export type S3KeyGetUserKeyError = ErrorDetail | HTTPValidationError;
-
-export type S3KeyDeleteUserKeyData = {
+export type AuthLoginCallbackData = {
   path: {
-    /**
-     * ID of the S3 access key
-     */
-    access_id: string;
-    /**
-     * UID of a user
-     */
-    uid: string;
+    provider: OIDCProvider;
   };
 };
 
-export type S3KeyDeleteUserKeyResponse = void;
-
-export type S3KeyDeleteUserKeyError = ErrorDetail | HTTPValidationError;
-
 export type BucketListBucketsData = {
   query?: {
     /**
@@ -1263,7 +1166,7 @@ export type BucketListBucketsData = {
     /**
      * UID of the user for whom to fetch the buckets for. Permission `bucket:read_any` required if current user is not the target.
      */
-    owner_id?: string;
+    owner_id?: string | null;
   };
 };
 
@@ -1284,11 +1187,11 @@ export type BucketListBucketOtrsData = {
     /**
      * UID of user who is the current owner.
      */
-    current_owner_id?: string;
+    current_owner_id?: string | null;
     /**
      * UID of user who will be the new owner.
      */
-    new_owner_id?: string;
+    new_owner_id?: string | null;
   };
 };
 
@@ -1299,7 +1202,7 @@ export type BucketListBucketOtrsError = ErrorDetail | HTTPValidationError;
 export type BucketGetBucketData = {
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
   };
@@ -1312,7 +1215,7 @@ export type BucketGetBucketError = ErrorDetail | HTTPValidationError;
 export type BucketDeleteBucketData = {
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
   };
@@ -1331,7 +1234,7 @@ export type BucketDeleteBucketError = ErrorDetail | HTTPValidationError;
 export type BucketGetBucketOtrData = {
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
   };
@@ -1345,7 +1248,7 @@ export type BucketCreateBucketOtrData = {
   body: OwnershipTransferRequestIn;
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
   };
@@ -1358,7 +1261,7 @@ export type BucketCreateBucketOtrError = ErrorDetail | HTTPValidationError;
 export type BucketAcceptBucketOtrData = {
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
   };
@@ -1371,7 +1274,7 @@ export type BucketAcceptBucketOtrError = ErrorDetail | HTTPValidationError;
 export type BucketDeleteBucketOtrData = {
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
   };
@@ -1385,7 +1288,7 @@ export type BucketUpdateBucketPublicStateData = {
   body: Body_Bucket_update_bucket_public_state;
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
   };
@@ -1401,7 +1304,7 @@ export type BucketUpdateBucketLimitsData = {
   body: BucketSizeLimits;
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
   };
@@ -1414,13 +1317,13 @@ export type BucketUpdateBucketLimitsError = ErrorDetail | HTTPValidationError;
 export type BucketPermissionListPermissionsData = {
   query?: {
     /**
-     * Status of Bucket Permissions to fetch
+     * Scopes of Bucket Permissions to fetch
      */
-    permission_status?: PermissionStatus;
+    permission_scopes?: Array<"read" | "write"> | null;
     /**
-     * Type of Bucket Permissions to fetch
+     * Status of Bucket Permissions to fetch
      */
-    permission_types?: Array<Permission>;
+    permission_status?: PermissionStatus | null;
   };
 };
 
@@ -1450,13 +1353,13 @@ export type BucketPermissionListPermissionsPerUserData = {
   };
   query?: {
     /**
-     * Status of Bucket Permissions to fetch
+     * Scopes of Bucket Permissions to fetch
      */
-    permission_status?: PermissionStatus;
+    permission_scopes?: Array<"read" | "write"> | null;
     /**
-     * Type of Bucket Permissions to fetch
+     * Status of Bucket Permissions to fetch
      */
-    permission_types?: Array<Permission>;
+    permission_status?: PermissionStatus | null;
   };
 };
 
@@ -1470,19 +1373,19 @@ export type BucketPermissionListPermissionsPerUserError =
 export type BucketPermissionListPermissionsPerBucketData = {
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
   };
   query?: {
     /**
-     * Status of Bucket Permissions to fetch
+     * Scopes of Bucket Permissions to fetch
      */
-    permission_status?: PermissionStatus;
+    permission_scopes?: Array<"read" | "write"> | null;
     /**
-     * Type of Bucket Permissions to fetch
+     * Status of Bucket Permissions to fetch
      */
-    permission_types?: Array<Permission>;
+    permission_status?: PermissionStatus | null;
   };
 };
 
@@ -1496,7 +1399,7 @@ export type BucketPermissionListPermissionsPerBucketError =
 export type BucketPermissionGetPermissionForBucketData = {
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
     /**
@@ -1517,7 +1420,7 @@ export type BucketPermissionUpdatePermissionData = {
   body: BucketPermissionParameters;
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
     /**
@@ -1536,7 +1439,7 @@ export type BucketPermissionUpdatePermissionError =
 export type BucketPermissionDeletePermissionData = {
   path: {
     /**
-     * Name of bucket
+     * Name of a bucket
      */
     bucket_name: string;
     /**
@@ -1552,516 +1455,760 @@ export type BucketPermissionDeletePermissionError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowCreateWorkflowData = {
-  body: WorkflowIn;
+export type NewsCreateNewsData = {
+  body: NewsIn;
 };
 
-export type WorkflowCreateWorkflowResponse = WorkflowOut;
+export type NewsCreateNewsResponse = NewsOut;
 
-export type WorkflowCreateWorkflowError = ErrorDetail | HTTPValidationError;
+export type NewsCreateNewsError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowListWorkflowsData = {
+export type NewsListNewsData = {
   query?: {
     /**
-     * Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`.
+     * Filter for news that are created after this UNIX timestamp
      */
-    developer_id?: string;
+    created_after?: number | null;
     /**
-     * Filter workflows by a substring in their name.
+     * Filter for news created by a specific user
      */
-    name_substring?: string;
+    creator_id?: string | null;
     /**
-     * Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`.
+     * Id of the item to start the query from. DO NOT SET MANUALLY.
      */
-    version_status?: Array<WorkflowVersionStatus>;
+    id_after?: string | null;
+    /**
+     * Number of items to list per page
+     */
+    per_page?: number;
+    /**
+     * Sort order of items with creation time
+     */
+    sort?: "asc" | "desc";
   };
 };
 
-export type WorkflowListWorkflowsResponse = Array<WorkflowOut>;
+export type NewsListNewsResponse = Array<NewsOut>;
 
-export type WorkflowListWorkflowsError = ErrorDetail | HTTPValidationError;
+export type NewsListNewsError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowListWorkflowOtrsData = {
-  query?: {
+export type NewsListLatestNewsResponse = Array<NewsOut>;
+
+export type NewsListLatestNewsError = ErrorDetail;
+
+export type NewsGetNewsData = {
+  path: {
     /**
-     * UID of user who is the current owner.
+     * ID of a news event
      */
-    current_owner_id?: string;
+    nid: string;
+  };
+};
+
+export type NewsGetNewsResponse = NewsOut;
+
+export type NewsGetNewsError = ErrorDetail | HTTPValidationError;
+
+export type NewsDeleteNewsData = {
+  path: {
     /**
-     * UID of user who will be the new owner.
+     * ID of a news event
      */
-    new_owner_id?: string;
+    nid: string;
   };
 };
 
-export type WorkflowListWorkflowOtrsResponse =
-  Array<OwnershipTransferRequestOut>;
+export type NewsDeleteNewsResponse = void;
 
-export type WorkflowListWorkflowOtrsError = ErrorDetail | HTTPValidationError;
+export type NewsDeleteNewsError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowGetDeveloperWorkflowStatisticsData = {
+export type ResourceCreateResourceData = {
+  body: ResourceIn;
+};
+
+export type ResourceCreateResourceResponse = ResourceOut;
+
+export type ResourceCreateResourceError = ErrorDetail | HTTPValidationError;
+
+export type ResourceListResourcesData = {
   query?: {
     /**
-     * Filter by the developer of the workflows
+     * Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`.
      */
-    developer_id?: string;
+    maintainer_id?: string | null;
     /**
-     * Filter by workflow executions before this date
+     * Filter resources by a substring in their name.
      */
-    end?: string;
+    name_substring?: string | null;
     /**
-     * Filter by workflow executions after this date
+     * Filter resources to by the public flag
      */
-    start?: string;
+    public?: boolean | null;
     /**
-     * Filter by workflow IDs
+     * Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required.
      */
-    workflow_id?: Array<string>;
+    version_status?: Array<ResourceVersionStatus> | null;
   };
 };
 
-export type WorkflowGetDeveloperWorkflowStatisticsResponse =
-  Array<AnonymizedWorkflowExecution>;
+export type ResourceListResourcesResponse = Array<ResourceOut>;
 
-export type WorkflowGetDeveloperWorkflowStatisticsError =
-  | ErrorDetail
-  | HTTPValidationError;
+export type ResourceListResourcesError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowGetWorkflowData = {
+export type ResourceListSyncRequestsResponse =
+  Array<UserSynchronizationRequestOut>;
+
+export type ResourceListSyncRequestsError = ErrorDetail;
+
+export type ResourceListResourceOtrsData = {
+  query?: {
+    /**
+     * UID of user who is the current owner.
+     */
+    current_owner_id?: string | null;
+    /**
+     * UID of user who will be the new owner.
+     */
+    new_owner_id?: string | null;
+  };
+};
+
+export type ResourceListResourceOtrsResponse =
+  Array<OwnershipTransferRequestOut>;
+
+export type ResourceListResourceOtrsError = ErrorDetail | HTTPValidationError;
+
+export type ResourceGetResourceData = {
   path: {
     /**
-     * ID of a workflow
+     * ID of a resource
      */
-    wid: string;
+    rid: string;
   };
   query?: {
     /**
-     * Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`
+     * Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.
      */
-    version_status?: Array<WorkflowVersionStatus>;
+    version_status?: Array<ResourceVersionStatus> | null;
   };
 };
 
-export type WorkflowGetWorkflowResponse = WorkflowOut;
+export type ResourceGetResourceResponse = ResourceOut;
 
-export type WorkflowGetWorkflowError = ErrorDetail | HTTPValidationError;
+export type ResourceGetResourceError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowDeleteWorkflowData = {
+export type ResourceDeleteResourceData = {
   path: {
     /**
-     * ID of a workflow
+     * ID of a resource
      */
-    wid: string;
+    rid: string;
   };
 };
 
-export type WorkflowDeleteWorkflowResponse = void;
+export type ResourceDeleteResourceResponse = void;
 
-export type WorkflowDeleteWorkflowError = ErrorDetail | HTTPValidationError;
+export type ResourceDeleteResourceError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowGetWorkflowOtrData = {
+export type ResourceGetResourceOtrData = {
   path: {
     /**
-     * ID of a workflow
+     * ID of a resource
      */
-    wid: string;
+    rid: string;
   };
 };
 
-export type WorkflowGetWorkflowOtrResponse = OwnershipTransferRequestOut;
+export type ResourceGetResourceOtrResponse = OwnershipTransferRequestOut;
 
-export type WorkflowGetWorkflowOtrError = ErrorDetail | HTTPValidationError;
+export type ResourceGetResourceOtrError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowCreateWorkflowOtrData = {
+export type ResourceCreateResourceOtrData = {
   body: OwnershipTransferRequestIn;
   path: {
     /**
-     * ID of a workflow
+     * ID of a resource
      */
-    wid: string;
+    rid: string;
   };
 };
 
-export type WorkflowCreateWorkflowOtrResponse = OwnershipTransferRequestOut;
+export type ResourceCreateResourceOtrResponse = OwnershipTransferRequestOut;
 
-export type WorkflowCreateWorkflowOtrError = ErrorDetail | HTTPValidationError;
+export type ResourceCreateResourceOtrError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowAcceptWorkflowOtrData = {
+export type ResourceAcceptResourceOtrData = {
   path: {
     /**
-     * ID of a workflow
+     * ID of a resource
      */
-    wid: string;
+    rid: string;
   };
 };
 
-export type WorkflowAcceptWorkflowOtrResponse = WorkflowOut;
+export type ResourceAcceptResourceOtrResponse = ResourceOut;
 
-export type WorkflowAcceptWorkflowOtrError = ErrorDetail | HTTPValidationError;
+export type ResourceAcceptResourceOtrError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowDeleteWorkflowOtrData = {
+export type ResourceDeleteResourceOtrData = {
   path: {
     /**
-     * ID of a workflow
+     * ID of a resource
      */
-    wid: string;
+    rid: string;
   };
 };
 
-export type WorkflowDeleteWorkflowOtrResponse = void;
+export type ResourceDeleteResourceOtrResponse = void;
 
-export type WorkflowDeleteWorkflowOtrError = ErrorDetail | HTTPValidationError;
+export type ResourceDeleteResourceOtrError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowGetWorkflowStatisticsData = {
+export type ResourceVersionListResourceVersionsData = {
   path: {
     /**
-     * ID of a workflow
+     * ID of a resource
      */
-    wid: string;
+    rid: string;
+  };
+  query?: {
+    /**
+     * Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.
+     */
+    version_status?: Array<ResourceVersionStatus> | null;
   };
 };
 
-export type WorkflowGetWorkflowStatisticsResponse = Array<WorkflowStatistic>;
+export type ResourceVersionListResourceVersionsResponse =
+  Array<ResourceVersionOut>;
 
-export type WorkflowGetWorkflowStatisticsError =
+export type ResourceVersionListResourceVersionsError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowUpdateWorkflowData = {
-  body: WorkflowUpdate;
+export type ResourceVersionRequestResourceVersionData = {
+  body: ResourceVersionIn;
   path: {
     /**
-     * ID of a workflow
+     * ID of a resource
      */
-    wid: string;
+    rid: string;
   };
 };
 
-export type WorkflowUpdateWorkflowResponse = WorkflowVersion;
+export type ResourceVersionRequestResourceVersionResponse = ResourceVersionOut;
 
-export type WorkflowUpdateWorkflowError = ErrorDetail | HTTPValidationError;
+export type ResourceVersionRequestResourceVersionError =
+  | ErrorDetail
+  | HTTPValidationError;
 
-export type WorkflowVersionListWorkflowVersionData = {
+export type ResourceVersionGetResourceVersionData = {
   path: {
     /**
-     * ID of a workflow
+     * ID of a resource
      */
-    wid: string;
-  };
-  query?: {
+    rid: string;
     /**
-     * Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`
+     * ID of a resource version
      */
-    version_status?: Array<WorkflowVersionStatus>;
+    rvid: string;
   };
 };
 
-export type WorkflowVersionListWorkflowVersionResponse = Array<WorkflowVersion>;
+export type ResourceVersionGetResourceVersionResponse = ResourceVersionOut;
 
-export type WorkflowVersionListWorkflowVersionError =
+export type ResourceVersionGetResourceVersionError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowVersionGetWorkflowVersionData = {
+export type ResourceVersionResourceFileTreeData = {
   path: {
     /**
-     * Git commit `git_commit_hash` of specific version or `latest`.
+     * ID of a resource
      */
-    git_commit_hash: string;
+    rid: string;
     /**
-     * ID of a workflow
+     * ID of a resource version
      */
-    wid: string;
+    rvid: string;
   };
 };
 
-export type WorkflowVersionGetWorkflowVersionResponse = WorkflowVersion;
+export type ResourceVersionResourceFileTreeResponse = Array<FileTree>;
 
-export type WorkflowVersionGetWorkflowVersionError =
+export type ResourceVersionResourceFileTreeError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowVersionUpdateWorkflowVersionStatusData = {
-  body: WorkflowVersionStatusSchema;
+export type ResourceVersionRequestResourceVersionReviewData = {
   path: {
     /**
-     * Git commit git_commit_hash of specific version.
+     * ID of a resource
      */
-    git_commit_hash: string;
+    rid: string;
     /**
-     * ID of a workflow
+     * ID of a resource version
      */
-    wid: string;
+    rvid: string;
   };
 };
 
-export type WorkflowVersionUpdateWorkflowVersionStatusResponse =
-  WorkflowVersion;
+export type ResourceVersionRequestResourceVersionReviewResponse =
+  ResourceVersionOut;
 
-export type WorkflowVersionUpdateWorkflowVersionStatusError =
+export type ResourceVersionRequestResourceVersionReviewError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowVersionDeprecateWorkflowVersionData = {
+export type ResourceVersionRequestResourceVersionSyncData = {
+  body: UserSynchronizationRequestIn;
   path: {
     /**
-     * Git commit git_commit_hash of specific version.
+     * ID of a resource
      */
-    git_commit_hash: string;
+    rid: string;
     /**
-     * ID of a workflow
+     * ID of a resource version
      */
-    wid: string;
+    rvid: string;
   };
 };
 
-export type WorkflowVersionDeprecateWorkflowVersionResponse = WorkflowVersion;
+export type ResourceVersionRequestResourceVersionSyncResponse =
+  ResourceVersionOut;
 
-export type WorkflowVersionDeprecateWorkflowVersionError =
+export type ResourceVersionRequestResourceVersionSyncError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowVersionUpdateWorkflowVersionParameterExtensionData = {
-  body: ParameterExtension;
+export type ResourceVersionResourceVersionReviewData = {
+  body: UserRequestAnswer;
   path: {
     /**
-     * Git commit git_commit_hash of specific version.
+     * ID of a resource
      */
-    git_commit_hash: string;
+    rid: string;
     /**
-     * ID of a workflow
+     * ID of a resource version
      */
-    wid: string;
+    rvid: string;
   };
 };
 
-export type WorkflowVersionUpdateWorkflowVersionParameterExtensionResponse =
-  WorkflowVersion;
+export type ResourceVersionResourceVersionReviewResponse = ResourceVersionOut;
 
-export type WorkflowVersionUpdateWorkflowVersionParameterExtensionError =
+export type ResourceVersionResourceVersionReviewError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowVersionDeleteWorkflowVersionParameterExtensionData = {
+export type ResourceVersionResourceVersionSyncData = {
+  body: UserRequestAnswer;
   path: {
     /**
-     * Git commit git_commit_hash of specific version.
+     * ID of a resource
      */
-    git_commit_hash: string;
+    rid: string;
     /**
-     * ID of a workflow
+     * ID of a resource version
      */
-    wid: string;
+    rvid: string;
   };
 };
 
-export type WorkflowVersionDeleteWorkflowVersionParameterExtensionResponse =
-  void;
+export type ResourceVersionResourceVersionSyncResponse = ResourceVersionOut;
 
-export type WorkflowVersionDeleteWorkflowVersionParameterExtensionError =
+export type ResourceVersionResourceVersionSyncError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowVersionDownloadWorkflowDocumentationData = {
+export type ResourceVersionResourceVersionLatestData = {
   path: {
     /**
-     * Git commit git_commit_hash of specific version.
-     */
-    git_commit_hash: string;
-    /**
-     * ID of a workflow
-     */
-    wid: string;
-  };
-  query?: {
-    /**
-     * Specify which type of documentation the client wants to fetch
+     * ID of a resource
      */
-    document?: DocumentationEnum;
+    rid: string;
     /**
-     * Workflow Mode
+     * ID of a resource version
      */
-    mode_id?: string;
+    rvid: string;
   };
 };
 
-export type WorkflowVersionDownloadWorkflowDocumentationResponse = unknown;
+export type ResourceVersionResourceVersionLatestResponse = ResourceVersionOut;
 
-export type WorkflowVersionDownloadWorkflowDocumentationError =
+export type ResourceVersionResourceVersionLatestError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowVersionUploadWorkflowVersionIconData = {
-  body: Body_Workflow_Version_upload_workflow_version_icon;
+export type ResourceVersionDeleteResourceVersionClusterData = {
   path: {
     /**
-     * Git commit git_commit_hash of specific version.
+     * ID of a resource
      */
-    git_commit_hash: string;
+    rid: string;
     /**
-     * ID of a workflow
+     * ID of a resource version
      */
-    wid: string;
+    rvid: string;
   };
 };
 
-export type WorkflowVersionUploadWorkflowVersionIconResponse = IconUpdateOut;
+export type ResourceVersionDeleteResourceVersionClusterResponse =
+  ResourceVersionOut;
 
-export type WorkflowVersionUploadWorkflowVersionIconError =
+export type ResourceVersionDeleteResourceVersionClusterError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowVersionDeleteWorkflowVersionIconData = {
+export type ResourceVersionDeleteResourceVersionS3Data = {
   path: {
     /**
-     * Git commit git_commit_hash of specific version.
+     * ID of a resource
      */
-    git_commit_hash: string;
+    rid: string;
     /**
-     * ID of a workflow
+     * ID of a resource version
      */
-    wid: string;
+    rvid: string;
   };
 };
 
-export type WorkflowVersionDeleteWorkflowVersionIconResponse = void;
+export type ResourceVersionDeleteResourceVersionS3Response = ResourceVersionOut;
 
-export type WorkflowVersionDeleteWorkflowVersionIconError =
+export type ResourceVersionDeleteResourceVersionS3Error =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowExecutionStartWorkflowData = {
-  body: WorkflowExecutionIn;
+export type S3KeyGetUserKeysData = {
+  path: {
+    /**
+     * UID of a user
+     */
+    uid: string;
+  };
 };
 
-export type WorkflowExecutionStartWorkflowResponse = WorkflowExecutionOut;
+export type S3KeyGetUserKeysResponse = Array<S3Key>;
 
-export type WorkflowExecutionStartWorkflowError =
-  | ErrorDetail
-  | HTTPValidationError;
+export type S3KeyGetUserKeysError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowExecutionListWorkflowExecutionsData = {
-  query?: {
-    /**
-     * Filter for status of workflow execution
+export type S3KeyCreateUserKeyData = {
+  path: {
+    /**
+     * UID of a user
      */
-    execution_status?: Array<WorkflowExecutionStatus>;
+    uid: string;
+  };
+};
+
+export type S3KeyCreateUserKeyResponse = S3Key;
+
+export type S3KeyCreateUserKeyError = ErrorDetail | HTTPValidationError;
+
+export type S3KeyGetUserKeyData = {
+  path: {
     /**
-     * Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required.
+     * ID of the S3 access key
      */
-    executor_id?: string;
+    access_id: string;
     /**
-     * Id of the item to start the query from. DO NOT SET MANUALLY.
+     * UID of a user
      */
-    id_after?: string;
+    uid: string;
+  };
+};
+
+export type S3KeyGetUserKeyResponse = S3Key;
+
+export type S3KeyGetUserKeyError = ErrorDetail | HTTPValidationError;
+
+export type S3KeyDeleteUserKeyData = {
+  path: {
     /**
-     * Number of items to list per page
+     * ID of the S3 access key
      */
-    per_page?: number;
+    access_id: string;
     /**
-     * Sort order of items with creation time
+     * UID of a user
      */
-    sort?: "asc" | "desc";
+    uid: string;
+  };
+};
+
+export type S3KeyDeleteUserKeyResponse = void;
+
+export type S3KeyDeleteUserKeyError = ErrorDetail | HTTPValidationError;
+
+export type UserCreateUserData = {
+  body: UserIn;
+};
+
+export type UserCreateUserResponse = UserOutExtended;
+
+export type UserCreateUserError = ErrorDetail | HTTPValidationError;
+
+export type UserListUsersData = {
+  query?: {
     /**
-     * Filter for workflow executions that started after this UNIX timestamp
+     * Filter users by their role. If multiple are selected, they are concatenating by an OR Expression.
      */
-    start_after?: number;
+    filter_roles?: Array<RoleEnum> | null;
     /**
-     * Filter for workflow executions that started before this UNIX timestamp
+     * Filter users by a substring in their name.
      */
-    start_before?: number;
+    name_substring?: string | null;
+  };
+};
+
+export type UserListUsersResponse = Array<UserOutExtended>;
+
+export type UserListUsersError = ErrorDetail | HTTPValidationError;
+
+export type UserSearchUsersData = {
+  query: {
     /**
-     * Filter for workflow
+     * Filter users by a substring in their name.
      */
-    workflow_id?: string;
+    name_substring: string;
+  };
+};
+
+export type UserSearchUsersResponse = Array<UserOut>;
+
+export type UserSearchUsersError = ErrorDetail | HTTPValidationError;
+
+export type UserGetLoggedInUserResponse = UserOutExtended;
+
+export type UserGetLoggedInUserError = ErrorDetail;
+
+export type UserGetUserData = {
+  path: {
     /**
-     * Filter for workflow version
+     * UID of a user
      */
-    workflow_version_id?: string;
+    uid: string;
   };
 };
 
-export type WorkflowExecutionListWorkflowExecutionsResponse =
-  Array<WorkflowExecutionOut>;
+export type UserGetUserResponse = UserOut;
 
-export type WorkflowExecutionListWorkflowExecutionsError =
-  | ErrorDetail
-  | HTTPValidationError;
+export type UserGetUserError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowExecutionStartArbitraryWorkflowData = {
-  body: DevWorkflowExecutionIn;
+export type UserUpdateRolesData = {
+  body: UserRoles;
+  path: {
+    /**
+     * UID of a user
+     */
+    uid: string;
+  };
 };
 
-export type WorkflowExecutionStartArbitraryWorkflowResponse =
-  WorkflowExecutionOut;
+export type UserUpdateRolesResponse = UserOutExtended;
 
-export type WorkflowExecutionStartArbitraryWorkflowError =
-  | ErrorDetail
-  | HTTPValidationError;
+export type UserUpdateRolesError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowExecutionGetWorkflowExecutionData = {
+export type UserResendInvitationData = {
   path: {
     /**
-     * ID of a workflow execution.
+     * UID of a user
      */
-    eid: string;
+    uid: string;
   };
 };
 
-export type WorkflowExecutionGetWorkflowExecutionResponse =
-  WorkflowExecutionOut;
+export type UserResendInvitationResponse = UserOutExtended;
 
-export type WorkflowExecutionGetWorkflowExecutionError =
+export type UserResendInvitationError = ErrorDetail | HTTPValidationError;
+
+export type WorkflowCreateWorkflowData = {
+  body: WorkflowIn;
+};
+
+export type WorkflowCreateWorkflowResponse = WorkflowOut;
+
+export type WorkflowCreateWorkflowError = ErrorDetail | HTTPValidationError;
+
+export type WorkflowListWorkflowsData = {
+  query?: {
+    /**
+     * Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`.
+     */
+    developer_id?: string | null;
+    /**
+     * Filter workflows by a substring in their name.
+     */
+    name_substring?: string | null;
+    /**
+     * Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`.
+     */
+    version_status?: Array<WorkflowVersionStatus> | null;
+  };
+};
+
+export type WorkflowListWorkflowsResponse = Array<WorkflowOut>;
+
+export type WorkflowListWorkflowsError = ErrorDetail | HTTPValidationError;
+
+export type WorkflowListWorkflowOtrsData = {
+  query?: {
+    /**
+     * UID of user who is the current owner.
+     */
+    current_owner_id?: string | null;
+    /**
+     * UID of user who will be the new owner.
+     */
+    new_owner_id?: string | null;
+  };
+};
+
+export type WorkflowListWorkflowOtrsResponse =
+  Array<OwnershipTransferRequestOut>;
+
+export type WorkflowListWorkflowOtrsError = ErrorDetail | HTTPValidationError;
+
+export type WorkflowGetDeveloperWorkflowStatisticsData = {
+  query?: {
+    /**
+     * Filter by the developer of the workflows
+     */
+    developer_id?: string | null;
+    /**
+     * Filter by workflow executions before this date
+     */
+    end?: string | null;
+    /**
+     * Filter by workflow executions after this date
+     */
+    start?: string | null;
+    /**
+     * Filter by workflow IDs
+     */
+    workflow_id?: Array<string> | null;
+  };
+};
+
+export type WorkflowGetDeveloperWorkflowStatisticsResponse =
+  Array<AnonymizedWorkflowExecution>;
+
+export type WorkflowGetDeveloperWorkflowStatisticsError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowExecutionDeleteWorkflowExecutionData = {
+export type WorkflowGetWorkflowData = {
   path: {
     /**
-     * ID of a workflow execution.
+     * ID of a workflow
      */
-    eid: string;
+    wid: string;
+  };
+  query?: {
+    /**
+     * Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`
+     */
+    version_status?: Array<WorkflowVersionStatus> | null;
   };
 };
 
-export type WorkflowExecutionDeleteWorkflowExecutionResponse = void;
+export type WorkflowGetWorkflowResponse = WorkflowOut;
 
-export type WorkflowExecutionDeleteWorkflowExecutionError =
-  | ErrorDetail
-  | HTTPValidationError;
+export type WorkflowGetWorkflowError = ErrorDetail | HTTPValidationError;
 
-export type WorkflowExecutionGetWorkflowExecutionParamsData = {
+export type WorkflowDeleteWorkflowData = {
   path: {
     /**
-     * ID of a workflow execution.
+     * ID of a workflow
      */
-    eid: string;
+    wid: string;
   };
 };
 
-export type WorkflowExecutionGetWorkflowExecutionParamsResponse = {
-  [key: string]: unknown;
+export type WorkflowDeleteWorkflowResponse = void;
+
+export type WorkflowDeleteWorkflowError = ErrorDetail | HTTPValidationError;
+
+export type WorkflowGetWorkflowOtrData = {
+  path: {
+    /**
+     * ID of a workflow
+     */
+    wid: string;
+  };
 };
 
-export type WorkflowExecutionGetWorkflowExecutionParamsError =
-  | ErrorDetail
-  | HTTPValidationError;
+export type WorkflowGetWorkflowOtrResponse = OwnershipTransferRequestOut;
 
-export type WorkflowExecutionCancelWorkflowExecutionData = {
+export type WorkflowGetWorkflowOtrError = ErrorDetail | HTTPValidationError;
+
+export type WorkflowCreateWorkflowOtrData = {
+  body: OwnershipTransferRequestIn;
   path: {
     /**
-     * ID of a workflow execution.
+     * ID of a workflow
      */
-    eid: string;
+    wid: string;
   };
 };
 
-export type WorkflowExecutionCancelWorkflowExecutionResponse = void;
+export type WorkflowCreateWorkflowOtrResponse = OwnershipTransferRequestOut;
 
-export type WorkflowExecutionCancelWorkflowExecutionError =
+export type WorkflowCreateWorkflowOtrError = ErrorDetail | HTTPValidationError;
+
+export type WorkflowAcceptWorkflowOtrData = {
+  path: {
+    /**
+     * ID of a workflow
+     */
+    wid: string;
+  };
+};
+
+export type WorkflowAcceptWorkflowOtrResponse = WorkflowOut;
+
+export type WorkflowAcceptWorkflowOtrError = ErrorDetail | HTTPValidationError;
+
+export type WorkflowDeleteWorkflowOtrData = {
+  path: {
+    /**
+     * ID of a workflow
+     */
+    wid: string;
+  };
+};
+
+export type WorkflowDeleteWorkflowOtrResponse = void;
+
+export type WorkflowDeleteWorkflowOtrError = ErrorDetail | HTTPValidationError;
+
+export type WorkflowGetWorkflowStatisticsData = {
+  path: {
+    /**
+     * ID of a workflow
+     */
+    wid: string;
+  };
+};
+
+export type WorkflowGetWorkflowStatisticsResponse = Array<WorkflowStatistic>;
+
+export type WorkflowGetWorkflowStatisticsError =
   | ErrorDetail
   | HTTPValidationError;
 
+export type WorkflowUpdateWorkflowData = {
+  body: WorkflowUpdate;
+  path: {
+    /**
+     * ID of a workflow
+     */
+    wid: string;
+  };
+};
+
+export type WorkflowUpdateWorkflowResponse = WorkflowVersion;
+
+export type WorkflowUpdateWorkflowError = ErrorDetail | HTTPValidationError;
+
 export type WorkflowCredentialsGetWorkflowCredentialsData = {
   path: {
     /**
@@ -2109,295 +2256,338 @@ export type WorkflowCredentialsDeleteWorkflowCredentialsError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type WorkflowModeGetWorkflowModeData = {
-  path: {
-    /**
-     * ID of a workflow mode
-     */
-    mode_id: string;
-  };
+export type WorkflowExecutionStartWorkflowData = {
+  body: WorkflowExecutionIn;
 };
 
-export type WorkflowModeGetWorkflowModeResponse = WorkflowModeOut;
+export type WorkflowExecutionStartWorkflowResponse = WorkflowExecutionOut;
 
-export type WorkflowModeGetWorkflowModeError =
+export type WorkflowExecutionStartWorkflowError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceCreateResourceData = {
-  body: ResourceIn;
-};
-
-export type ResourceCreateResourceResponse = ResourceOut;
-
-export type ResourceCreateResourceError = ErrorDetail | HTTPValidationError;
-
-export type ResourceListResourcesData = {
+export type WorkflowExecutionListWorkflowExecutionsData = {
   query?: {
     /**
-     * Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`.
+     * Filter for status of workflow execution
      */
-    maintainer_id?: string;
+    execution_status?: Array<WorkflowExecutionStatus> | null;
     /**
-     * Filter resources by a substring in their name.
+     * Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required.
      */
-    name_substring?: string;
+    executor_id?: string | null;
     /**
-     * Filter resources to by the public flag
+     * Id of the item to start the query from. DO NOT SET MANUALLY.
      */
-    public?: boolean;
+    id_after?: string | null;
     /**
-     * Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required.
+     * Number of items to list per page
      */
-    version_status?: Array<ResourceVersionStatus>;
-  };
-};
-
-export type ResourceListResourcesResponse = Array<ResourceOut>;
-
-export type ResourceListResourcesError = ErrorDetail | HTTPValidationError;
-
-export type ResourceListSyncRequestsResponse =
-  Array<UserSynchronizationRequestOut>;
-
-export type ResourceListSyncRequestsError = ErrorDetail;
-
-export type ResourceListResourceOtrsData = {
-  query?: {
+    per_page?: number;
     /**
-     * UID of user who is the current owner.
+     * Sort order of items with creation time
      */
-    current_owner_id?: string;
+    sort?: "asc" | "desc";
     /**
-     * UID of user who will be the new owner.
+     * Filter for workflow executions that started after this UNIX timestamp
      */
-    new_owner_id?: string;
-  };
-};
-
-export type ResourceListResourceOtrsResponse =
-  Array<OwnershipTransferRequestOut>;
-
-export type ResourceListResourceOtrsError = ErrorDetail | HTTPValidationError;
-
-export type ResourceGetResourceData = {
-  path: {
-    rid: string;
-  };
-  query?: {
+    start_after?: number | null;
     /**
-     * Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.
+     * Filter for workflow executions that started before this UNIX timestamp
      */
-    version_status?: Array<ResourceVersionStatus>;
-  };
-};
-
-export type ResourceGetResourceResponse = ResourceOut;
-
-export type ResourceGetResourceError = ErrorDetail | HTTPValidationError;
-
-export type ResourceDeleteResourceData = {
-  path: {
-    rid: string;
+    start_before?: number | null;
+    /**
+     * Filter for workflow
+     */
+    workflow_id?: string | null;
+    /**
+     * Filter for workflow version
+     */
+    workflow_version_id?: string | null;
   };
 };
 
-export type ResourceDeleteResourceResponse = void;
+export type WorkflowExecutionListWorkflowExecutionsResponse =
+  Array<WorkflowExecutionOut>;
 
-export type ResourceDeleteResourceError = ErrorDetail | HTTPValidationError;
+export type WorkflowExecutionListWorkflowExecutionsError =
+  | ErrorDetail
+  | HTTPValidationError;
 
-export type ResourceGetResourceOtrData = {
-  path: {
-    rid: string;
-  };
+export type WorkflowExecutionStartArbitraryWorkflowData = {
+  body: DevWorkflowExecutionIn;
 };
 
-export type ResourceGetResourceOtrResponse = OwnershipTransferRequestOut;
+export type WorkflowExecutionStartArbitraryWorkflowResponse =
+  WorkflowExecutionOut;
 
-export type ResourceGetResourceOtrError = ErrorDetail | HTTPValidationError;
+export type WorkflowExecutionStartArbitraryWorkflowError =
+  | ErrorDetail
+  | HTTPValidationError;
 
-export type ResourceCreateResourceOtrData = {
-  body: OwnershipTransferRequestIn;
+export type WorkflowExecutionGetWorkflowExecutionData = {
   path: {
-    rid: string;
+    /**
+     * ID of a workflow execution.
+     */
+    eid: string;
   };
 };
 
-export type ResourceCreateResourceOtrResponse = OwnershipTransferRequestOut;
+export type WorkflowExecutionGetWorkflowExecutionResponse =
+  WorkflowExecutionOut;
 
-export type ResourceCreateResourceOtrError = ErrorDetail | HTTPValidationError;
+export type WorkflowExecutionGetWorkflowExecutionError =
+  | ErrorDetail
+  | HTTPValidationError;
 
-export type ResourceAcceptResourceOtrData = {
+export type WorkflowExecutionDeleteWorkflowExecutionData = {
   path: {
-    rid: string;
+    /**
+     * ID of a workflow execution.
+     */
+    eid: string;
   };
 };
 
-export type ResourceAcceptResourceOtrResponse = ResourceOut;
+export type WorkflowExecutionDeleteWorkflowExecutionResponse = void;
 
-export type ResourceAcceptResourceOtrError = ErrorDetail | HTTPValidationError;
+export type WorkflowExecutionDeleteWorkflowExecutionError =
+  | ErrorDetail
+  | HTTPValidationError;
 
-export type ResourceDeleteResourceOtrData = {
+export type WorkflowExecutionGetWorkflowExecutionParamsData = {
   path: {
-    rid: string;
+    /**
+     * ID of a workflow execution.
+     */
+    eid: string;
   };
 };
 
-export type ResourceDeleteResourceOtrResponse = void;
+export type WorkflowExecutionGetWorkflowExecutionParamsResponse = {
+  [key: string]: unknown;
+};
 
-export type ResourceDeleteResourceOtrError = ErrorDetail | HTTPValidationError;
+export type WorkflowExecutionGetWorkflowExecutionParamsError =
+  | ErrorDetail
+  | HTTPValidationError;
 
-export type ResourceVersionListResourceVersionsData = {
+export type WorkflowExecutionCancelWorkflowExecutionData = {
   path: {
-    rid: string;
-  };
-  query?: {
     /**
-     * Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.
+     * ID of a workflow execution.
      */
-    version_status?: Array<ResourceVersionStatus>;
+    eid: string;
   };
 };
 
-export type ResourceVersionListResourceVersionsResponse =
-  Array<ResourceVersionOut>;
+export type WorkflowExecutionCancelWorkflowExecutionResponse = void;
 
-export type ResourceVersionListResourceVersionsError =
+export type WorkflowExecutionCancelWorkflowExecutionError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceVersionRequestResourceVersionData = {
-  body: ResourceVersionIn;
+export type WorkflowModeGetWorkflowModeData = {
   path: {
-    rid: string;
+    /**
+     * ID of a workflow mode
+     */
+    mode_id: string;
   };
 };
 
-export type ResourceVersionRequestResourceVersionResponse = ResourceVersionOut;
+export type WorkflowModeGetWorkflowModeResponse = WorkflowModeOut;
 
-export type ResourceVersionRequestResourceVersionError =
+export type WorkflowModeGetWorkflowModeError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceVersionGetResourceVersionData = {
+export type WorkflowVersionListWorkflowVersionData = {
   path: {
-    rid: string;
-    rvid: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
+  };
+  query?: {
+    /**
+     * Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`
+     */
+    version_status?: Array<WorkflowVersionStatus> | null;
   };
 };
 
-export type ResourceVersionGetResourceVersionResponse = ResourceVersionOut;
+export type WorkflowVersionListWorkflowVersionResponse = Array<WorkflowVersion>;
 
-export type ResourceVersionGetResourceVersionError =
+export type WorkflowVersionListWorkflowVersionError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceVersionResourceFileTreeData = {
+export type WorkflowVersionGetWorkflowVersionData = {
   path: {
-    rid: string;
-    rvid: string;
+    /**
+     * Git commit `git_commit_hash` of specific version or `latest`.
+     */
+    git_commit_hash: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
   };
 };
 
-export type ResourceVersionResourceFileTreeResponse = Array<FileTree>;
+export type WorkflowVersionGetWorkflowVersionResponse = WorkflowVersion;
 
-export type ResourceVersionResourceFileTreeError =
+export type WorkflowVersionGetWorkflowVersionError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceVersionRequestResourceVersionReviewData = {
+export type WorkflowVersionUpdateWorkflowVersionStatusData = {
+  body: WorkflowVersionStatusSchema;
   path: {
-    rid: string;
-    rvid: string;
+    /**
+     * Git commit git_commit_hash of specific version.
+     */
+    git_commit_hash: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
   };
 };
 
-export type ResourceVersionRequestResourceVersionReviewResponse =
-  ResourceVersionOut;
+export type WorkflowVersionUpdateWorkflowVersionStatusResponse =
+  WorkflowVersion;
 
-export type ResourceVersionRequestResourceVersionReviewError =
+export type WorkflowVersionUpdateWorkflowVersionStatusError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceVersionRequestResourceVersionSyncData = {
-  body: UserSynchronizationRequestIn;
+export type WorkflowVersionDeprecateWorkflowVersionData = {
   path: {
-    rid: string;
-    rvid: string;
+    /**
+     * Git commit git_commit_hash of specific version.
+     */
+    git_commit_hash: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
   };
 };
 
-export type ResourceVersionRequestResourceVersionSyncResponse =
-  ResourceVersionOut;
+export type WorkflowVersionDeprecateWorkflowVersionResponse = WorkflowVersion;
 
-export type ResourceVersionRequestResourceVersionSyncError =
+export type WorkflowVersionDeprecateWorkflowVersionError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceVersionResourceVersionReviewData = {
-  body: UserRequestAnswer;
+export type WorkflowVersionUpdateWorkflowVersionParameterExtensionData = {
+  body: ParameterExtension;
   path: {
-    rid: string;
-    rvid: string;
+    /**
+     * Git commit git_commit_hash of specific version.
+     */
+    git_commit_hash: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
   };
 };
 
-export type ResourceVersionResourceVersionReviewResponse = ResourceVersionOut;
+export type WorkflowVersionUpdateWorkflowVersionParameterExtensionResponse =
+  WorkflowVersion;
 
-export type ResourceVersionResourceVersionReviewError =
+export type WorkflowVersionUpdateWorkflowVersionParameterExtensionError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceVersionResourceVersionSyncData = {
-  body: UserRequestAnswer;
+export type WorkflowVersionDeleteWorkflowVersionParameterExtensionData = {
   path: {
-    rid: string;
-    rvid: string;
+    /**
+     * Git commit git_commit_hash of specific version.
+     */
+    git_commit_hash: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
   };
 };
 
-export type ResourceVersionResourceVersionSyncResponse = ResourceVersionOut;
+export type WorkflowVersionDeleteWorkflowVersionParameterExtensionResponse =
+  void;
 
-export type ResourceVersionResourceVersionSyncError =
+export type WorkflowVersionDeleteWorkflowVersionParameterExtensionError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceVersionResourceVersionLatestData = {
+export type WorkflowVersionDownloadWorkflowDocumentationData = {
   path: {
-    rid: string;
-    rvid: string;
+    /**
+     * Git commit git_commit_hash of specific version.
+     */
+    git_commit_hash: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
+  };
+  query?: {
+    /**
+     * Specify which type of documentation the client wants to fetch
+     */
+    document?: DocumentationEnum;
+    /**
+     * Workflow Mode
+     */
+    mode_id?: string | null;
   };
 };
 
-export type ResourceVersionResourceVersionLatestResponse = ResourceVersionOut;
+export type WorkflowVersionDownloadWorkflowDocumentationResponse = unknown;
 
-export type ResourceVersionResourceVersionLatestError =
+export type WorkflowVersionDownloadWorkflowDocumentationError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceVersionDeleteResourceVersionClusterData = {
+export type WorkflowVersionUploadWorkflowVersionIconData = {
+  body: Body_Workflow_Version_upload_workflow_version_icon;
   path: {
-    rid: string;
-    rvid: string;
+    /**
+     * Git commit git_commit_hash of specific version.
+     */
+    git_commit_hash: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
   };
 };
 
-export type ResourceVersionDeleteResourceVersionClusterResponse =
-  ResourceVersionOut;
+export type WorkflowVersionUploadWorkflowVersionIconResponse = IconUpdateOut;
 
-export type ResourceVersionDeleteResourceVersionClusterError =
+export type WorkflowVersionUploadWorkflowVersionIconError =
   | ErrorDetail
   | HTTPValidationError;
 
-export type ResourceVersionDeleteResourceVersionS3Data = {
+export type WorkflowVersionDeleteWorkflowVersionIconData = {
   path: {
-    rid: string;
-    rvid: string;
+    /**
+     * Git commit git_commit_hash of specific version.
+     */
+    git_commit_hash: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
   };
 };
 
-export type ResourceVersionDeleteResourceVersionS3Response = ResourceVersionOut;
+export type WorkflowVersionDeleteWorkflowVersionIconResponse = void;
 
-export type ResourceVersionDeleteResourceVersionS3Error =
+export type WorkflowVersionDeleteWorkflowVersionIconError =
   | ErrorDetail
   | HTTPValidationError;
diff --git a/src/components/admin/CreateUserModal.vue b/src/components/admin/CreateUserModal.vue
index b6cfa1cb4b6f7a4e6e8f54067fd2a0887cdc235a..6addbd80ea783592877287820a624037bfd4924e 100644
--- a/src/components/admin/CreateUserModal.vue
+++ b/src/components/admin/CreateUserModal.vue
@@ -62,7 +62,7 @@ function createUser() {
         modal?.hide();
       })
       .catch((err) => {
-        formState.errorMessage = err.body?.detail;
+        formState.errorMessage = err.response?.data?.["detail"];
         errorToast?.show();
       })
       .finally(() => {
diff --git a/src/components/object-storage/BucketListItem.vue b/src/components/object-storage/BucketListItem.vue
index 5600517a50fe2fa338f1878fb49138d6e4599edb..ffa79c7ddfda06370986ba0b0a989e57387b727f 100644
--- a/src/components/object-storage/BucketListItem.vue
+++ b/src/components/object-storage/BucketListItem.vue
@@ -78,7 +78,7 @@ function toggleBucketPublicState() {
       successToast?.show();
     })
     .catch((err) => {
-      requestState.error = err.toString();
+      requestState.error = err.response?.data?.["detail"];
       if (publicCheckbox.value) {
         publicCheckbox.value.checked = props.bucket.public;
       }
diff --git a/src/components/object-storage/modals/CopyObjectModal.vue b/src/components/object-storage/modals/CopyObjectModal.vue
index f784c5001c1877163aaecd16acfc5720ecf2c628..2ecf9d2e1272ba60f59c8370abe8034738c21c92 100644
--- a/src/components/object-storage/modals/CopyObjectModal.vue
+++ b/src/components/object-storage/modals/CopyObjectModal.vue
@@ -74,8 +74,8 @@ function copyObject() {
       formState.moveObject = false;
       formState.destBucket = "";
     })
-    .catch((e) => {
-      formState.err = e.Code;
+    .catch((err) => {
+      formState.err = err.response?.status;
       errorToast?.show();
     })
     .finally(() => {
diff --git a/src/components/object-storage/modals/CreateBucketModal.vue b/src/components/object-storage/modals/CreateBucketModal.vue
index 09bd3c5153a44453227d047a36e8301b8a35a323..dcfecef3f1c2bc66e601c4cbcc35ce25a56c879a 100644
--- a/src/components/object-storage/modals/CreateBucketModal.vue
+++ b/src/components/object-storage/modals/CreateBucketModal.vue
@@ -58,8 +58,8 @@ function createBucket() {
       })
       .catch((error) => {
         if (
-          error.status === 400 &&
-          error.body["detail"] === "Bucket name is already taken"
+          error.response?.status === 400 &&
+          error.response?.data?.["detail"] === "Bucket name is already taken"
         ) {
           formState.bucketNameTaken = true;
           bucketNameElement.value?.setCustomValidity(
diff --git a/src/components/object-storage/modals/PermissionListModal.vue b/src/components/object-storage/modals/PermissionListModal.vue
index 7cd75ae35722ce621e93482be8a64b6d6ee602b6..1da4cb7129464651fe48a51ec27bffd3d8f5f8d9 100644
--- a/src/components/object-storage/modals/PermissionListModal.vue
+++ b/src/components/object-storage/modals/PermissionListModal.vue
@@ -29,7 +29,7 @@ const state = reactive<{
   currentPermission: {
     bucket_name: "bucketname",
     uid: "uid",
-    permission: "READ",
+    scopes: ["read"],
     from_timestamp: null,
     to_timestamp: null,
     file_prefix: null,
@@ -103,7 +103,7 @@ onBeforeMount(() => {
           >
             <div class="row">
               <span class="text-info col-2 text-start">{{
-                permission.permission
+                permission.scopes.join("").toUpperCase()
               }}</span>
               <span class="col-9 text-center">
                 {{ nameRepository.getName(permission.uid) }}</span
diff --git a/src/components/object-storage/modals/PermissionModal.vue b/src/components/object-storage/modals/PermissionModal.vue
index 25fd80a034e0baf9834360d38587c9904dd9cb00..14593023023847d3f2ad92f48678b07098edd2f7 100644
--- a/src/components/object-storage/modals/PermissionModal.vue
+++ b/src/components/object-storage/modals/PermissionModal.vue
@@ -12,7 +12,6 @@ import type {
   UserOut,
 } from "@/client/types.gen";
 import type { FolderTree } from "@/types/PseudoFolder";
-import { Permission } from "@/client";
 import { Toast } from "bootstrap";
 import FontAwesomeIcon from "@/components/FontAwesomeIcon.vue";
 import { useBucketStore } from "@/stores/buckets";
@@ -48,10 +47,12 @@ let successToast: Toast | null = null;
 const formState = reactive<{
   loading: boolean;
   error: boolean;
+  duplicate: boolean;
   readonly: boolean;
 }>({
   loading: false,
   error: false,
+  duplicate: false,
   readonly: props.readonly,
 });
 
@@ -59,13 +60,15 @@ const permission = reactive<BucketPermissionIn>({
   from_timestamp: undefined,
   to_timestamp: undefined,
   file_prefix: undefined,
-  permission: undefined,
+  scopes: [],
   uid: "",
   bucket_name: props.bucketName,
 });
 
 const permissionDeleted = ref<boolean>(false);
 const permissionForm = ref<HTMLFormElement | undefined>(undefined);
+const permissionReadScope = ref<HTMLInputElement | undefined>(undefined);
+const permissionWriteScope = ref<HTMLInputElement | undefined>(undefined);
 
 // Computes Properties
 // -----------------------------------------------------------------------------
@@ -134,13 +137,13 @@ function updateLocalPermission() {
     permission.uid = props.editUserPermission.uid;
     permission.from_timestamp = props.editUserPermission.from_timestamp;
     permission.to_timestamp = props.editUserPermission.to_timestamp;
-    permission.permission = props.editUserPermission.permission;
+    permission.scopes = props.editUserPermission.scopes;
   } else {
     permission.file_prefix = undefined;
     permission.uid = "";
     permission.from_timestamp = undefined;
     permission.to_timestamp = undefined;
-    permission.permission = undefined;
+    permission.scopes = [];
   }
 }
 
@@ -170,12 +173,30 @@ function findSubFolders(
   return arr;
 }
 
+function formCheckValidity(): boolean {
+  permissionWriteScope.value?.setCustomValidity("");
+  permissionReadScope.value?.setCustomValidity("");
+  if (permissionForm.value?.checkValidity()) {
+    if (permission.scopes.length === 0) {
+      permissionWriteScope.value?.setCustomValidity(
+        "At least one scope must be set",
+      );
+      permissionReadScope.value?.setCustomValidity(
+        "At least one scope must be set",
+      );
+      return false;
+    }
+    return true;
+  }
+  return false;
+}
+
 /**
  * Submit the form
  */
 function formSubmit() {
   formState.error = false;
-  if (permissionForm.value?.checkValidity()) {
+  if (formCheckValidity()) {
     formState.loading = true;
     const serverAnswerPromise = editPermission.value
       ? bucketRepository.updateBucketPermission(
@@ -184,7 +205,7 @@ function formSubmit() {
           {
             to_timestamp: permission.to_timestamp,
             from_timestamp: permission.from_timestamp,
-            permission: permission.permission,
+            scopes: permission.scopes,
             file_prefix: permission.file_prefix,
           } as BucketPermissionParameters,
         )
@@ -195,8 +216,10 @@ function formSubmit() {
         successToast?.show();
         updateLocalPermission();
       })
-      .catch(() => {
+      .catch((e) => {
         formState.error = true;
+        formState.duplicate =
+          e.response?.data?.["detail"]?.includes("already exists");
       })
       .finally(() => {
         formState.loading = false;
@@ -286,7 +309,7 @@ function toTimestampChanged(target?: HTMLInputElement | null) {
     modal-label="Permission Modal"
     v-on="{ 'hidden.bs.modal': modalClosed }"
   >
-    <template v-if="formState.readonly" #header>View Permission </template>
+    <template v-if="formState.readonly" #header>View Permission</template>
     <template v-else-if="props.editUserPermission !== undefined" #header
       >Edit Permission
     </template>
@@ -351,22 +374,42 @@ function toTimestampChanged(target?: HTMLInputElement | null) {
           </div>
         </div>
         <div class="mb-3 row">
-          <label for="permissionTypeInput" class="col-3 col-form-label">
-            Permission Type<span v-if="!formState.readonly">*</span>
-          </label>
-          <div class="col-9">
-            <select
-              id="permissionTypeInput"
-              v-model="permission.permission"
-              class="form-select text-lowercase"
-              required
+          <div class="mb-1">
+            Scopes<span v-if="!formState.readonly">*</span>
+          </div>
+          <div class="form-check form-check-inline w-fit ms-3">
+            <input
+              :id="`scope-permission-read-${randomIDSuffix}`"
+              ref="permissionReadScope"
+              v-model="permission.scopes"
+              class="form-check-input"
+              type="checkbox"
               :disabled="formState.readonly"
+              value="read"
+            />
+            <label
+              class="form-check-label text-uppercase"
+              :for="`scope-permission-read-${randomIDSuffix}`"
             >
-              <option disabled selected>Select one...</option>
-              <option v-for="perm in Permission" :key="perm" :value="perm">
-                {{ perm.toLowerCase() }}
-              </option>
-            </select>
+              read
+            </label>
+          </div>
+          <div class="form-check form-check-inline w-fit">
+            <input
+              :id="`scope-permission-write-${randomIDSuffix}`"
+              ref="permissionWriteScope"
+              v-model="permission.scopes"
+              class="form-check-input"
+              type="checkbox"
+              :disabled="formState.readonly"
+              value="write"
+            />
+            <label
+              class="form-check-label text-uppercase"
+              :for="`scope-permission-write-${randomIDSuffix}`"
+            >
+              write
+            </label>
           </div>
         </div>
         <div class="mb-3 row">
@@ -471,9 +514,12 @@ function toTimestampChanged(target?: HTMLInputElement | null) {
           </div>
         </div>
       </form>
-      <span v-if="formState.error" class="text-danger"
-        >There was some kind of error<br />Try again later</span
-      >
+      <div v-if="formState.error" class="text-danger">
+        <span v-if="formState.duplicate"
+          >Permission for the user
+          {{ nameRepository.getName(permission.uid) }} already exists</span
+        ><span v-else>There was some kind of error<br />Try again later</span>
+      </div>
     </template>
     <template #footer>
       <button
@@ -498,7 +544,11 @@ function toTimestampChanged(target?: HTMLInputElement | null) {
         type="submit"
         :form="'permissionCreateEditForm' + randomIDSuffix"
         class="btn btn-primary"
-        :disabled="formState.loading || permission.uid.length === 0"
+        :disabled="
+          formState.loading ||
+          permission.uid.length === 0 ||
+          permission.scopes.length === 0
+        "
       >
         <span
           v-if="formState.loading"
diff --git a/src/components/resources/modals/CreateResourceModal.vue b/src/components/resources/modals/CreateResourceModal.vue
index 1a573377b94ed2d00f221d4ace2e887b6a699474..960fb89882978b2d49e4f23b61c7328f1cb6e444 100644
--- a/src/components/resources/modals/CreateResourceModal.vue
+++ b/src/components/resources/modals/CreateResourceModal.vue
@@ -58,8 +58,8 @@ function createResource() {
       })
       .catch((error) => {
         if (
-          error.status === 400 &&
-          error.body["detail"] ===
+          error.response?.status === 400 &&
+          error.response?.data?.["detail"] ===
             `Resource with name '${resource.name}' already exists`
         ) {
           formState.resourceNameTaken = true;
diff --git a/src/components/user/CreateApiTokenModal.vue b/src/components/user/CreateApiTokenModal.vue
index ce4100db257acba9755dd0c5475ad31aa896116f..fa6341859f897d659bc01142bcb4fa0ef022ece5 100644
--- a/src/components/user/CreateApiTokenModal.vue
+++ b/src/components/user/CreateApiTokenModal.vue
@@ -1,10 +1,6 @@
 <script setup lang="ts">
 import { onMounted, reactive, ref } from "vue";
-import {
-  type ApiTokenIn,
-  type ApiTokenPrivateOut,
-  ScopeEnum,
-} from "@/client/types.gen";
+import { type ApiTokenIn, type ApiTokenPrivateOut } from "@/client/types.gen";
 import { Modal } from "bootstrap";
 import BootstrapModal from "@/components/modals/BootstrapModal.vue";
 import dayjs from "dayjs";
@@ -33,12 +29,6 @@ const userRepository = useUserStore();
 const tokenCreateForm = ref<HTMLFormElement | undefined>(undefined);
 let createTokenModal: Modal | null = null;
 
-const scopeDescription: Record<ScopeEnum, string> = {
-  read: "Grants read access to the CloWM API. All GET requests are allowed with this scope.",
-  write:
-    "Grants write access to the CloWM API. All POST, DELETE and PUT requests are allowed with this scope.",
-};
-
 const emit = defineEmits<{
   (e: "token-created", token: ApiTokenPrivateOut): void;
 }>();
@@ -144,27 +134,45 @@ onMounted(() => {
         </div>
         <div class="mb-3">
           <div>Select scopes</div>
-          <div
-            v-for="scope in Object.values(ScopeEnum)"
-            :key="scope"
-            class="form-check mb-2"
-          >
+          <div class="form-check mb-2">
+            <input
+              id="scope-input-read"
+              v-model="tokenIn.scopes"
+              class="form-check-input"
+              type="checkbox"
+              value="read"
+            />
+            <label
+              class="form-check-label pt-1"
+              style="line-height: 0.8rem"
+              for="scope-input-read"
+            >
+              <span>read</span>
+              <br />
+              <span class="text-secondary" style="font-size: 0.8rem">
+                Grants read access to the CloWM API. All GET requests are
+                allowed with this scope.
+              </span>
+            </label>
+          </div>
+          <div class="form-check mb-2">
             <input
-              :id="`scope-input-${scope}`"
+              id="scope-input-write"
               v-model="tokenIn.scopes"
               class="form-check-input"
               type="checkbox"
-              :value="scope"
+              value="write"
             />
             <label
               class="form-check-label pt-1"
               style="line-height: 0.8rem"
-              :for="`scope-input-${scope}`"
+              for="scope-input-write"
             >
-              <span>{{ scope.toLowerCase() }}</span>
+              <span>write</span>
               <br />
               <span class="text-secondary" style="font-size: 0.8rem">
-                {{ scopeDescription[scope] }}
+                Grants write access to the CloWM API. All POST, DELETE and PUT
+                requests are allowed with this scope.
               </span>
             </label>
           </div>
diff --git a/src/components/workflows/modals/CreateWorkflowModal.vue b/src/components/workflows/modals/CreateWorkflowModal.vue
index 3bd4a52778246142a65cc8fec02703b51cfc4c32..3062ae20734013dc372f9b08454547008c4f52be 100644
--- a/src/components/workflows/modals/CreateWorkflowModal.vue
+++ b/src/components/workflows/modals/CreateWorkflowModal.vue
@@ -185,7 +185,7 @@ function createWorkflow() {
         resetForm();
       })
       .catch((error) => {
-        const errorText = error.body["detail"];
+        const errorText = error.response?.data?.["detail"] ?? "";
         if (errorText.startsWith("Workflow with name")) {
           workflowNameElement.value?.setCustomValidity("Name is already taken");
         } else if (errorText.startsWith("Workflow with git_commit_hash")) {
diff --git a/src/components/workflows/modals/UpdateWorkflowModal.vue b/src/components/workflows/modals/UpdateWorkflowModal.vue
index 10de393b4f9d31d1615787882641bbdd8f382cc5..399e27d99c545d5be404c560f9aba078b36843ad 100644
--- a/src/components/workflows/modals/UpdateWorkflowModal.vue
+++ b/src/components/workflows/modals/UpdateWorkflowModal.vue
@@ -266,7 +266,7 @@ function updateWorkflow() {
         resetForm();
       })
       .catch((error) => {
-        const errorText = error.body["detail"];
+        const errorText = error.response?.data?.["detail"];
         if (errorText.startsWith("Workflow with git_commit_hash")) {
           workflowGitCommitHashElement.value?.setCustomValidity(
             "Git commit is already used by a workflow",
diff --git a/src/stores/buckets.ts b/src/stores/buckets.ts
index 05765ab4cc5d4907f10d74e390c7f33fc69ab5e0..5fe24b28c8b812647172f4b866a3d2a0b8e818f0 100644
--- a/src/stores/buckets.ts
+++ b/src/stores/buckets.ts
@@ -56,7 +56,7 @@ export const useBucketStore = defineStore({
       return (bucketName) => {
         // If this is a foreign bucket, check that the user has write permission
         if (this.ownPermissions[bucketName] != undefined) {
-          return this.ownPermissions[bucketName].permission !== "READ";
+          return this.ownPermissions[bucketName].scopes.includes("write");
         }
         return this.bucketMapping[bucketName]?.owner_id == authStore.currentUID;
       };
@@ -66,7 +66,7 @@ export const useBucketStore = defineStore({
       return (bucketName) => {
         // If this is a foreign bucket, check that the user has read permission
         if (this.ownPermissions[bucketName] != undefined) {
-          return this.ownPermissions[bucketName].permission !== "WRITE";
+          return this.ownPermissions[bucketName].scopes.includes("read");
         }
         return this.bucketMapping[bucketName]?.owner_id == authStore.currentUID;
       };
@@ -79,6 +79,7 @@ export const useBucketStore = defineStore({
     ): Promise<BucketOut[]> {
       return BucketService.bucketListBuckets({
         query: { owner_id: ownerId, bucket_type: bucketType },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((buckets) => {
@@ -100,6 +101,7 @@ export const useBucketStore = defineStore({
       }
       return BucketPermissionService.bucketPermissionListPermissionsPerUser({
         path: { uid: authStore.currentUID },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((permissions) => {
@@ -146,6 +148,7 @@ export const useBucketStore = defineStore({
       }
       return BucketService.bucketGetBucket({
         path: { bucket_name: bucketName },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((bucket) => {
@@ -158,6 +161,7 @@ export const useBucketStore = defineStore({
       return BucketService.bucketDeleteBucket({
         path: { bucket_name: bucketName },
         query: { force_delete: true },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then(() => {
@@ -165,7 +169,10 @@ export const useBucketStore = defineStore({
         });
     },
     createBucket(bucket: BucketIn): Promise<BucketOut> {
-      return BucketService.bucketCreateBucket({ body: bucket })
+      return BucketService.bucketCreateBucket({
+        body: bucket,
+        throwOnError: true,
+      })
         .then((response) => response.data!)
         .then((createdBucket) => {
           this.bucketMapping[createdBucket.name] = createdBucket;
@@ -185,6 +192,7 @@ export const useBucketStore = defineStore({
       }
       return BucketPermissionService.bucketPermissionListPermissionsPerBucket({
         path: { bucket_name: bucketName },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((permissions) => {
@@ -199,6 +207,7 @@ export const useBucketStore = defineStore({
           bucket_name: bucketName,
           uid: uid,
         },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then(() => {
@@ -221,6 +230,7 @@ export const useBucketStore = defineStore({
     ): Promise<BucketPermissionOut> {
       return BucketPermissionService.bucketPermissionCreatePermission({
         body: permissionIn,
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((permission) => {
@@ -247,6 +257,7 @@ export const useBucketStore = defineStore({
           uid: uid,
         },
         body: permissionParams,
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((permissionOut) => {
@@ -275,6 +286,7 @@ export const useBucketStore = defineStore({
           body: {
             public: public_,
           },
+          throwOnError: true,
         })
       ).data!;
       this.bucketMapping[bucketName] = bucket;
@@ -291,11 +303,13 @@ export const useBucketStore = defineStore({
           size_limit: size_limit,
           object_limit: object_limit,
         },
+        throwOnError: true,
       }).then((response) => response.data!);
     },
     acceptBucketOtr(otr: OwnershipTransferRequestOut): Promise<BucketOut> {
       return BucketService.bucketAcceptBucketOtr({
         path: { bucket_name: otr.target_id },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((bucket) => {
diff --git a/src/stores/otrs.ts b/src/stores/otrs.ts
index c68b09704aa2783a04c5aeaa347d44dd72baf67e..344eefad6455c3762f8c3e6f1da60ab2f5abd71e 100644
--- a/src/stores/otrs.ts
+++ b/src/stores/otrs.ts
@@ -58,28 +58,26 @@ export const useOTRStore = defineStore({
       currentOwnerId?: string,
       newOwnerId?: string,
     ): Promise<OwnershipTransferRequestOut[]> {
+      const options = {
+        query: {
+          current_owner_id: currentOwnerId,
+          new_owner_id: newOwnerId,
+        },
+        throwOnError: true,
+      };
       switch (targetType) {
         case OwnershipTypeEnum.BUCKET:
-          return BucketService.bucketListBucketOtrs({
-            query: {
-              current_owner_id: currentOwnerId,
-              new_owner_id: newOwnerId,
-            },
-          }).then((response) => response.data!);
+          return BucketService.bucketListBucketOtrs(options).then(
+            (response) => response.data!,
+          );
         case OwnershipTypeEnum.WORKFLOW:
-          return WorkflowService.workflowListWorkflowOtrs({
-            query: {
-              current_owner_id: currentOwnerId,
-              new_owner_id: newOwnerId,
-            },
-          }).then((response) => response.data!);
+          return WorkflowService.workflowListWorkflowOtrs(options).then(
+            (response) => response.data!,
+          );
         case OwnershipTypeEnum.RESOURCE:
-          return ResourceService.resourceListResourceOtrs({
-            query: {
-              current_owner_id: currentOwnerId,
-              new_owner_id: newOwnerId,
-            },
-          }).then((response) => response.data!);
+          return ResourceService.resourceListResourceOtrs(options).then(
+            (response) => response.data!,
+          );
       }
     },
     fetchOwnOtrs(
@@ -147,14 +145,17 @@ export const useOTRStore = defineStore({
           case OwnershipTypeEnum.BUCKET:
             return BucketService.bucketDeleteBucketOtr({
               path: { bucket_name: otr.target_id },
+              throwOnError: true,
             });
           case OwnershipTypeEnum.WORKFLOW:
             return WorkflowService.workflowDeleteWorkflowOtr({
               path: { wid: otr.target_id },
+              throwOnError: true,
             });
           case OwnershipTypeEnum.RESOURCE:
             return ResourceService.resourceDeleteResourceOtr({
               path: { rid: otr.target_id },
+              throwOnError: true,
             });
         }
       })();
@@ -176,16 +177,19 @@ export const useOTRStore = defineStore({
             return BucketService.bucketCreateBucketOtr({
               path: { bucket_name: targetId },
               body: otr,
+              throwOnError: true,
             });
           case OwnershipTypeEnum.WORKFLOW:
             return WorkflowService.workflowCreateWorkflowOtr({
               path: { wid: targetId },
               body: otr,
+              throwOnError: true,
             });
           case OwnershipTypeEnum.RESOURCE:
             return ResourceService.resourceCreateResourceOtr({
               path: { rid: targetId },
               body: otr,
+              throwOnError: true,
             });
         }
       })();
diff --git a/src/stores/resources.ts b/src/stores/resources.ts
index 89ebe2499e9e248aaac8be3268ac0db366a52a25..a786ecc9744af986d5423a781699ab87bfb6cdcf 100644
--- a/src/stores/resources.ts
+++ b/src/stores/resources.ts
@@ -92,6 +92,7 @@ export const useResourceStore = defineStore({
       return ResourceService.resourceGetResource({
         path: { rid: resource_id },
         query: { version_status: versionStatus },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((resource) => {
@@ -112,7 +113,7 @@ export const useResourceStore = defineStore({
       if (this.__syncRequestsFetched) {
         onFinally?.();
       }
-      return ResourceService.resourceListSyncRequests()
+      return ResourceService.resourceListSyncRequests({ throwOnError: true })
         .then((response) => response.data!)
         .then((requests) => {
           this.__syncRequestsFetched = true;
@@ -142,6 +143,7 @@ export const useResourceStore = defineStore({
           name_substring: searchString,
           public: _public,
         },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((resources) => {
@@ -177,6 +179,7 @@ export const useResourceStore = defineStore({
           rvid: resource_version_id,
           rid: resource_id,
         },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((tree) => {
@@ -266,7 +269,10 @@ export const useResourceStore = defineStore({
     },
     async createResource(resource: ResourceIn): Promise<ResourceOut> {
       const createdResource = (
-        await ResourceService.resourceCreateResource({ body: resource })
+        await ResourceService.resourceCreateResource({
+          body: resource,
+          throwOnError: true,
+        })
       ).data!;
       this.ownResourceMapping[createdResource.resource_id] = createdResource;
       const nameStore = useNameStore();
@@ -291,6 +297,7 @@ export const useResourceStore = defineStore({
           rvid: resourceVersion.resource_version_id,
         },
         body: request,
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((changedResourceVersion) => {
@@ -333,6 +340,7 @@ export const useResourceStore = defineStore({
             rid: resourceVersion.resource_id,
             rvid: resourceVersion.resource_version_id,
           },
+          throwOnError: true,
         },
       )
         .then((response) => response.data!)
@@ -372,6 +380,7 @@ export const useResourceStore = defineStore({
           rid: resource_id,
         },
         body: version,
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((versionOut) => {
@@ -399,6 +408,7 @@ export const useResourceStore = defineStore({
           rvid: resourceVersion.resource_version_id,
         },
         body: requestAnswer,
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then(this._updateReviewableResourceVersion);
@@ -413,6 +423,7 @@ export const useResourceStore = defineStore({
           rvid: resourceVersion.resource_version_id,
         },
         body: requestAnswer,
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((version) => {
@@ -450,6 +461,7 @@ export const useResourceStore = defineStore({
           rid: resourceVersion.resource_id,
           rvid: resourceVersion.resource_version_id,
         },
+        throwOnError: true,
       }).then((response) => response.data!);
     },
     deleteOnCluster(
@@ -461,6 +473,7 @@ export const useResourceStore = defineStore({
             rid: resourceVersion.resource_id,
             rvid: resourceVersion.resource_version_id,
           },
+          throwOnError: true,
         },
       ).then((response) => response.data!);
     },
@@ -472,11 +485,13 @@ export const useResourceStore = defineStore({
           rid: resourceVersion.resource_id,
           rvid: resourceVersion.resource_version_id,
         },
+        throwOnError: true,
       }).then((response) => response.data!);
     },
     acceptResourceOtr(otr: OwnershipTransferRequestOut): Promise<ResourceOut> {
       return ResourceService.resourceAcceptResourceOtr({
         path: { rid: otr.target_id },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((resource) => {
diff --git a/src/stores/s3keys.ts b/src/stores/s3keys.ts
index cf8054a4b186991392c02f7e4cd20dabd45a474b..d9b462685fa71f9a0842c38a703e35f1f8478ada 100644
--- a/src/stores/s3keys.ts
+++ b/src/stores/s3keys.ts
@@ -28,6 +28,7 @@ export const useS3KeyStore = defineStore({
       }
       return S3KeyService.s3KeyGetUserKeys({
         path: { uid: useUserStore().currentUID },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((keys) => {
@@ -49,6 +50,7 @@ export const useS3KeyStore = defineStore({
           access_id: access_id,
           uid: userRepository.currentUID,
         },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then(() => {
@@ -61,6 +63,7 @@ export const useS3KeyStore = defineStore({
       const userRepository = useUserStore();
       return S3KeyService.s3KeyCreateUserKey({
         path: { uid: userRepository.currentUID },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((key) => {
diff --git a/src/stores/users.ts b/src/stores/users.ts
index f247111729d79ddf7fe8257e475bdea5bfabd902..e2bcb983bf6635fb2e7943402518f7ad816e6693 100644
--- a/src/stores/users.ts
+++ b/src/stores/users.ts
@@ -88,7 +88,7 @@ export const useUserStore = defineStore({
   },
   actions: {
     getCurrentUser(): Promise<UserOutExtended> {
-      return UserService.userGetLoggedInUser()
+      return UserService.userGetLoggedInUser({ throwOnError: true })
         .then((response) => response.data!)
         .then((user) => {
           this.updateUser(user);
@@ -128,6 +128,7 @@ export const useUserStore = defineStore({
           name_substring: searchString,
           filter_roles: filterRoles,
         },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((users) => {
@@ -145,7 +146,10 @@ export const useUserStore = defineStore({
       if (this.apiTokens.length > 0) {
         onFinally?.();
       }
-      return ApiTokenService.apiTokenListToken({ path: { uid: uid } })
+      return ApiTokenService.apiTokenListToken({
+        path: { uid: uid },
+        throwOnError: true,
+      })
         .then((response) => response.data!)
         .then((tokens) => {
           for (const token of tokens) {
@@ -156,7 +160,10 @@ export const useUserStore = defineStore({
         .finally(onFinally);
     },
     createApiToken(tokenIn: ApiTokenIn): Promise<ApiTokenPrivateOut> {
-      return ApiTokenService.apiTokenCreateToken({ body: tokenIn })
+      return ApiTokenService.apiTokenCreateToken({
+        body: tokenIn,
+        throwOnError: true,
+      })
         .then((response) => response.data!)
         .then((token) => {
           this.apiTokensMapping[token.token_id] = token as ApiTokenOut;
@@ -164,7 +171,10 @@ export const useUserStore = defineStore({
         });
     },
     deleteApiToken(tokenId: string): Promise<void> {
-      return ApiTokenService.apiTokenDeleteToken({ path: { tid: tokenId } })
+      return ApiTokenService.apiTokenDeleteToken({
+        path: { tid: tokenId },
+        throwOnError: true,
+      })
         .then((response) => response.data!)
         .then(() => {
           delete this.apiTokensMapping[tokenId];
@@ -176,10 +186,11 @@ export const useUserStore = defineStore({
         body: {
           roles: roles,
         },
+        throwOnError: true,
       }).then((response) => response.data!);
     },
     inviteUser(userIn: UserIn): Promise<UserOutExtended> {
-      return UserService.userCreateUser({ body: userIn })
+      return UserService.userCreateUser({ body: userIn, throwOnError: true })
         .then((response) => response.data!)
         .then((user) => {
           useNameStore().addNameToMapping(user.uid, user.display_name);
@@ -187,7 +198,10 @@ export const useUserStore = defineStore({
         });
     },
     resendInvitationEmail(uid: string): Promise<UserOutExtended> {
-      return UserService.userResendInvitation({ path: { uid: uid } })
+      return UserService.userResendInvitation({
+        path: { uid: uid },
+        throwOnError: true,
+      })
         .then((response) => response.data!)
         .then((user) => {
           useNameStore().addNameToMapping(user.uid, user.display_name);
@@ -197,6 +211,7 @@ export const useUserStore = defineStore({
     searchUser(searchString: string): Promise<UserOut[]> {
       return UserService.userSearchUsers({
         query: { name_substring: searchString },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((users) => {
diff --git a/src/stores/workflowExecutions.ts b/src/stores/workflowExecutions.ts
index 3f377ec9e721c7118692dfd82f611a89368c3af0..554ace50f4d508bb052d8234571c77002752ed44 100644
--- a/src/stores/workflowExecutions.ts
+++ b/src/stores/workflowExecutions.ts
@@ -131,6 +131,7 @@ export const useWorkflowExecutionStore = defineStore({
       const userStore = useUserStore();
       return WorkflowService.workflowGetDeveloperWorkflowStatistics({
         query: { developer_id: userStore.currentUID },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((executions) => {
@@ -179,6 +180,7 @@ export const useWorkflowExecutionStore = defineStore({
       }
       return WorkflowExecutionService.workflowExecutionGetWorkflowExecution({
         path: { eid: executionId },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((execution) => {
@@ -201,7 +203,7 @@ export const useWorkflowExecutionStore = defineStore({
             return parameters;
           }
           return WorkflowExecutionService.workflowExecutionGetWorkflowExecutionParams(
-            { path: { eid: executionId } },
+            { path: { eid: executionId }, throwOnError: true },
           )
             .then((response) => response.data!)
             .then((parameters) => {
@@ -217,6 +219,7 @@ export const useWorkflowExecutionStore = defineStore({
     deleteExecution(executionId: string): Promise<void> {
       return WorkflowExecutionService.workflowExecutionDeleteWorkflowExecution({
         path: { eid: executionId },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then(() => {
@@ -226,6 +229,7 @@ export const useWorkflowExecutionStore = defineStore({
     cancelExecution(executionId: string): Promise<void> {
       return WorkflowExecutionService.workflowExecutionCancelWorkflowExecution({
         path: { eid: executionId },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then(() => {
@@ -243,6 +247,7 @@ export const useWorkflowExecutionStore = defineStore({
     ): Promise<WorkflowExecutionOut> {
       return WorkflowExecutionService.workflowExecutionStartWorkflow({
         body: executionIn,
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((execution) => {
@@ -255,6 +260,7 @@ export const useWorkflowExecutionStore = defineStore({
     ): Promise<WorkflowExecutionOut> {
       return WorkflowExecutionService.workflowExecutionStartArbitraryWorkflow({
         body: executionIn,
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((execution) => {
diff --git a/src/stores/workflows.ts b/src/stores/workflows.ts
index 3615316bc0d7af9b23c2a5c0a93d3fc4ebb32837..367e493e27912992fae1d5cdc31feb5ea2e2e3aa 100644
--- a/src/stores/workflows.ts
+++ b/src/stores/workflows.ts
@@ -94,7 +94,7 @@ export const useWorkflowStore = defineStore({
       if (Object.keys(this.workflowMapping).length > 0) {
         onFinally?.();
       }
-      return WorkflowService.workflowListWorkflows()
+      return WorkflowService.workflowListWorkflows({ throwOnError: true })
         .then((response) => response.data!)
         .then((workflows) => {
           for (const workflow of workflows) {
@@ -128,6 +128,7 @@ export const useWorkflowStore = defineStore({
           version_status: Object.values(WorkflowVersionStatus),
           developer_id: authStore.currentUID,
         },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((workflows) => {
@@ -187,6 +188,7 @@ export const useWorkflowStore = defineStore({
             document: document,
             mode_id: mode_id,
           },
+          throwOnError: true,
         },
       )
         .then((response) => response.data!)
@@ -211,6 +213,7 @@ export const useWorkflowStore = defineStore({
         query: {
           version_status: [WorkflowVersionStatus.CREATED],
         },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((workflows) => {
@@ -275,6 +278,7 @@ export const useWorkflowStore = defineStore({
             ? Object.values(WorkflowVersionStatus)
             : undefined,
         },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((workflow) => {
@@ -342,6 +346,7 @@ export const useWorkflowStore = defineStore({
           wid: workflow_id,
           git_commit_hash: version_id,
         },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((version) => {
@@ -391,6 +396,7 @@ export const useWorkflowStore = defineStore({
       return WorkflowService.workflowUpdateWorkflow({
         path: { wid: workflow_id },
         body: version,
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((updatedVersion) => {
@@ -411,6 +417,7 @@ export const useWorkflowStore = defineStore({
     deleteWorkflow(workflow_id: string): Promise<void> {
       return WorkflowService.workflowDeleteWorkflow({
         path: { wid: workflow_id },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then(() => {
@@ -420,7 +427,10 @@ export const useWorkflowStore = defineStore({
         });
     },
     createWorkflow(workflow: WorkflowIn): Promise<WorkflowOut> {
-      return WorkflowService.workflowCreateWorkflow({ body: workflow })
+      return WorkflowService.workflowCreateWorkflow({
+        body: workflow,
+        throwOnError: true,
+      })
         .then((response) => response.data!)
         .then((workflowOut) => {
           this.comprehensiveWorkflowMapping[workflowOut.workflow_id] =
@@ -441,6 +451,7 @@ export const useWorkflowStore = defineStore({
         {
           path: { wid: workflow_id },
           body: credentials,
+          throwOnError: true,
         },
       )
         .then((response) => response.data!)
@@ -459,7 +470,7 @@ export const useWorkflowStore = defineStore({
     },
     deleteWorkflowCredentials(workflow_id: string): Promise<void> {
       return WorkflowCredentialsService.workflowCredentialsDeleteWorkflowCredentials(
-        { path: { wid: workflow_id } },
+        { path: { wid: workflow_id }, throwOnError: true },
       )
         .then((response) => response.data!)
         .then(() => {
@@ -486,6 +497,7 @@ export const useWorkflowStore = defineStore({
           git_commit_hash: version_id,
         },
         body: icon,
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((response) => {
@@ -531,6 +543,7 @@ export const useWorkflowStore = defineStore({
           wid: workflow_id,
           git_commit_hash: version_id,
         },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then(() => {
@@ -578,6 +591,7 @@ export const useWorkflowStore = defineStore({
           git_commit_hash: version_id,
         },
         body: { status: status },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then(() => {
@@ -609,6 +623,7 @@ export const useWorkflowStore = defineStore({
             git_commit_hash: version_id,
           },
           body: extension,
+          throwOnError: true,
         },
       )
         .then((response) => response.data!)
@@ -656,6 +671,7 @@ export const useWorkflowStore = defineStore({
             wid: workflow_id,
             git_commit_hash: version_id,
           },
+          throwOnError: true,
         },
       )
         .then((response) => response.data!)
@@ -696,6 +712,7 @@ export const useWorkflowStore = defineStore({
     acceptWorkflowOtr(otr: OwnershipTransferRequestOut): Promise<WorkflowOut> {
       return WorkflowService.workflowAcceptWorkflowOtr({
         path: { wid: otr.target_id },
+        throwOnError: true,
       })
         .then((response) => response.data!)
         .then((workflow) => {
diff --git a/src/views/admin/AdminUsersView.vue b/src/views/admin/AdminUsersView.vue
index 03725538734caf26cb25924d551eaec25e7ff925..9fbb8b96c0fa84270b72f3d1fe30986980988947 100644
--- a/src/views/admin/AdminUsersView.vue
+++ b/src/views/admin/AdminUsersView.vue
@@ -66,7 +66,7 @@ function saveUserRoles(index: number) {
       successRoleToast?.show();
     })
     .catch((err) => {
-      userState.errorMessage = err.body?.detail;
+      userState.errorMessage = err.response?.data?.["detail"];
       errorToast?.show();
     })
     .finally(() => {
diff --git a/src/views/workflows/ArbitraryWorkflowView.vue b/src/views/workflows/ArbitraryWorkflowView.vue
index dab17257e6512b774a0e880709c0671e8b20a925..2cc8579fecf769fd3ffb176741034ea5b49b22cc 100644
--- a/src/views/workflows/ArbitraryWorkflowView.vue
+++ b/src/views/workflows/ArbitraryWorkflowView.vue
@@ -167,7 +167,9 @@ function startWorkflow(
       })
       .catch((err) => {
         console.error(err);
-        if (err.body["detail"].includes("workflow execution limit")) {
+        if (
+          err.response?.data?.["detail"].includes("workflow execution limit")
+        ) {
           workflowExecutionState.errorType = "limit";
         }
         errorToast?.show();
diff --git a/src/views/workflows/StartWorkflowView.vue b/src/views/workflows/StartWorkflowView.vue
index e6930937f2f1025a642fc5498cdd2682f54ba766..e84885ded48e880fec6450a0d0619f9ce0bc7d10 100644
--- a/src/views/workflows/StartWorkflowView.vue
+++ b/src/views/workflows/StartWorkflowView.vue
@@ -93,7 +93,7 @@ function startWorkflow(
       })
       .catch((err) => {
         console.error(err);
-        versionState.errorText = err.body["detail"] ?? "";
+        versionState.errorText = err.response?.data?.["detail"] ?? "";
         errorToast?.show();
       })
       .finally(() => {