diff --git a/openapi-clowm.json b/openapi-clowm.json
index 48f63d47f687a81105759ddda7d62af7a1866b75..4473d5b7c9093cce1ce8d13d18a166db34d667c6 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":{"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
+{"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}/metadata":{"get":{"tags":["Workflow Version"],"summary":"Get metadata of workflow version","description":"Get the metadata of a workflow version.\n\nPermission `workflow:read` required if the current user is the developer of the workflow,\notherwise `workflow:read_any`","operationId":"Workflow Version-get_workflow_version_metadata","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/WorkflowVersionMetadataOut"}}}},"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 Version"],"summary":"Update metadata of workflow version","description":"Update the metadata of a workflow version.\n\nPermission `workflow:update` required if the current user is the developer of the workflow,\notherwise `workflow:update_any`","operationId":"Workflow Version-update_workflow_version_metadata","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/WorkflowVersionMetadataIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionMetadataOut"}}}},"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","24.10.0"],"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]{40}$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"initial_version":{"type":"string","maxLength":10,"minLength":5,"title":"Initial Version","description":"Version of the Workflow. Should follow semantic versioning","examples":["v1.1.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.","examples":["24.04.4"]}},"type":"object","required":["name","short_description","repository_url","git_commit_hash","initial_version","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"]}},"type":"object","required":["version","git_commit_hash"],"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.1.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.","examples":["24.04.4"]}},"type":"object","required":["status","workflow_id","version","workflow_version_id","created_at","nextflow_version"],"title":"WorkflowVersion"},"WorkflowVersionMetadataIn":{"properties":{"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow version requires.","examples":["24.04.4"]},"nextflow_config":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextflow Config","description":"Nextflow config that overrides the config in the git repository"},"default_container":{"anyOf":[{"type":"string","pattern":":[a-zA-Z0-9_][a-zA-Z0-9-_\\.]{0,127}$"},{"type":"null"}],"title":"Default Container","description":"Default container to use for all Nextflow processes that have to container specified","examples":["debian:12-slim"]}},"type":"object","required":["nextflow_version"],"title":"WorkflowVersionMetadataIn"},"WorkflowVersionMetadataOut":{"properties":{"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow version requires.","examples":["24.04.4"]},"nextflow_config":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextflow Config","description":"Nextflow config that overrides the config in the git repository"},"default_container":{"anyOf":[{"type":"string","pattern":":[a-zA-Z0-9_][a-zA-Z0-9-_\\.]{0,127}$"},{"type":"null"}],"title":"Default Container","description":"Default container to use for all Nextflow processes that have to container specified","examples":["debian:12-slim"]}},"type":"object","required":["nextflow_version"],"title":"WorkflowVersionMetadataOut"},"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/package-lock.json b/package-lock.json
index 45f04dd480706af1c62478efe89c356e60fa2c1a..910946d4433704f8ffa48f5cfc403bf9a977d6d7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -35,7 +35,7 @@
       },
       "devDependencies": {
         "@eslint/compat": "^1.2.0",
-        "@hey-api/openapi-ts": "^0.54.0",
+        "@hey-api/openapi-ts": "^0.55.0",
         "@rushstack/eslint-patch": "~1.10.0",
         "@tsconfig/node20": "^20.1.2",
         "@types/bootstrap": "~5.2.0",
@@ -282,68 +282,68 @@
       }
     },
     "node_modules/@aws-sdk/client-s3": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.687.0.tgz",
+      "integrity": "sha512-2IoaVAd7HCIDhfeTTrk8CAosEVqnQig47Tra2uOBEyzpcCFQLmcY57/sbHCpJ3ntnU8see53q0bQ+fdew4MGLA==",
       "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.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",
-        "@smithy/eventstream-serde-config-resolver": "^3.0.7",
-        "@smithy/eventstream-serde-node": "^3.0.9",
-        "@smithy/fetch-http-handler": "^3.2.9",
-        "@smithy/hash-blob-browser": "^3.1.6",
-        "@smithy/hash-node": "^3.0.7",
-        "@smithy/hash-stream-node": "^3.1.6",
-        "@smithy/invalid-dependency": "^3.0.7",
-        "@smithy/md5-js": "^3.0.7",
-        "@smithy/middleware-content-length": "^3.0.9",
-        "@smithy/middleware-endpoint": "^3.1.4",
-        "@smithy/middleware-retry": "^3.0.23",
-        "@smithy/middleware-serde": "^3.0.7",
-        "@smithy/middleware-stack": "^3.0.7",
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/node-http-handler": "^3.2.4",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
-        "@smithy/url-parser": "^3.0.7",
+        "@aws-sdk/client-sso-oidc": "3.687.0",
+        "@aws-sdk/client-sts": "3.687.0",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/credential-provider-node": "3.687.0",
+        "@aws-sdk/middleware-bucket-endpoint": "3.686.0",
+        "@aws-sdk/middleware-expect-continue": "3.686.0",
+        "@aws-sdk/middleware-flexible-checksums": "3.687.0",
+        "@aws-sdk/middleware-host-header": "3.686.0",
+        "@aws-sdk/middleware-location-constraint": "3.686.0",
+        "@aws-sdk/middleware-logger": "3.686.0",
+        "@aws-sdk/middleware-recursion-detection": "3.686.0",
+        "@aws-sdk/middleware-sdk-s3": "3.687.0",
+        "@aws-sdk/middleware-ssec": "3.686.0",
+        "@aws-sdk/middleware-user-agent": "3.687.0",
+        "@aws-sdk/region-config-resolver": "3.686.0",
+        "@aws-sdk/signature-v4-multi-region": "3.687.0",
+        "@aws-sdk/types": "3.686.0",
+        "@aws-sdk/util-endpoints": "3.686.0",
+        "@aws-sdk/util-user-agent-browser": "3.686.0",
+        "@aws-sdk/util-user-agent-node": "3.687.0",
+        "@aws-sdk/xml-builder": "3.686.0",
+        "@smithy/config-resolver": "^3.0.10",
+        "@smithy/core": "^2.5.1",
+        "@smithy/eventstream-serde-browser": "^3.0.11",
+        "@smithy/eventstream-serde-config-resolver": "^3.0.8",
+        "@smithy/eventstream-serde-node": "^3.0.10",
+        "@smithy/fetch-http-handler": "^4.0.0",
+        "@smithy/hash-blob-browser": "^3.1.7",
+        "@smithy/hash-node": "^3.0.8",
+        "@smithy/hash-stream-node": "^3.1.7",
+        "@smithy/invalid-dependency": "^3.0.8",
+        "@smithy/md5-js": "^3.0.8",
+        "@smithy/middleware-content-length": "^3.0.10",
+        "@smithy/middleware-endpoint": "^3.2.1",
+        "@smithy/middleware-retry": "^3.0.25",
+        "@smithy/middleware-serde": "^3.0.8",
+        "@smithy/middleware-stack": "^3.0.8",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/node-http-handler": "^3.2.5",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
+        "@smithy/url-parser": "^3.0.8",
         "@smithy/util-base64": "^3.0.0",
         "@smithy/util-body-length-browser": "^3.0.0",
         "@smithy/util-body-length-node": "^3.0.0",
-        "@smithy/util-defaults-mode-browser": "^3.0.23",
-        "@smithy/util-defaults-mode-node": "^3.0.23",
-        "@smithy/util-endpoints": "^2.1.3",
-        "@smithy/util-middleware": "^3.0.7",
-        "@smithy/util-retry": "^3.0.7",
-        "@smithy/util-stream": "^3.1.9",
+        "@smithy/util-defaults-mode-browser": "^3.0.25",
+        "@smithy/util-defaults-mode-node": "^3.0.25",
+        "@smithy/util-endpoints": "^2.1.4",
+        "@smithy/util-middleware": "^3.0.8",
+        "@smithy/util-retry": "^3.0.8",
+        "@smithy/util-stream": "^3.2.1",
         "@smithy/util-utf8": "^3.0.0",
-        "@smithy/util-waiter": "^3.1.6",
+        "@smithy/util-waiter": "^3.1.7",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -351,47 +351,47 @@
       }
     },
     "node_modules/@aws-sdk/client-sso": {
-      "version": "3.682.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.682.0.tgz",
-      "integrity": "sha512-PYH9RFUMYLFl66HSBq4tIx6fHViMLkhJHTYJoJONpBs+Td+NwVJ895AdLtDsBIhMS0YseCbPpuyjUCJgsUrwUw==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.687.0.tgz",
+      "integrity": "sha512-dfj0y9fQyX4kFill/ZG0BqBTLQILKlL7+O5M4F9xlsh2WNuV2St6WtcOg14Y1j5UODPJiJs//pO+mD1lihT5Kw==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha256-browser": "5.2.0",
         "@aws-crypto/sha256-js": "5.2.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",
-        "@smithy/hash-node": "^3.0.7",
-        "@smithy/invalid-dependency": "^3.0.7",
-        "@smithy/middleware-content-length": "^3.0.9",
-        "@smithy/middleware-endpoint": "^3.1.4",
-        "@smithy/middleware-retry": "^3.0.23",
-        "@smithy/middleware-serde": "^3.0.7",
-        "@smithy/middleware-stack": "^3.0.7",
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/node-http-handler": "^3.2.4",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
-        "@smithy/url-parser": "^3.0.7",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/middleware-host-header": "3.686.0",
+        "@aws-sdk/middleware-logger": "3.686.0",
+        "@aws-sdk/middleware-recursion-detection": "3.686.0",
+        "@aws-sdk/middleware-user-agent": "3.687.0",
+        "@aws-sdk/region-config-resolver": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
+        "@aws-sdk/util-endpoints": "3.686.0",
+        "@aws-sdk/util-user-agent-browser": "3.686.0",
+        "@aws-sdk/util-user-agent-node": "3.687.0",
+        "@smithy/config-resolver": "^3.0.10",
+        "@smithy/core": "^2.5.1",
+        "@smithy/fetch-http-handler": "^4.0.0",
+        "@smithy/hash-node": "^3.0.8",
+        "@smithy/invalid-dependency": "^3.0.8",
+        "@smithy/middleware-content-length": "^3.0.10",
+        "@smithy/middleware-endpoint": "^3.2.1",
+        "@smithy/middleware-retry": "^3.0.25",
+        "@smithy/middleware-serde": "^3.0.8",
+        "@smithy/middleware-stack": "^3.0.8",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/node-http-handler": "^3.2.5",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
+        "@smithy/url-parser": "^3.0.8",
         "@smithy/util-base64": "^3.0.0",
         "@smithy/util-body-length-browser": "^3.0.0",
         "@smithy/util-body-length-node": "^3.0.0",
-        "@smithy/util-defaults-mode-browser": "^3.0.23",
-        "@smithy/util-defaults-mode-node": "^3.0.23",
-        "@smithy/util-endpoints": "^2.1.3",
-        "@smithy/util-middleware": "^3.0.7",
-        "@smithy/util-retry": "^3.0.7",
+        "@smithy/util-defaults-mode-browser": "^3.0.25",
+        "@smithy/util-defaults-mode-node": "^3.0.25",
+        "@smithy/util-endpoints": "^2.1.4",
+        "@smithy/util-middleware": "^3.0.8",
+        "@smithy/util-retry": "^3.0.8",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -400,48 +400,48 @@
       }
     },
     "node_modules/@aws-sdk/client-sso-oidc": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.687.0.tgz",
+      "integrity": "sha512-Rdd8kLeTeh+L5ZuG4WQnWgYgdv7NorytKdZsGjiag1D8Wv3PcJvPqqWdgnI0Og717BSXVoaTYaN34FyqFYSx6Q==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha256-browser": "5.2.0",
         "@aws-crypto/sha256-js": "5.2.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",
-        "@smithy/hash-node": "^3.0.7",
-        "@smithy/invalid-dependency": "^3.0.7",
-        "@smithy/middleware-content-length": "^3.0.9",
-        "@smithy/middleware-endpoint": "^3.1.4",
-        "@smithy/middleware-retry": "^3.0.23",
-        "@smithy/middleware-serde": "^3.0.7",
-        "@smithy/middleware-stack": "^3.0.7",
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/node-http-handler": "^3.2.4",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
-        "@smithy/url-parser": "^3.0.7",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/credential-provider-node": "3.687.0",
+        "@aws-sdk/middleware-host-header": "3.686.0",
+        "@aws-sdk/middleware-logger": "3.686.0",
+        "@aws-sdk/middleware-recursion-detection": "3.686.0",
+        "@aws-sdk/middleware-user-agent": "3.687.0",
+        "@aws-sdk/region-config-resolver": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
+        "@aws-sdk/util-endpoints": "3.686.0",
+        "@aws-sdk/util-user-agent-browser": "3.686.0",
+        "@aws-sdk/util-user-agent-node": "3.687.0",
+        "@smithy/config-resolver": "^3.0.10",
+        "@smithy/core": "^2.5.1",
+        "@smithy/fetch-http-handler": "^4.0.0",
+        "@smithy/hash-node": "^3.0.8",
+        "@smithy/invalid-dependency": "^3.0.8",
+        "@smithy/middleware-content-length": "^3.0.10",
+        "@smithy/middleware-endpoint": "^3.2.1",
+        "@smithy/middleware-retry": "^3.0.25",
+        "@smithy/middleware-serde": "^3.0.8",
+        "@smithy/middleware-stack": "^3.0.8",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/node-http-handler": "^3.2.5",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
+        "@smithy/url-parser": "^3.0.8",
         "@smithy/util-base64": "^3.0.0",
         "@smithy/util-body-length-browser": "^3.0.0",
         "@smithy/util-body-length-node": "^3.0.0",
-        "@smithy/util-defaults-mode-browser": "^3.0.23",
-        "@smithy/util-defaults-mode-node": "^3.0.23",
-        "@smithy/util-endpoints": "^2.1.3",
-        "@smithy/util-middleware": "^3.0.7",
-        "@smithy/util-retry": "^3.0.7",
+        "@smithy/util-defaults-mode-browser": "^3.0.25",
+        "@smithy/util-defaults-mode-node": "^3.0.25",
+        "@smithy/util-endpoints": "^2.1.4",
+        "@smithy/util-middleware": "^3.0.8",
+        "@smithy/util-retry": "^3.0.8",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -449,53 +449,53 @@
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sts": "^3.682.0"
+        "@aws-sdk/client-sts": "^3.687.0"
       }
     },
     "node_modules/@aws-sdk/client-sts": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.687.0.tgz",
+      "integrity": "sha512-SQjDH8O4XCTtouuCVYggB0cCCrIaTzUZIkgJUpOsIEJBLlTbNOb/BZqUShAQw2o9vxr2rCeOGjAQOYPysW/Pmg==",
       "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.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",
-        "@smithy/hash-node": "^3.0.7",
-        "@smithy/invalid-dependency": "^3.0.7",
-        "@smithy/middleware-content-length": "^3.0.9",
-        "@smithy/middleware-endpoint": "^3.1.4",
-        "@smithy/middleware-retry": "^3.0.23",
-        "@smithy/middleware-serde": "^3.0.7",
-        "@smithy/middleware-stack": "^3.0.7",
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/node-http-handler": "^3.2.4",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
-        "@smithy/url-parser": "^3.0.7",
+        "@aws-sdk/client-sso-oidc": "3.687.0",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/credential-provider-node": "3.687.0",
+        "@aws-sdk/middleware-host-header": "3.686.0",
+        "@aws-sdk/middleware-logger": "3.686.0",
+        "@aws-sdk/middleware-recursion-detection": "3.686.0",
+        "@aws-sdk/middleware-user-agent": "3.687.0",
+        "@aws-sdk/region-config-resolver": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
+        "@aws-sdk/util-endpoints": "3.686.0",
+        "@aws-sdk/util-user-agent-browser": "3.686.0",
+        "@aws-sdk/util-user-agent-node": "3.687.0",
+        "@smithy/config-resolver": "^3.0.10",
+        "@smithy/core": "^2.5.1",
+        "@smithy/fetch-http-handler": "^4.0.0",
+        "@smithy/hash-node": "^3.0.8",
+        "@smithy/invalid-dependency": "^3.0.8",
+        "@smithy/middleware-content-length": "^3.0.10",
+        "@smithy/middleware-endpoint": "^3.2.1",
+        "@smithy/middleware-retry": "^3.0.25",
+        "@smithy/middleware-serde": "^3.0.8",
+        "@smithy/middleware-stack": "^3.0.8",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/node-http-handler": "^3.2.5",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
+        "@smithy/url-parser": "^3.0.8",
         "@smithy/util-base64": "^3.0.0",
         "@smithy/util-body-length-browser": "^3.0.0",
         "@smithy/util-body-length-node": "^3.0.0",
-        "@smithy/util-defaults-mode-browser": "^3.0.23",
-        "@smithy/util-defaults-mode-node": "^3.0.23",
-        "@smithy/util-endpoints": "^2.1.3",
-        "@smithy/util-middleware": "^3.0.7",
-        "@smithy/util-retry": "^3.0.7",
+        "@smithy/util-defaults-mode-browser": "^3.0.25",
+        "@smithy/util-defaults-mode-node": "^3.0.25",
+        "@smithy/util-endpoints": "^2.1.4",
+        "@smithy/util-middleware": "^3.0.8",
+        "@smithy/util-retry": "^3.0.8",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -504,20 +504,20 @@
       }
     },
     "node_modules/@aws-sdk/core": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.686.0.tgz",
+      "integrity": "sha512-Xt3DV4DnAT3v2WURwzTxWQK34Ew+iiLzoUoguvLaZrVMFOqMMrwVjP+sizqIaHp1j7rGmFcN5I8saXnsDLuQLA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/core": "^2.4.8",
-        "@smithy/node-config-provider": "^3.1.8",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/core": "^2.5.1",
+        "@smithy/node-config-provider": "^3.1.9",
         "@smithy/property-provider": "^3.1.7",
-        "@smithy/protocol-http": "^4.1.4",
+        "@smithy/protocol-http": "^4.1.5",
         "@smithy/signature-v4": "^4.2.0",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
-        "@smithy/util-middleware": "^3.0.7",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
+        "@smithy/util-middleware": "^3.0.8",
         "fast-xml-parser": "4.4.1",
         "tslib": "^2.6.2"
       },
@@ -526,15 +526,15 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-env": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.686.0.tgz",
+      "integrity": "sha512-osD7lPO8OREkgxPiTWmA1i6XEmOth1uW9HWWj/+A2YGCj1G/t2sHu931w4Qj9NWHYZtbTTXQYVRg+TErALV7nQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.679.0",
-        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
         "@smithy/property-provider": "^3.1.7",
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -542,20 +542,20 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-http": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.686.0.tgz",
+      "integrity": "sha512-xyGAD/f3vR/wssUiZrNFWQWXZvI4zRm2wpHhoHA1cC2fbRMNFYtFn365yw6dU7l00ZLcdFB1H119AYIUZS7xbw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@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",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/fetch-http-handler": "^4.0.0",
+        "@smithy/node-http-handler": "^3.2.5",
         "@smithy/property-provider": "^3.1.7",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
-        "@smithy/util-stream": "^3.1.9",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
+        "@smithy/util-stream": "^3.2.1",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -563,48 +563,48 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-ini": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.687.0.tgz",
+      "integrity": "sha512-6d5ZJeZch+ZosJccksN0PuXv7OSnYEmanGCnbhUqmUSz9uaVX6knZZfHCZJRgNcfSqg9QC0zsFA/51W5HCUqSQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@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",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/credential-provider-env": "3.686.0",
+        "@aws-sdk/credential-provider-http": "3.686.0",
+        "@aws-sdk/credential-provider-process": "3.686.0",
+        "@aws-sdk/credential-provider-sso": "3.687.0",
+        "@aws-sdk/credential-provider-web-identity": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
         "@smithy/credential-provider-imds": "^3.2.4",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/shared-ini-file-loader": "^3.1.8",
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sts": "^3.682.0"
+        "@aws-sdk/client-sts": "^3.687.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-node": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.687.0.tgz",
+      "integrity": "sha512-Pqld8Nx11NYaBUrVk3bYiGGpLCxkz8iTONlpQWoVWFhSOzlO7zloNOaYbD2XgFjjqhjlKzE91drs/f41uGeCTA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@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",
+        "@aws-sdk/credential-provider-env": "3.686.0",
+        "@aws-sdk/credential-provider-http": "3.686.0",
+        "@aws-sdk/credential-provider-ini": "3.687.0",
+        "@aws-sdk/credential-provider-process": "3.686.0",
+        "@aws-sdk/credential-provider-sso": "3.687.0",
+        "@aws-sdk/credential-provider-web-identity": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
         "@smithy/credential-provider-imds": "^3.2.4",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/shared-ini-file-loader": "^3.1.8",
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -612,16 +612,16 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-process": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.686.0.tgz",
+      "integrity": "sha512-sXqaAgyzMOc+dm4CnzAR5Q6S9OWVHyZjLfW6IQkmGjqeQXmZl24c4E82+w64C+CTkJrFLzH1VNOYp1Hy5gE6Qw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.679.0",
-        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/shared-ini-file-loader": "^3.1.8",
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -629,18 +629,18 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-sso": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.687.0.tgz",
+      "integrity": "sha512-N1YCoE7DovIRF2ReyRrA4PZzF0WNi4ObPwdQQkVxhvSm7PwjbWxrfq7rpYB+6YB1Uq3QPzgVwUFONE36rdpxUQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@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",
+        "@aws-sdk/client-sso": "3.687.0",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/token-providers": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/shared-ini-file-loader": "^3.1.8",
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -648,33 +648,33 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-web-identity": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.686.0.tgz",
+      "integrity": "sha512-40UqCpPxyHCXDP7CGd9JIOZDgDZf+u1OyLaGBpjQJlz1HYuEsIWnnbTe29Yg3Ah/Zc3g4NBWcUdlGVotlnpnDg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.679.0",
-        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
         "@smithy/property-provider": "^3.1.7",
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sts": "^3.679.0"
+        "@aws-sdk/client-sts": "^3.686.0"
       }
     },
     "node_modules/@aws-sdk/lib-storage": {
-      "version": "3.685.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.685.0.tgz",
-      "integrity": "sha512-6oGVXmtSr04xzq5XVBHj3yZTWJVfhUElEER5Bg9SrdoWTFRUsjnbOzqOAhYmlrEmEoGTtnZyj7wDI2EY7iCBTQ==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.687.0.tgz",
+      "integrity": "sha512-LAJOH1Ddm8vlA6j8WyFAt1Ithfj58XuJN1d2WJSDZLhGDGQp3+nDFzovOKODw/Bc9x6ZnDYm9rE+QMTbGSvqkA==",
       "license": "Apache-2.0",
       "dependencies": {
         "@smithy/abort-controller": "^3.1.5",
-        "@smithy/middleware-endpoint": "^3.1.4",
-        "@smithy/smithy-client": "^3.4.0",
+        "@smithy/middleware-endpoint": "^3.2.1",
+        "@smithy/smithy-client": "^3.4.2",
         "buffer": "5.6.0",
         "events": "3.3.0",
         "stream-browserify": "3.0.0",
@@ -684,20 +684,20 @@
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-s3": "^3.685.0"
+        "@aws-sdk/client-s3": "^3.687.0"
       }
     },
     "node_modules/@aws-sdk/middleware-bucket-endpoint": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.686.0.tgz",
+      "integrity": "sha512-6qCoWI73/HDzQE745MHQUYz46cAQxHCgy1You8MZQX9vHAQwqBnkcsb2hGp7S6fnQY5bNsiZkMWVQ/LVd2MNjg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/types": "3.686.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",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-config-provider": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -706,14 +706,14 @@
       }
     },
     "node_modules/@aws-sdk/middleware-expect-continue": {
-      "version": "3.679.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.679.0.tgz",
-      "integrity": "sha512-nYsh9PdWrF4EahTRdXHGlNud82RPc508CNGdh1lAGfPU3tNveGfMBX3PcGBtPOse3p9ebNKRWVmUc9eXSjGvHA==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.686.0.tgz",
+      "integrity": "sha512-5yYqIbyhLhH29vn4sHiTj7sU6GttvLMk3XwCmBXjo2k2j3zHqFUwh9RyFGF9VY6Z392Drf/E/cl+qOGypwULpg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/types": "^3.5.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -721,20 +721,21 @@
       }
     },
     "node_modules/@aws-sdk/middleware-flexible-checksums": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.687.0.tgz",
+      "integrity": "sha512-hsEr3eiJs7gOzj9nDMCMfhLkoYv4Z8m7fbic63TkeyimXvsHycqqF6PX0TkPykwa1ueyxVpz0vtO5u1rlucN2w==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/crc32": "5.2.0",
         "@aws-crypto/crc32c": "5.2.0",
-        "@aws-sdk/core": "3.679.0",
-        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
         "@smithy/is-array-buffer": "^3.0.0",
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/types": "^3.5.0",
-        "@smithy/util-middleware": "^3.0.7",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/types": "^3.6.0",
+        "@smithy/util-middleware": "^3.0.8",
+        "@smithy/util-stream": "^3.2.1",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -743,14 +744,14 @@
       }
     },
     "node_modules/@aws-sdk/middleware-host-header": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.686.0.tgz",
+      "integrity": "sha512-+Yc6rO02z+yhFbHmRZGvEw1vmzf/ifS9a4aBjJGeVVU+ZxaUvnk+IUZWrj4YQopUQ+bSujmMUzJLXSkbDq7yuw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/types": "^3.5.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -758,13 +759,13 @@
       }
     },
     "node_modules/@aws-sdk/middleware-location-constraint": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.686.0.tgz",
+      "integrity": "sha512-pCLeZzt5zUGY3NbW4J/5x3kaHyJEji4yqtoQcUlJmkoEInhSxJ0OE8sTxAfyL3nIOF4yr6L2xdaLCqYgQT8Aog==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/types": "^3.5.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -772,13 +773,13 @@
       }
     },
     "node_modules/@aws-sdk/middleware-logger": {
-      "version": "3.679.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.679.0.tgz",
-      "integrity": "sha512-0vet8InEj7nvIvGKk+ch7bEF5SyZ7Us9U7YTEgXPrBNStKeRUsgwRm0ijPWWd0a3oz2okaEwXsFl7G/vI0XiEA==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.686.0.tgz",
+      "integrity": "sha512-cX43ODfA2+SPdX7VRxu6gXk4t4bdVJ9pkktbfnkE5t27OlwNfvSGGhnHrQL8xTOFeyQ+3T+oowf26gf1OI+vIg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/types": "^3.5.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -786,14 +787,14 @@
       }
     },
     "node_modules/@aws-sdk/middleware-recursion-detection": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.686.0.tgz",
+      "integrity": "sha512-jF9hQ162xLgp9zZ/3w5RUNhmwVnXDBlABEUX8jCgzaFpaa742qR/KKtjjZQ6jMbQnP+8fOCSXFAVNMU+s6v81w==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/protocol-http": "^4.1.4",
-        "@smithy/types": "^3.5.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -801,23 +802,23 @@
       }
     },
     "node_modules/@aws-sdk/middleware-sdk-s3": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.687.0.tgz",
+      "integrity": "sha512-YGHYqiyRiNNucmvLrfx3QxIkjSDWR/+cc72bn0lPvqFUQBRHZgmYQLxVYrVZSmRzzkH2FQ1HsZcXhOafLbq4vQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/core": "3.679.0",
-        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/types": "3.686.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",
+        "@smithy/core": "^2.5.1",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/protocol-http": "^4.1.5",
         "@smithy/signature-v4": "^4.2.0",
-        "@smithy/smithy-client": "^3.4.0",
-        "@smithy/types": "^3.5.0",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
         "@smithy/util-config-provider": "^3.0.0",
-        "@smithy/util-middleware": "^3.0.7",
-        "@smithy/util-stream": "^3.1.9",
+        "@smithy/util-middleware": "^3.0.8",
+        "@smithy/util-stream": "^3.2.1",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -826,13 +827,13 @@
       }
     },
     "node_modules/@aws-sdk/middleware-ssec": {
-      "version": "3.679.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.679.0.tgz",
-      "integrity": "sha512-4GNUxXbs1M71uFHRiCAZtN0/g23ogI9YjMe5isAuYMHXwDB3MhqF7usKf954mBP6tplvN44vYlbJ84faaLrTtg==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.686.0.tgz",
+      "integrity": "sha512-zJXml/CpVHFUdlGQqja87vNQ3rPB5SlDbfdwxlj1KBbjnRRwpBtxxmOlWRShg8lnVV6aIMGv95QmpIFy4ayqnQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/types": "^3.5.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -840,17 +841,17 @@
       }
     },
     "node_modules/@aws-sdk/middleware-user-agent": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.687.0.tgz",
+      "integrity": "sha512-nUgsKiEinyA50CaDXojAkOasAU3Apdg7Qox6IjNUC4ZjgOu7QWsCDB5N28AYMUt06cNYeYQdfMX1aEzG85a1Mg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@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",
+        "@aws-sdk/core": "3.686.0",
+        "@aws-sdk/types": "3.686.0",
+        "@aws-sdk/util-endpoints": "3.686.0",
+        "@smithy/core": "^2.5.1",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -858,16 +859,16 @@
       }
     },
     "node_modules/@aws-sdk/region-config-resolver": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.686.0.tgz",
+      "integrity": "sha512-6zXD3bSD8tcsMAVVwO1gO7rI1uy2fCD3czgawuPGPopeLiPpo6/3FoUWCQzk2nvEhj7p9Z4BbjwZGSlRkVrXTw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/node-config-provider": "^3.1.8",
-        "@smithy/types": "^3.5.0",
+        "@aws-sdk/types": "3.686.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": {
@@ -875,18 +876,18 @@
       }
     },
     "node_modules/@aws-sdk/s3-request-presigner": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.687.0.tgz",
+      "integrity": "sha512-/fX3F4nYjVEgdlVamsb2tDgnFA5dtzxkeN+hH91e+ZoBMJBow+FUb2EEtjloreGUynPx6E00UxdDXIKWmt99lA==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@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",
-        "@smithy/types": "^3.5.0",
+        "@aws-sdk/signature-v4-multi-region": "3.687.0",
+        "@aws-sdk/types": "3.686.0",
+        "@aws-sdk/util-format-url": "3.686.0",
+        "@smithy/middleware-endpoint": "^3.2.1",
+        "@smithy/protocol-http": "^4.1.5",
+        "@smithy/smithy-client": "^3.4.2",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -894,16 +895,16 @@
       }
     },
     "node_modules/@aws-sdk/signature-v4-multi-region": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.687.0.tgz",
+      "integrity": "sha512-vdOQHCRHJPX9mT8BM6xOseazHD6NodvHl9cyF5UjNtLn+gERRJEItIA9hf0hlt62odGD8Fqp+rFRuqdmbNkcNw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/middleware-sdk-s3": "3.685.0",
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/protocol-http": "^4.1.4",
+        "@aws-sdk/middleware-sdk-s3": "3.687.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/protocol-http": "^4.1.5",
         "@smithy/signature-v4": "^4.2.0",
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -911,31 +912,31 @@
       }
     },
     "node_modules/@aws-sdk/token-providers": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.686.0.tgz",
+      "integrity": "sha512-9oL4kTCSePFmyKPskibeiOXV6qavPZ63/kXM9Wh9V6dTSvBtLeNnMxqGvENGKJcTdIgtoqyqA6ET9u0PJ5IRIg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
+        "@aws-sdk/types": "3.686.0",
         "@smithy/property-provider": "^3.1.7",
         "@smithy/shared-ini-file-loader": "^3.1.8",
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sso-oidc": "^3.679.0"
+        "@aws-sdk/client-sso-oidc": "^3.686.0"
       }
     },
     "node_modules/@aws-sdk/types": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.686.0.tgz",
+      "integrity": "sha512-xFnrb3wxOoJcW2Xrh63ZgFo5buIu9DF7bOHnwoUxHdNpUXicUh0AHw85TjXxyxIAd0d1psY/DU7QHoNI3OswgQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -955,14 +956,14 @@
       }
     },
     "node_modules/@aws-sdk/util-endpoints": {
-      "version": "3.679.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.679.0.tgz",
-      "integrity": "sha512-YL6s4Y/1zC45OvddvgE139fjeWSKKPgLlnfrvhVL7alNyY9n7beR4uhoDpNrt5mI6sn9qiBF17790o+xLAXjjg==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.686.0.tgz",
+      "integrity": "sha512-7msZE2oYl+6QYeeRBjlDgxQUhq/XRky3cXE0FqLFs2muLS7XSuQEXkpOXB3R782ygAP6JX0kmBxPTLurRTikZg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/types": "^3.5.0",
-        "@smithy/util-endpoints": "^2.1.3",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/types": "^3.6.0",
+        "@smithy/util-endpoints": "^2.1.4",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -970,14 +971,14 @@
       }
     },
     "node_modules/@aws-sdk/util-format-url": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.686.0.tgz",
+      "integrity": "sha512-9doB6O4FAlnWZrvnFDUxTtSFtuL8kUqxlP00HTiDgL1uDJZ8e0S4gqjKR+9+N5goFtxGi7IJeNsDEz2H7imvgw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/querystring-builder": "^3.0.7",
-        "@smithy/types": "^3.5.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/querystring-builder": "^3.0.8",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -997,27 +998,27 @@
       }
     },
     "node_modules/@aws-sdk/util-user-agent-browser": {
-      "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==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.686.0.tgz",
+      "integrity": "sha512-YiQXeGYZegF1b7B2GOR61orhgv79qmI0z7+Agm3NXLO6hGfVV3kFUJbXnjtH1BgWo5hbZYW7HQ2omGb3dnb6Lg==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/types": "3.679.0",
-        "@smithy/types": "^3.5.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/types": "^3.6.0",
         "bowser": "^2.11.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@aws-sdk/util-user-agent-node": {
-      "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==",
+      "version": "3.687.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.687.0.tgz",
+      "integrity": "sha512-idkP6ojSTZ4ek1pJ8wIN7r9U3KR5dn0IkJn3KQBXQ58LWjkRqLtft2vxzdsktWwhPKjjmIKl1S0kbvqLawf8XQ==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@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",
+        "@aws-sdk/middleware-user-agent": "3.687.0",
+        "@aws-sdk/types": "3.686.0",
+        "@smithy/node-config-provider": "^3.1.9",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1033,12 +1034,12 @@
       }
     },
     "node_modules/@aws-sdk/xml-builder": {
-      "version": "3.679.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.679.0.tgz",
-      "integrity": "sha512-nPmhVZb39ty5bcQ7mAwtjezBcsBqTYZ9A2D9v/lE92KCLdu5RhSkPH7O71ZqbZx1mUSg9fAOxHPiG79U5VlpLQ==",
+      "version": "3.686.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.686.0.tgz",
+      "integrity": "sha512-k0z5b5dkYSuOHY0AOZ4iyjcGBeVL9lWsQNF4+c+1oK3OW4fRWl/bNa1soMRMpangsHPzgyn/QkzuDbl7qR4qrw==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@smithy/types": "^3.5.0",
+        "@smithy/types": "^3.6.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1705,9 +1706,9 @@
       }
     },
     "node_modules/@hey-api/openapi-ts": {
-      "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==",
+      "version": "0.55.1",
+      "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.55.1.tgz",
+      "integrity": "sha512-wLwrnb/MrwRpPCywizrbegZdXbdWWtiC7JerInGhkDksaigihszRyq3GHsibZsvs6gvpPQk0OioaSvgKoNP6ZA==",
       "dev": true,
       "license": "FSL-1.1-MIT",
       "dependencies": {
@@ -2231,9 +2232,9 @@
       }
     },
     "node_modules/@rollup/rollup-android-arm-eabi": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz",
+      "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==",
       "cpu": [
         "arm"
       ],
@@ -2245,9 +2246,9 @@
       ]
     },
     "node_modules/@rollup/rollup-android-arm64": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz",
+      "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==",
       "cpu": [
         "arm64"
       ],
@@ -2259,9 +2260,9 @@
       ]
     },
     "node_modules/@rollup/rollup-darwin-arm64": {
-      "version": "4.24.3",
-      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.3.tgz",
-      "integrity": "sha512-QPW2YmkWLlvqmOa2OwrfqLJqkHm7kJCIMq9kOz40Zo9Ipi40kf9ONG5Sz76zszrmIZZ4hgRIkez69YnTHgEz1w==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz",
+      "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==",
       "cpu": [
         "arm64"
       ],
@@ -2273,9 +2274,9 @@
       ]
     },
     "node_modules/@rollup/rollup-darwin-x64": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz",
+      "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==",
       "cpu": [
         "x64"
       ],
@@ -2287,9 +2288,9 @@
       ]
     },
     "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz",
+      "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==",
       "cpu": [
         "arm64"
       ],
@@ -2301,9 +2302,9 @@
       ]
     },
     "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz",
+      "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==",
       "cpu": [
         "x64"
       ],
@@ -2315,9 +2316,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz",
+      "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==",
       "cpu": [
         "arm"
       ],
@@ -2329,9 +2330,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm-musleabihf": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz",
+      "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==",
       "cpu": [
         "arm"
       ],
@@ -2343,9 +2344,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm64-gnu": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz",
+      "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==",
       "cpu": [
         "arm64"
       ],
@@ -2357,9 +2358,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm64-musl": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz",
+      "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==",
       "cpu": [
         "arm64"
       ],
@@ -2371,9 +2372,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz",
+      "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==",
       "cpu": [
         "ppc64"
       ],
@@ -2385,9 +2386,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-riscv64-gnu": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz",
+      "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==",
       "cpu": [
         "riscv64"
       ],
@@ -2399,9 +2400,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-s390x-gnu": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz",
+      "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==",
       "cpu": [
         "s390x"
       ],
@@ -2413,9 +2414,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-x64-gnu": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz",
+      "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==",
       "cpu": [
         "x64"
       ],
@@ -2427,9 +2428,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-x64-musl": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz",
+      "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==",
       "cpu": [
         "x64"
       ],
@@ -2441,9 +2442,9 @@
       ]
     },
     "node_modules/@rollup/rollup-win32-arm64-msvc": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz",
+      "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==",
       "cpu": [
         "arm64"
       ],
@@ -2455,9 +2456,9 @@
       ]
     },
     "node_modules/@rollup/rollup-win32-ia32-msvc": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz",
+      "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==",
       "cpu": [
         "ia32"
       ],
@@ -2469,9 +2470,9 @@
       ]
     },
     "node_modules/@rollup/rollup-win32-x64-msvc": {
-      "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==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz",
+      "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==",
       "cpu": [
         "x64"
       ],
@@ -2640,14 +2641,14 @@
       }
     },
     "node_modules/@smithy/fetch-http-handler": {
-      "version": "3.2.9",
-      "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.9.tgz",
-      "integrity": "sha512-hYNVQOqhFQ6vOpenifFME546f0GfJn2OiQ3M0FDmuUu8V/Uiwy2wej7ZXxFBNqdx0R5DZAqWM1l6VRhGz8oE6A==",
+      "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.4",
-        "@smithy/querystring-builder": "^3.0.7",
-        "@smithy/types": "^3.5.0",
+        "@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"
       }
@@ -3140,19 +3141,6 @@
         "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",
@@ -3244,9 +3232,9 @@
       }
     },
     "node_modules/@types/qs": {
-      "version": "6.9.16",
-      "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz",
-      "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==",
+      "version": "6.9.17",
+      "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz",
+      "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==",
       "dev": true,
       "license": "MIT"
     },
@@ -3279,17 +3267,17 @@
       "license": "MIT"
     },
     "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "8.12.2",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz",
-      "integrity": "sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==",
+      "version": "8.13.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz",
+      "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@eslint-community/regexpp": "^4.10.0",
-        "@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",
+        "@typescript-eslint/scope-manager": "8.13.0",
+        "@typescript-eslint/type-utils": "8.13.0",
+        "@typescript-eslint/utils": "8.13.0",
+        "@typescript-eslint/visitor-keys": "8.13.0",
         "graphemer": "^1.4.0",
         "ignore": "^5.3.1",
         "natural-compare": "^1.4.0",
@@ -3313,16 +3301,16 @@
       }
     },
     "node_modules/@typescript-eslint/parser": {
-      "version": "8.12.2",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.12.2.tgz",
-      "integrity": "sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==",
+      "version": "8.13.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz",
+      "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
-        "@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",
+        "@typescript-eslint/scope-manager": "8.13.0",
+        "@typescript-eslint/types": "8.13.0",
+        "@typescript-eslint/typescript-estree": "8.13.0",
+        "@typescript-eslint/visitor-keys": "8.13.0",
         "debug": "^4.3.4"
       },
       "engines": {
@@ -3342,14 +3330,14 @@
       }
     },
     "node_modules/@typescript-eslint/scope-manager": {
-      "version": "8.12.2",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz",
-      "integrity": "sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==",
+      "version": "8.13.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz",
+      "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.12.2",
-        "@typescript-eslint/visitor-keys": "8.12.2"
+        "@typescript-eslint/types": "8.13.0",
+        "@typescript-eslint/visitor-keys": "8.13.0"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3360,14 +3348,14 @@
       }
     },
     "node_modules/@typescript-eslint/type-utils": {
-      "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==",
+      "version": "8.13.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz",
+      "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/typescript-estree": "8.12.2",
-        "@typescript-eslint/utils": "8.12.2",
+        "@typescript-eslint/typescript-estree": "8.13.0",
+        "@typescript-eslint/utils": "8.13.0",
         "debug": "^4.3.4",
         "ts-api-utils": "^1.3.0"
       },
@@ -3385,9 +3373,9 @@
       }
     },
     "node_modules/@typescript-eslint/types": {
-      "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==",
+      "version": "8.13.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz",
+      "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -3399,14 +3387,14 @@
       }
     },
     "node_modules/@typescript-eslint/typescript-estree": {
-      "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==",
+      "version": "8.13.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz",
+      "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
-        "@typescript-eslint/types": "8.12.2",
-        "@typescript-eslint/visitor-keys": "8.12.2",
+        "@typescript-eslint/types": "8.13.0",
+        "@typescript-eslint/visitor-keys": "8.13.0",
         "debug": "^4.3.4",
         "fast-glob": "^3.3.2",
         "is-glob": "^4.0.3",
@@ -3428,16 +3416,16 @@
       }
     },
     "node_modules/@typescript-eslint/utils": {
-      "version": "8.12.2",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.12.2.tgz",
-      "integrity": "sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==",
+      "version": "8.13.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz",
+      "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.4.0",
-        "@typescript-eslint/scope-manager": "8.12.2",
-        "@typescript-eslint/types": "8.12.2",
-        "@typescript-eslint/typescript-estree": "8.12.2"
+        "@typescript-eslint/scope-manager": "8.13.0",
+        "@typescript-eslint/types": "8.13.0",
+        "@typescript-eslint/typescript-estree": "8.13.0"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3451,13 +3439,13 @@
       }
     },
     "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "8.12.2",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz",
-      "integrity": "sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==",
+      "version": "8.13.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz",
+      "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.12.2",
+        "@typescript-eslint/types": "8.13.0",
         "eslint-visitor-keys": "^3.4.3"
       },
       "engines": {
@@ -3483,30 +3471,30 @@
       }
     },
     "node_modules/@volar/language-core": {
-      "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==",
+      "version": "2.4.10",
+      "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.10.tgz",
+      "integrity": "sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@volar/source-map": "2.4.8"
+        "@volar/source-map": "2.4.10"
       }
     },
     "node_modules/@volar/source-map": {
-      "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==",
+      "version": "2.4.10",
+      "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.10.tgz",
+      "integrity": "sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==",
       "dev": true,
       "license": "MIT"
     },
     "node_modules/@volar/typescript": {
-      "version": "2.4.8",
-      "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.8.tgz",
-      "integrity": "sha512-6xkIYJ5xxghVBhVywMoPMidDDAFT1OoQeXwa27HSgJ6AiIKRe61RXLoik+14Z7r0JvnblXVsjsRLmCr42SGzqg==",
+      "version": "2.4.10",
+      "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.10.tgz",
+      "integrity": "sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@volar/language-core": "2.4.8",
+        "@volar/language-core": "2.4.10",
         "path-browserify": "^1.0.1",
         "vscode-uri": "^3.0.8"
       }
@@ -4430,9 +4418,9 @@
       "license": "MIT"
     },
     "node_modules/cross-spawn": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
-      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+      "version": "7.0.5",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz",
+      "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -7871,9 +7859,9 @@
       }
     },
     "node_modules/rollup": {
-      "version": "4.24.3",
-      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.3.tgz",
-      "integrity": "sha512-HBW896xR5HGmoksbi3JBDtmVzWiPAYqp7wip50hjQ67JbDz61nyoMPdqu1DvVW9asYb2M65Z20ZHsyJCMqMyDg==",
+      "version": "4.24.4",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz",
+      "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -7887,24 +7875,24 @@
         "npm": ">=8.0.0"
       },
       "optionalDependencies": {
-        "@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",
+        "@rollup/rollup-android-arm-eabi": "4.24.4",
+        "@rollup/rollup-android-arm64": "4.24.4",
+        "@rollup/rollup-darwin-arm64": "4.24.4",
+        "@rollup/rollup-darwin-x64": "4.24.4",
+        "@rollup/rollup-freebsd-arm64": "4.24.4",
+        "@rollup/rollup-freebsd-x64": "4.24.4",
+        "@rollup/rollup-linux-arm-gnueabihf": "4.24.4",
+        "@rollup/rollup-linux-arm-musleabihf": "4.24.4",
+        "@rollup/rollup-linux-arm64-gnu": "4.24.4",
+        "@rollup/rollup-linux-arm64-musl": "4.24.4",
+        "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4",
+        "@rollup/rollup-linux-riscv64-gnu": "4.24.4",
+        "@rollup/rollup-linux-s390x-gnu": "4.24.4",
+        "@rollup/rollup-linux-x64-gnu": "4.24.4",
+        "@rollup/rollup-linux-x64-musl": "4.24.4",
+        "@rollup/rollup-win32-arm64-msvc": "4.24.4",
+        "@rollup/rollup-win32-ia32-msvc": "4.24.4",
+        "@rollup/rollup-win32-x64-msvc": "4.24.4",
         "fsevents": "~2.3.2"
       }
     },
@@ -8609,15 +8597,15 @@
       }
     },
     "node_modules/typescript-eslint": {
-      "version": "8.12.2",
-      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.12.2.tgz",
-      "integrity": "sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ==",
+      "version": "8.13.0",
+      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.13.0.tgz",
+      "integrity": "sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/eslint-plugin": "8.12.2",
-        "@typescript-eslint/parser": "8.12.2",
-        "@typescript-eslint/utils": "8.12.2"
+        "@typescript-eslint/eslint-plugin": "8.13.0",
+        "@typescript-eslint/parser": "8.13.0",
+        "@typescript-eslint/utils": "8.13.0"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
diff --git a/package.json b/package.json
index 50c691bc2e34eb20de902cc779564a4b42c5ed23..4052dab2197201613c418301b76aa18acbb4cbd2 100644
--- a/package.json
+++ b/package.json
@@ -39,7 +39,7 @@
   },
   "devDependencies": {
     "@eslint/compat": "^1.2.0",
-    "@hey-api/openapi-ts": "^0.54.0",
+    "@hey-api/openapi-ts": "^0.55.0",
     "@rushstack/eslint-patch": "~1.10.0",
     "@tsconfig/node20": "^20.1.2",
     "@types/bootstrap": "~5.2.0",
diff --git a/src/client/services.gen.ts b/src/client/services.gen.ts
index 633fd0c6ee3340cfd21d0059d9b1eae7464093e7..0ab8d0e5ed8eaef17e98429ff38058085dcfba9f 100644
--- a/src/client/services.gen.ts
+++ b/src/client/services.gen.ts
@@ -261,6 +261,12 @@ import type {
   WorkflowVersionUpdateWorkflowVersionStatusData,
   WorkflowVersionUpdateWorkflowVersionStatusError,
   WorkflowVersionUpdateWorkflowVersionStatusResponse,
+  WorkflowVersionGetWorkflowVersionMetadataData,
+  WorkflowVersionGetWorkflowVersionMetadataError,
+  WorkflowVersionGetWorkflowVersionMetadataResponse,
+  WorkflowVersionUpdateWorkflowVersionMetadataData,
+  WorkflowVersionUpdateWorkflowVersionMetadataError,
+  WorkflowVersionUpdateWorkflowVersionMetadataResponse,
   WorkflowVersionDeprecateWorkflowVersionData,
   WorkflowVersionDeprecateWorkflowVersionError,
   WorkflowVersionDeprecateWorkflowVersionResponse,
@@ -2097,6 +2103,56 @@ export class WorkflowVersionService {
     });
   }
 
+  /**
+   * Get metadata of workflow version
+   * Get the metadata of a workflow version.
+   *
+   * Permission `workflow:read` required if the current user is the developer of the workflow,
+   * otherwise `workflow:read_any`
+   */
+  public static workflowVersionGetWorkflowVersionMetadata<
+    ThrowOnError extends boolean = false,
+  >(
+    options: Options<
+      WorkflowVersionGetWorkflowVersionMetadataData,
+      ThrowOnError
+    >,
+  ) {
+    return (options?.client ?? client).get<
+      WorkflowVersionGetWorkflowVersionMetadataResponse,
+      WorkflowVersionGetWorkflowVersionMetadataError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows/{wid}/versions/{git_commit_hash}/metadata",
+    });
+  }
+
+  /**
+   * Update metadata of workflow version
+   * Update the metadata of a workflow version.
+   *
+   * Permission `workflow:update` required if the current user is the developer of the workflow,
+   * otherwise `workflow:update_any`
+   */
+  public static workflowVersionUpdateWorkflowVersionMetadata<
+    ThrowOnError extends boolean = false,
+  >(
+    options: Options<
+      WorkflowVersionUpdateWorkflowVersionMetadataData,
+      ThrowOnError
+    >,
+  ) {
+    return (options?.client ?? client).put<
+      WorkflowVersionUpdateWorkflowVersionMetadataResponse,
+      WorkflowVersionUpdateWorkflowVersionMetadataError,
+      ThrowOnError
+    >({
+      ...options,
+      url: "/workflows/{wid}/versions/{git_commit_hash}/metadata",
+    });
+  }
+
   /**
    * Deprecate a workflow version
    * Deprecate a workflow version.
diff --git a/src/client/types.gen.ts b/src/client/types.gen.ts
index 5b778e384de375536e68886c01aacabcb6ee23d8..bb165c678c13bb2d775f63e076edc411a9a7bd26 100644
--- a/src/client/types.gen.ts
+++ b/src/client/types.gen.ts
@@ -453,6 +453,7 @@ export enum NextflowVersion {
   _24_04_2 = "24.04.2",
   _24_04_3 = "24.04.3",
   _24_04_4 = "24.04.4",
+  _24_10_0 = "24.10.0",
 }
 
 export enum OIDCProvider {
@@ -915,9 +916,9 @@ export type WorkflowIn = {
    */
   git_commit_hash: string;
   /**
-   * Initial version of the Workflow. Should follow semantic versioning
+   * Version of the Workflow. Should follow semantic versioning
    */
-  initial_version?: string;
+  initial_version: string;
   /**
    * Token to access the content git repository
    */
@@ -927,7 +928,7 @@ export type WorkflowIn = {
    */
   modes?: Array<WorkflowModeIn>;
   /**
-   * The version of Nextflow this workflow version requires
+   * The version of Nextflow this workflow version requires.
    */
   nextflow_version: NextflowVersion;
 };
@@ -1025,10 +1026,6 @@ export type WorkflowUpdate = {
    * Delete modes for the new workflow version.
    */
   delete_modes?: Array<string>;
-  /**
-   * The version of Nextflow this new workflow version requires.
-   */
-  nextflow_version: NextflowVersion;
 };
 
 export type WorkflowVersion = {
@@ -1065,9 +1062,39 @@ export type WorkflowVersion = {
    */
   parameter_extension?: ParameterExtension | null;
   /**
-   * The version of Nextflow this workflow version requires
+   * The version of Nextflow this workflow version requires.
+   */
+  nextflow_version: NextflowVersion;
+};
+
+export type WorkflowVersionMetadataIn = {
+  /**
+   * The version of Nextflow this workflow version requires.
    */
   nextflow_version: NextflowVersion;
+  /**
+   * Nextflow config that overrides the config in the git repository
+   */
+  nextflow_config?: string | null;
+  /**
+   * Default container to use for all Nextflow processes that have to container specified
+   */
+  default_container?: string | null;
+};
+
+export type WorkflowVersionMetadataOut = {
+  /**
+   * The version of Nextflow this workflow version requires.
+   */
+  nextflow_version: NextflowVersion;
+  /**
+   * Nextflow config that overrides the config in the git repository
+   */
+  nextflow_config?: string | null;
+  /**
+   * Default container to use for all Nextflow processes that have to container specified
+   */
+  default_container?: string | null;
 };
 
 /**
@@ -2464,6 +2491,47 @@ export type WorkflowVersionUpdateWorkflowVersionStatusError =
   | ErrorDetail
   | HTTPValidationError;
 
+export type WorkflowVersionGetWorkflowVersionMetadataData = {
+  path: {
+    /**
+     * Git commit git_commit_hash of specific version.
+     */
+    git_commit_hash: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
+  };
+};
+
+export type WorkflowVersionGetWorkflowVersionMetadataResponse =
+  WorkflowVersionMetadataOut;
+
+export type WorkflowVersionGetWorkflowVersionMetadataError =
+  | ErrorDetail
+  | HTTPValidationError;
+
+export type WorkflowVersionUpdateWorkflowVersionMetadataData = {
+  body: WorkflowVersionMetadataIn;
+  path: {
+    /**
+     * Git commit git_commit_hash of specific version.
+     */
+    git_commit_hash: string;
+    /**
+     * ID of a workflow
+     */
+    wid: string;
+  };
+};
+
+export type WorkflowVersionUpdateWorkflowVersionMetadataResponse =
+  WorkflowVersionMetadataOut;
+
+export type WorkflowVersionUpdateWorkflowVersionMetadataError =
+  | ErrorDetail
+  | HTTPValidationError;
+
 export type WorkflowVersionDeprecateWorkflowVersionData = {
   path: {
     /**
diff --git a/src/components/workflows/WorkflowCard.vue b/src/components/workflows/WorkflowCard.vue
index f5496bb92b75c1279acd55d7cad1d738834088fe..4a12a4aa91474024ddb9458a6c3d554ecea99c5e 100644
--- a/src/components/workflows/WorkflowCard.vue
+++ b/src/components/workflows/WorkflowCard.vue
@@ -104,7 +104,13 @@ onMounted(() => {
 <style scoped>
 .card-hover {
   transition: transform 0.3s ease-out;
-  width: 48%;
+}
+
+@media (min-width: 837px) {
+  .card-hover {
+    transition: transform 0.3s ease-out;
+    width: 48%;
+  }
 }
 
 .card-hover:hover {
diff --git a/src/components/workflows/WorkflowWithVersionsCard.vue b/src/components/workflows/WorkflowWithVersionsCard.vue
index ce8f13ffdc81e7d8b86216a8956695cea9fdc3d5..0686107088fdec778f83e2834d48804e755fc851 100644
--- a/src/components/workflows/WorkflowWithVersionsCard.vue
+++ b/src/components/workflows/WorkflowWithVersionsCard.vue
@@ -362,6 +362,20 @@ onMounted(() => {
                         Parameter Translation
                       </router-link>
                     </li>
+                    <li>
+                      <router-link
+                        class="dropdown-item"
+                        :to="{
+                          name: 'workflow-metadata',
+                          params: {
+                            workflowId: props.workflow.workflow_id,
+                            versionId: version.workflow_version_id,
+                          },
+                        }"
+                      >
+                        Update Metadata
+                      </router-link>
+                    </li>
                   </ul>
                 </td>
               </tr>
@@ -421,10 +435,6 @@ td > img {
   max-height: 1em;
 }
 
-.add-icon-hover:hover {
-  color: var(--bs-success) !important;
-}
-
 .text-align-center {
   text-align: center;
 }
diff --git a/src/components/workflows/modals/ArbitraryWorkflowModal.vue b/src/components/workflows/modals/ArbitraryWorkflowModal.vue
index d207745dda843330d1a749dc46f2eb3289d4c3c6..eb75de1286e94966aa8e992d2cb0a2a08df420d0 100644
--- a/src/components/workflows/modals/ArbitraryWorkflowModal.vue
+++ b/src/components/workflows/modals/ArbitraryWorkflowModal.vue
@@ -134,6 +134,7 @@ function viewWorkflow() {
           repositoryCredentials.token.length > 0
             ? repositoryCredentials.token
             : undefined,
+        initial_version: "",
       },
       { ...docsLocations },
     )
diff --git a/src/components/workflows/modals/CreateWorkflowModal.vue b/src/components/workflows/modals/CreateWorkflowModal.vue
index 3062ae20734013dc372f9b08454547008c4f52be..03392577827cb2a675c326a8832f4b7f1ae05b43 100644
--- a/src/components/workflows/modals/CreateWorkflowModal.vue
+++ b/src/components/workflows/modals/CreateWorkflowModal.vue
@@ -59,7 +59,7 @@ const workflow = reactive<WorkflowIn>({
   short_description: "",
   repository_url: "",
   git_commit_hash: "",
-  initial_version: undefined,
+  initial_version: "",
   token: undefined,
   modes: [],
   nextflow_version:
@@ -209,7 +209,7 @@ function resetForm() {
   workflow.short_description = "";
   workflow.repository_url = "";
   workflow.git_commit_hash = "";
-  workflow.initial_version = undefined;
+  workflow.initial_version = "";
   workflow.token = undefined;
   workflow.modes = [];
   workflowModes.modes = [
diff --git a/src/components/workflows/modals/UpdateWorkflowModal.vue b/src/components/workflows/modals/UpdateWorkflowModal.vue
index 399e27d99c545d5be404c560f9aba078b36843ad..2ef2268bbb5bb4a9b56deeadbfc402400cf72c09 100644
--- a/src/components/workflows/modals/UpdateWorkflowModal.vue
+++ b/src/components/workflows/modals/UpdateWorkflowModal.vue
@@ -8,7 +8,7 @@ import type {
   WorkflowModeOut,
   WorkflowVersion,
 } from "@/client/types.gen";
-import { NextflowVersion, DocumentationEnum } from "@/client/types.gen";
+import { DocumentationEnum } from "@/client/types.gen";
 import BootstrapModal from "@/components/modals/BootstrapModal.vue";
 import FontAwesomeIcon from "@/components/FontAwesomeIcon.vue";
 import { WorkflowCredentialsService } from "@/client";
@@ -56,8 +56,6 @@ const workflowUpdate = reactive<WorkflowUpdate>({
   git_commit_hash: "",
   delete_modes: [],
   append_modes: [],
-  nextflow_version:
-    Object.values(NextflowVersion)[Object.values(NextflowVersion).length - 1],
 });
 
 const workflowModes = reactive<{
@@ -95,7 +93,6 @@ watch(
   () => {
     resetForm();
     formState.modesEnabled = (latestVersion.value.modes ?? []).length > 0;
-    workflowUpdate.nextflow_version = latestVersion.value.nextflow_version;
     if (props.workflow.private) {
       formState.loadCredentials = true;
       WorkflowCredentialsService.workflowCredentialsGetWorkflowCredentials({
@@ -449,25 +446,6 @@ onMounted(() => {
             </div>
           </div>
         </div>
-        <div class="mb-3">
-          <label for="updateWorkflowNextflowVersionInput" class="form-label"
-            >Nextflow version</label
-          >
-          <select
-            id="updateWorkflowNextflowVersionInput"
-            v-model="workflowUpdate.nextflow_version"
-            class="form-select"
-            required
-          >
-            <option
-              v-for="version in Object.values(NextflowVersion).reverse()"
-              :key="version"
-              :value="version"
-            >
-              {{ version }}
-            </option>
-          </select>
-        </div>
         <div class="mb-3">
           <div class="form-check fs-5">
             <input
diff --git a/src/router/workflowRoutes.ts b/src/router/workflowRoutes.ts
index 1b99956da8388aefdf5103f641038dbf027b9292..ebdbd8109cf7523b6e03b69f93af39de0bc09aad 100644
--- a/src/router/workflowRoutes.ts
+++ b/src/router/workflowRoutes.ts
@@ -106,4 +106,18 @@ export const workflowRoutes: RouteRecordRaw[] = [
       workflowId: route.params.workflowId,
     }),
   },
+  {
+    path: "/workflows/:workflowId/version/:versionId/metadata",
+    name: "workflow-metadata",
+    component: () =>
+      import("../views/workflows/UpdateWorkflowVersionMetadata.vue"),
+    props: (route) => ({
+      workflowVersionId: route.params.versionId,
+      workflowId: route.params.workflowId,
+    }),
+    meta: {
+      requiresDeveloperRole: true,
+      title: "Metadata",
+    },
+  },
 ];
diff --git a/src/stores/workflows.ts b/src/stores/workflows.ts
index 367e493e27912992fae1d5cdc31feb5ea2e2e3aa..ac44d57d734a82c419e293a9625e7a16a629ada4 100644
--- a/src/stores/workflows.ts
+++ b/src/stores/workflows.ts
@@ -10,6 +10,8 @@ import type {
   WorkflowOut,
   WorkflowUpdate,
   WorkflowVersion,
+  WorkflowVersionMetadataIn,
+  WorkflowVersionMetadataOut,
 } from "@/client/types.gen";
 import { DocumentationEnum, WorkflowVersionStatus } from "@/client/types.gen";
 import {
@@ -90,6 +92,34 @@ export const useWorkflowStore = defineStore({
     __addNameToMapping(key: string, value: string) {
       useNameStore().addNameToMapping(key, value);
     },
+    fetchVersionMetadata(
+      workflowId: string,
+      versionId: string,
+    ): Promise<WorkflowVersionMetadataOut> {
+      return WorkflowVersionService.workflowVersionGetWorkflowVersionMetadata({
+        path: {
+          wid: workflowId,
+          git_commit_hash: versionId,
+        },
+        throwOnError: true,
+      }).then((response) => response.data!);
+    },
+    updateVersionMetadata(
+      workflowId: string,
+      versionId: string,
+      metadata: WorkflowVersionMetadataIn,
+    ): Promise<WorkflowVersionMetadataOut> {
+      return WorkflowVersionService.workflowVersionUpdateWorkflowVersionMetadata(
+        {
+          path: {
+            wid: workflowId,
+            git_commit_hash: versionId,
+          },
+          body: metadata,
+          throwOnError: true,
+        },
+      ).then((response) => response.data!);
+    },
     fetchWorkflows(onFinally?: () => void): Promise<WorkflowOut[]> {
       if (Object.keys(this.workflowMapping).length > 0) {
         onFinally?.();
diff --git a/src/views/admin/AdminBucketsView.vue b/src/views/admin/AdminBucketsView.vue
index 4674fd967e2624de6d1de6765daafd1d7bdfc3dd..61fed0d7d49544fc872332a20c3419c5458cb30d 100644
--- a/src/views/admin/AdminBucketsView.vue
+++ b/src/views/admin/AdminBucketsView.vue
@@ -106,7 +106,7 @@ function limitsUpdated(bucket: BucketOut) {
           <input
             id="admin-bucket-name-search"
             v-model.trim="bucketState.filterString"
-            type="text"
+            type="search"
             class="form-control"
             placeholder="Search Buckets"
             maxlength="32"
diff --git a/src/views/admin/AdminResourcesView.vue b/src/views/admin/AdminResourcesView.vue
index bbcbfbe8461cf66067b16fef548d2f19a6104b89..6bb58caa2459c8a8dc697ff97a99295b707e37eb 100644
--- a/src/views/admin/AdminResourcesView.vue
+++ b/src/views/admin/AdminResourcesView.vue
@@ -172,7 +172,7 @@ function resetForm() {
           <input
             id="admin-resource-name-search"
             v-model="resourceState.searchString"
-            type="text"
+            type="search"
             class="form-control"
             maxlength="32"
             placeholder="Search for resource name"
diff --git a/src/views/admin/AdminUsersView.vue b/src/views/admin/AdminUsersView.vue
index 9fbb8b96c0fa84270b72f3d1fe30986980988947..d23df47184948c182e84c5f90833edb2fd4c3315 100644
--- a/src/views/admin/AdminUsersView.vue
+++ b/src/views/admin/AdminUsersView.vue
@@ -156,7 +156,7 @@ onMounted(() => {
           <input
             id="admin-user-name-search"
             v-model="userState.searchString"
-            type="text"
+            type="search"
             class="form-control"
             maxlength="32"
             minlength="3"
diff --git a/src/views/object-storage/BucketView.vue b/src/views/object-storage/BucketView.vue
index c46cf18a675bd0f5c529d0b07ce6a6df5e178257..2d9c31cce9ec840834fe392d5d947c3b8481c63f 100644
--- a/src/views/object-storage/BucketView.vue
+++ b/src/views/object-storage/BucketView.vue
@@ -483,7 +483,7 @@ function getObjectFileName(key: string): string {
         <input
           id="filterObjectNameInput"
           v-model.trim="objectState.filterString"
-          type="text"
+          type="search"
           class="form-control"
           placeholder="Search Files"
           aria-label="Search Files"
diff --git a/src/views/object-storage/BucketsView.vue b/src/views/object-storage/BucketsView.vue
index 0eea808c5f62d67cab07b0f33a03a796bc40795b..06aacba94be2efefcc555011bbe50c0b61fce1f0 100644
--- a/src/views/object-storage/BucketsView.vue
+++ b/src/views/object-storage/BucketsView.vue
@@ -219,7 +219,7 @@ onMounted(() => {
         <input
           id="filterBucketNameInput"
           v-model.trim="bucketsState.filterString"
-          type="text"
+          type="search"
           class="form-control"
           placeholder="Search Buckets"
           aria-label="Search Buckets"
diff --git a/src/views/resources/ListResourcesView.vue b/src/views/resources/ListResourcesView.vue
index fbe7a7869dd0a101a22ddb406c45d9ba2883a049..71d77a58992296e912b16d7863ed66343a2e93ea 100644
--- a/src/views/resources/ListResourcesView.vue
+++ b/src/views/resources/ListResourcesView.vue
@@ -112,7 +112,7 @@ onMounted(() => {
         <input
           id="filterResourcesInput"
           v-model.trim="resourceState.filterString"
-          type="text"
+          type="search"
           class="form-control"
           placeholder="Filter Resources"
           aria-label="Filter Resources"
diff --git a/src/views/workflows/ListWorkflowsView.vue b/src/views/workflows/ListWorkflowsView.vue
index 99634f79e8aeef1b3b8f3b49ec71d411b39a3e0e..a2d183e5b95c50841ebe4a35582291750714eb01 100644
--- a/src/views/workflows/ListWorkflowsView.vue
+++ b/src/views/workflows/ListWorkflowsView.vue
@@ -82,8 +82,10 @@ onMounted(() => {
   <div class="row m-2 border-bottom mb-4">
     <h2 class="mb-2">Select Workflow</h2>
   </div>
-  <div class="d-flex m-2 mb-3 align-items-center justify-content-between">
-    <div class="col-5 me-auto">
+  <div
+    class="d-flex m-2 mb-1 align-items-center justify-content-between flex-wrap"
+  >
+    <div class="flex-grow-1 me-3 mb-2">
       <div class="input-group rounded shadow-sm">
         <span id="workflows-search-wrapping" class="input-group-text"
           ><font-awesome-icon icon="fa-solid fa-magnifying-glass"
@@ -91,7 +93,7 @@ onMounted(() => {
         <input
           id="filterWorkflowInput"
           v-model.trim="workflowsState.filterString"
-          type="text"
+          type="search"
           class="form-control"
           placeholder="Filter Workflows"
           aria-label="Filter Workflows"
@@ -101,48 +103,46 @@ onMounted(() => {
         />
       </div>
     </div>
-    <span class="fs-5 me-3 text-shadow">Sort Workflows By</span>
-    <div
-      class="btn-group btn-group-sm w-fit shadow-sm"
-      role="group"
-      aria-label="Basic radio toggle button group"
-    >
-      <input
-        id="sortName"
-        v-model="workflowsState.sortByAttribute"
-        type="radio"
-        class="btn-check"
-        name="btnradio"
-        autocomplete="off"
-        checked
-        value="name"
-      />
-      <label class="btn btn-outline-secondary" for="sortName"
-        >Alphabetical</label
-      >
+    <span class="fs-5 me-3 mb-2 text-shadow">Sort Workflows By</span>
+    <div class="mb-2">
+      <div class="btn-group btn-group-sm w-fit shadow-sm" role="group">
+        <input
+          id="sortName"
+          v-model="workflowsState.sortByAttribute"
+          type="radio"
+          class="btn-check"
+          name="btnradio"
+          autocomplete="off"
+          checked
+          value="name"
+        />
+        <label class="btn btn-outline-secondary" for="sortName"
+          >Alphabetical</label
+        >
 
-      <input
-        id="sortLatestRelease"
-        v-model="workflowsState.sortByAttribute"
-        type="radio"
-        class="btn-check"
-        name="btnradio"
-        autocomplete="off"
-        value="release"
+        <input
+          id="sortLatestRelease"
+          v-model="workflowsState.sortByAttribute"
+          type="radio"
+          class="btn-check"
+          name="btnradio"
+          autocomplete="off"
+          value="release"
+        />
+        <label class="btn btn-outline-secondary" for="sortLatestRelease"
+          >Latest Release</label
+        >
+      </div>
+      <font-awesome-icon
+        :icon="
+          workflowsState.sortDesc
+            ? 'fa-solid fa-arrow-down-wide-short'
+            : 'fa-solid fa-arrow-up-wide-short'
+        "
+        class="fs-5 ms-3 cursor-pointer"
+        @click="workflowsState.sortDesc = !workflowsState.sortDesc"
       />
-      <label class="btn btn-outline-secondary" for="sortLatestRelease"
-        >Latest Release</label
-      >
     </div>
-    <font-awesome-icon
-      :icon="
-        workflowsState.sortDesc
-          ? 'fa-solid fa-arrow-down-wide-short'
-          : 'fa-solid fa-arrow-up-wide-short'
-      "
-      class="fs-5 ms-3 cursor-pointer"
-      @click="workflowsState.sortDesc = !workflowsState.sortDesc"
-    />
   </div>
   <div v-if="environment.DEV_SYSTEM" class="d-grid gap-2 col-4 mx-auto">
     <button
diff --git a/src/views/workflows/UpdateWorkflowVersionMetadata.vue b/src/views/workflows/UpdateWorkflowVersionMetadata.vue
new file mode 100644
index 0000000000000000000000000000000000000000..0e80edfbbd4930a11e7bb4efed16d2365e58515d
--- /dev/null
+++ b/src/views/workflows/UpdateWorkflowVersionMetadata.vue
@@ -0,0 +1,198 @@
+<script setup lang="ts">
+import { useWorkflowStore } from "@/stores/workflows";
+import {
+  NextflowVersion,
+  type WorkflowOut,
+  type WorkflowVersion,
+  type WorkflowVersionMetadataIn,
+} from "@/client/types.gen";
+import { computed, onMounted, reactive, ref } from "vue";
+import BootstrapToast from "@/components/BootstrapToast.vue";
+import { Toast } from "bootstrap";
+
+const props = defineProps<{
+  workflowId: string;
+  workflowVersionId: string;
+}>();
+
+const metadata = reactive<WorkflowVersionMetadataIn>({
+  default_container: undefined,
+  nextflow_version: NextflowVersion._22_10_0,
+  nextflow_config: undefined,
+});
+
+const formState = reactive<{
+  validated: boolean;
+  loading: boolean;
+  containerError: boolean;
+}>({
+  validated: false,
+  loading: true,
+  containerError: false,
+});
+
+const workflowRepository = useWorkflowStore();
+
+const metadataForm = ref<HTMLFormElement | undefined>(undefined);
+const containerInput = ref<HTMLInputElement | undefined>(undefined);
+let successToast: Toast | undefined;
+
+const workflow = computed<WorkflowOut | undefined>(
+  () => workflowRepository.workflowMapping[props.workflowId ?? ""],
+);
+const workflowVersion = computed<WorkflowVersion | undefined>(
+  () => workflowRepository.versionMapping[props.workflowVersionId ?? ""],
+);
+
+function updateMetadata() {
+  formState.validated = true;
+  formState.containerError = false;
+  metadata.default_container =
+    metadata.default_container?.trim().length === 0
+      ? undefined
+      : metadata.default_container?.trim();
+  metadata.nextflow_config =
+    metadata.nextflow_config?.trim().length === 0
+      ? undefined
+      : metadata.nextflow_config?.trim();
+  containerInput.value?.setCustomValidity("");
+  if (metadataForm.value?.checkValidity()) {
+    formState.loading = true;
+    workflowRepository
+      .updateVersionMetadata(
+        props.workflowId,
+        props.workflowVersionId,
+        metadata,
+      )
+      .then((metadataOut) => {
+        successToast?.show();
+        formState.validated = false;
+        metadataOut.nextflow_config = metadata.nextflow_config;
+        metadataOut.nextflow_version = metadata.nextflow_version;
+        metadataOut.default_container = metadata.default_container;
+      })
+      .catch((err) => {
+        if (
+          metadata.default_container != undefined &&
+          err.response.data?.["detail"].includes(
+            metadata.default_container ?? "",
+          )
+        ) {
+          containerInput.value?.setCustomValidity(
+            "container image doesn't exist",
+          );
+          formState.containerError = true;
+        }
+      })
+      .finally(() => {
+        formState.loading = false;
+      });
+  }
+}
+
+onMounted(() => {
+  successToast = new Toast("#update-metadata-toast");
+  workflowRepository.fetchWorkflow(props.workflowId, true);
+  workflowRepository
+    .fetchVersionMetadata(props.workflowId, props.workflowVersionId)
+    .then((meta) => {
+      metadata.nextflow_version = meta.nextflow_version;
+      metadata.default_container = meta.default_container;
+      metadata.nextflow_config = meta.nextflow_config;
+    })
+    .finally(() => {
+      formState.loading = false;
+    });
+});
+</script>
+
+<template>
+  <bootstrap-toast toast-id="update-metadata-toast">
+    Successfully updated metadata
+  </bootstrap-toast>
+  <div class="row border-bottom mb-4">
+    <h2 class="mb-2">
+      Update Workflow Version Metadata of {{ workflow?.name }}@{{
+        workflowVersion?.version
+      }}
+    </h2>
+  </div>
+  <form
+    ref="metadataForm"
+    :class="{ 'was-validated': formState.validated }"
+    @submit.prevent="updateMetadata()"
+  >
+    <div class="row mb-3">
+      <div class="col">
+        <label for="container-input" class="form-label"
+          >Default Container</label
+        >
+        <input
+          id="container-input"
+          ref="containerInput"
+          v-model="metadata.default_container"
+          type="text"
+          class="form-control"
+          pattern="^(?:(?=[^:\/]{4,253})(?!-)[a-zA-Z0-9\-]{1,63}(?<!-)(?:\.(?!-)[a-zA-Z0-9\-]{1,63}(?<!-))*(?::[0-9]{1,5})?\/)?((?![\._\-])(?:[a-z0-9\._\-]*)(?<![\._\-])(?:\/(?![\._\-])[a-z0-9\._\-]*(?<![\._\-]))*):(?![\.\-])[a-zA-Z0-9_\.\-]{1,128}$"
+          placeholder="ubuntu:22.04"
+          :disabled="formState.loading"
+          @change="containerInput?.setCustomValidity('')"
+        />
+        <div class="form-text">
+          Override the default container that every Nextflow process without a
+          container directives gets executed in
+        </div>
+        <div class="invalid-feedback">Container image does not exist</div>
+      </div>
+      <div class="col">
+        <label for="nextflow-version-input" class="form-label"
+          >Nextflow Version</label
+        >
+        <select
+          id="nextflow-version-input"
+          v-model="metadata.nextflow_version"
+          class="form-select"
+          required
+          :disabled="formState.loading"
+        >
+          <option
+            v-for="version in Object.values(NextflowVersion).reverse()"
+            :key="version"
+            :value="version"
+          >
+            {{ version }}
+          </option>
+        </select>
+      </div>
+    </div>
+    <div class="mb-2">
+      <label for="config-input" class="form-label">Nextflow config</label>
+      <div class="form-text">
+        <span class="text-warning"
+          >USE AT YOUR OWN RISK! NO SYNTAX VALIDATION!</span
+        >
+        <br />
+        Override the nextflow.config file in the git repository.
+      </div>
+      <textarea
+        id="config-input"
+        v-model="metadata.nextflow_config"
+        class="form-control"
+        rows="10"
+        spellcheck="false"
+        :disabled="formState.loading"
+      />
+    </div>
+    <div class="d-grid gap-2">
+      <button
+        type="submit"
+        class="btn btn-success btn-lh mt-3"
+        :disabled="formState.loading"
+      >
+        Save
+      </button>
+    </div>
+  </form>
+</template>
+
+<style scoped></style>