diff --git a/openapi-clowm.json b/openapi-clowm.json index 7a3f4447319ef7ac7569ae716645ff39fb51158e..48f63d47f687a81105759ddda7d62af7a1866b75 100644 --- a/openapi-clowm.json +++ b/openapi-clowm.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"CloWM","description":"\nThis is the API documentation of the CloWM Service.\n\nLook in the [Git repository](https://gitlab.ub.uni-bielefeld.de/cmg/clowm/clowm-backend/-/blob/main/RBAC.md)\nto see which role has which permission.\n","contact":{"name":"Daniel Goebel","url":"https://ekvv.uni-bielefeld.de/pers_publ/publ/PersonDetail.jsp?personId=223066601","smtp":"dgoebel@techfak.uni-bielefeld.de"},"license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0"},"version":"1.0.0"},"servers":[{"url":"/api"}],"paths":{"/auth/login":{"get":{"tags":["Auth"],"summary":"Kickstart the login flow","description":"Redirect route to OIDC provider to kickstart the login process.","operationId":"Auth-login","parameters":[{"name":"invitation_token","in":"query","required":false,"schema":{"type":"string","minLength":43,"maxLength":43,"description":"Unique token to validate an invitation","title":"Invitation Token"},"description":"Unique token to validate an invitation"},{"name":"provider","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OIDCProvider","description":"The OIDC provider to use for login","default":"lifescience"},"description":"The OIDC provider to use for login"},{"name":"next","in":"query","required":false,"schema":{"type":"string","maxLength":128,"description":"Will be appended to redirect response in the callback route as URL query parameter `next`","title":"Next"},"description":"Will be appended to redirect response in the callback route as URL query parameter `next`"}],"responses":{"302":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/callback/{provider}":{"get":{"tags":["Auth"],"summary":"LifeScience Login Callback","description":"Callback for the Life Science Identity Provider.\n\nVisit the route login route to start the login process.\n\nIf the user is already known to the system, then a JWT token will be created and sent via the 'set-cookie' header.\nThe key for this Cookie is 'bearer'.\n\nIf the user is new, he will be created and then a JWT token is issued.\n\nThis JWT has to be sent to all authorized endpoints via the HTTPBearer scheme.","operationId":"Auth-login_callback","parameters":[{"name":"provider","in":"path","required":true,"schema":{"$ref":"#/components/schemas/OIDCProvider"}}],"responses":{"302":{"description":"Successful Response","headers":{"Set-Cookie":{"description":"JWT for accessing the API","schema":{"type":"string","example":"bearer=fake-jwt-cookie; Domain=localhost; Max-Age=691200; Path=/; SameSite=strict; Secure"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/logout":{"get":{"tags":["Auth"],"summary":"Logout","description":"Logout the user from the system by deleting the bearer cookie.","operationId":"Auth-logout","responses":{"302":{"description":"Successful Response","headers":{"Set-Cookie":{"description":"JWT for accessing the API","schema":{"type":"string","example":"bearer=; Domain=localhost; Max-Age=0; Path=/; SameSite=strict; Secure"}}}}}}},"/tokens":{"get":{"tags":["APIToken"],"summary":"List API token","description":"List meta information about all API token.\n\nPermissions `api_token:list_all` required. See parameter `uid` for exception.","operationId":"APIToken-list_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of the user to filter for. Permission `api_token:list` required if current users is the target.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of the user to filter for. Permission `api_token:list` required if current users is the target."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiTokenOut"},"title":"Response Apitoken-List Token"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["APIToken"],"summary":"Create new API token","description":"Create a new API token for the current user.\n\nPermission `api_token:create` required.","operationId":"APIToken-create_token","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenPrivateOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokens/{tid}":{"get":{"tags":["APIToken"],"summary":"Get API token","description":"Get an API token by id.\n\nPermission `api_token:read` required if the current user is the owner of the API token,\notherwise `api_token:read_any` required.","operationId":"APIToken-get_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of an API token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"],"title":"Tid"},"description":"ID of an API token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["APIToken"],"summary":"Delete API token","description":"Delete an API token by id.\n\nPermission `api_token:delete` required if the current user is the owner of the API token,\notherwise `api_token:delete_any` required.","operationId":"APIToken-delete_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of an API token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"],"title":"Tid"},"description":"ID of an API token"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users":{"post":{"tags":["User"],"summary":"Create User","description":"Create a new user in the system and notify him.\n\nPermission `user:create` required.","operationId":"User-create_user","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["User"],"summary":"List users and search by their name","description":"List all users in the system..\n\nPermission `user:list` required.","operationId":"User-list_users","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":false,"schema":{"type":"string","minLength":3,"maxLength":30,"description":"Filter users by a substring in their name.","title":"Name Substring"},"description":"Filter users by a substring in their name."},{"name":"filter_roles","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleEnum"},"description":"Filter users by their role. If multiple are selected, they are concatenating by an OR Expression.","title":"Filter Roles"},"description":"Filter users by their role. If multiple are selected, they are concatenating by an OR Expression."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserOutExtended"},"title":"Response User-List Users"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/search":{"get":{"tags":["User"],"summary":"Search Users","description":"Search for users in the system by their name.\n\nPermission `user: search` required.","operationId":"User-search_users","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":30,"description":"Filter users by a substring in their name.","title":"Name Substring"},"description":"Filter users by a substring in their name."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserOut"},"title":"Response User-Search Users"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/me":{"get":{"tags":["User"],"summary":"Get the logged in user","description":"Return the user associated with the used JWT.\n\nPermission `user:read` required.","operationId":"User-get_logged_in_user","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/users/{uid}":{"get":{"tags":["User"],"summary":"Get a user by its uid","description":"Return the user with the specific uid.\n\nPermission `user:read` required.","operationId":"User-get_user","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/roles":{"put":{"tags":["User"],"summary":"Update user roles","description":"Update the roles of a user.\n\nPermission `user:update` required.","operationId":"User-update_roles","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRoles"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/invitation":{"patch":{"tags":["User"],"summary":"Resend Invitation","description":"Resend the invitation link for an user that has an open invitation.\n\nPermission `user:create` required.","operationId":"User-resend_invitation","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/keys":{"get":{"tags":["S3Key"],"summary":"Get the S3 Access keys from a user","description":"Get all the S3 Access keys for a specific user.\n\nPermission `s3_key:list` required.","operationId":"S3Key-get_user_keys","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/S3Key"},"title":"Response S3Key-Get User Keys"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["S3Key"],"summary":"Create a Access key for a user","description":"Create a S3 Access key for a specific user.\n\nPermission `s3_key:create` required.","operationId":"S3Key-create_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Key"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/keys/{access_id}":{"get":{"tags":["S3Key"],"summary":"Get a specific S3 Access key from a user","description":"Get a specific S3 Access Key for a specific user.\n\nPermission `s3_key:read` required.","operationId":"S3Key-get_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"access_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"],"title":"Access Id"},"description":"ID of the S3 access key"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Key"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["S3Key"],"summary":"Delete a specific S3 Access key from a user","description":"Delete a specific S3 Access key for a specific user.\n\nPermission `s3_key:delete` required if the current user is the target, otherwise `s3_key:delete_any` required.","operationId":"S3Key-delete_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"access_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"],"title":"Access Id"},"description":"ID of the S3 access key"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets":{"get":{"tags":["Bucket"],"summary":"List buckets","description":"List all the buckets in the system or of the desired user where the user has permissions for.\n\nPermission `bucket:list_all` required. See parameter `owner_id` for exception.","operationId":"Bucket-list_buckets","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of the user for whom to fetch the buckets for. Permission `bucket:read_any` required if current user is not the target.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Owner Id"},"description":"UID of the user for whom to fetch the buckets for. Permission `bucket:read_any` required if current user is not the target."},{"name":"bucket_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/BucketType","description":"Type of the bucket to get. Ignored when `user` parameter not set","default":"ALL"},"description":"Type of the bucket to get. Ignored when `user` parameter not set"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketOut"},"title":"Response Bucket-List Buckets"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Bucket"],"summary":"Create a bucket for the current user","description":"Create a bucket for the current user.\n\nThe name of the bucket has some constraints.\nFor more information see the\n[Ceph documentation](https://docs.ceph.com/en/quincy/radosgw/s3/bucketops/#constraints)\n\nPermission `bucket:create` required.","operationId":"Bucket-create_bucket","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/ownership_transfer_request":{"get":{"tags":["Bucket"],"summary":"List bucket OTRs","description":"Get the ownership transfer requests for buckets.\n\nPermission `bucket:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `bucket:list_all`","operationId":"Bucket-list_bucket_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Bucket-List Bucket Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}":{"get":{"tags":["Bucket"],"summary":"Get a bucket by its name","description":"Get a bucket by its name if the current user has READ permissions for the bucket.\n\nPermission `bucket:read` required if the current user is the owner of the bucket,\notherwise `bucket:read_any` required.","operationId":"Bucket-get_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Bucket"],"summary":"Delete a bucket","description":"Delete a bucket by its name. Only the owner of the bucket can delete the bucket.\n\nPermission `bucket:delete` required if the current user is the owner of the bucket,\notherwise `bucket:delete_any` required.","operationId":"Bucket-delete_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"},{"name":"force_delete","in":"query","required":false,"schema":{"type":"boolean","description":"Delete even non-empty bucket","default":false,"title":"Force Delete"},"description":"Delete even non-empty bucket"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/ownership_transfer_request":{"get":{"tags":["Bucket"],"summary":"Get a bucket OTR","description":"Get a specific bucket ownership transfer request.\n\nPermission `bucket:read` required if the current user is the current or new owner of the bucket,\notherwise `bucket:read_any` required.","operationId":"Bucket-get_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Bucket"],"summary":"Create a bucket OTR","description":"Create a ownership transfer request for a specific bucket.\n\nPermission `bucket:update` required if the current user is the current owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-create_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Bucket"],"summary":"Accept a bucket OTR","description":"Accept an ownership transfer request for a specific workflow.\n\nPermission `bucket:update` required if the current user is the new owner of the workflow,\notherwise `bucket:update_any` required.","operationId":"Bucket-accept_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Bucket"],"summary":"Delete a bucket OTR","description":"Delete/Reject a bucket ownership transfer request.\n\nPermission `bucket:update` required if the current user is the current or new owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-delete_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/public":{"patch":{"tags":["Bucket"],"summary":"Update public status","description":"Update the buckets public state.\n\nPermission `bucket:update` required if the current user is the owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-update_bucket_public_state","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Bucket-update_bucket_public_state"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/limits":{"patch":{"tags":["Bucket"],"summary":"Update bucket limits","description":"Update the buckets size limits.\n\nPermission `bucket:update_any` required.","operationId":"Bucket-update_bucket_limits","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketSizeLimits"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions.","description":"List all the bucket permissions in the system.\n\nPermission `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"permission_types","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/Permission"},"description":"Type of Bucket Permissions to fetch","title":"Permission Types"},"description":"Type of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/PermissionStatus","description":"Status of Bucket Permissions to fetch"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["BucketPermission"],"summary":"Create a permission.","description":"Create a permission for a bucket and user.\n\nPermission `bucket_permission:create` required.","operationId":"BucketPermission-create_permission","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionIn","description":"Permission to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/user/{uid}":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions for a user.","description":"List all the bucket permissions for the given user.\n\nPermission `bucket_permission:list` required if current user is the target the bucket permission,\notherwise `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions_per_user","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"},{"name":"permission_types","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/Permission"},"description":"Type of Bucket Permissions to fetch","title":"Permission Types"},"description":"Type of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/PermissionStatus","description":"Status of Bucket Permissions to fetch"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions Per User"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/bucket/{bucket_name}":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions for a bucket.","description":"List all the bucket permissions for the given bucket.\n\nPermission `bucket_permission:list` required if current user is owner of the bucket,\notherwise `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions_per_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"},{"name":"permission_types","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/Permission"},"description":"Type of Bucket Permissions to fetch","title":"Permission Types"},"description":"Type of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/PermissionStatus","description":"Status of Bucket Permissions to fetch"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions Per Bucket"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/bucket/{bucket_name}/user/{uid}":{"get":{"tags":["BucketPermission"],"summary":"Get permission for bucket and user combination.","description":"Get the bucket permissions for the specific combination of bucket and user.\n\nPermission `bucket_permission:read` required if current user is the target or owner of the bucket permission,\notherwise `bucket_permission:read_any` required.","operationId":"BucketPermission-get_permission_for_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["BucketPermission"],"summary":"Update a bucket permission","description":"Update a permission for a bucket and user.\n\nPermission `bucket_permission:update` required.","operationId":"BucketPermission-update_permission","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionParameters","description":"Permission to create"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["BucketPermission"],"summary":"Delete a bucket permission","description":"Delete the bucket permissions for the specific combination of bucket and user.\n\nPermission `bucket_permission:delete` required if current user is the target or owner of the bucket permission,\notherwise `bucket_permission:delete_any` required.","operationId":"BucketPermission-delete_permission","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows":{"post":{"tags":["Workflow"],"summary":"Create a new workflow","description":"Create a new workflow.\n\nFor private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.\n\nFor private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.\n\nPermission `workflow:create` required.","operationId":"Workflow-create_workflow","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Workflow"],"summary":"List workflows","description":"List all workflows.\n\nPermission `workflow:list` required.","operationId":"Workflow-list_workflows","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":false,"schema":{"type":"string","minLength":3,"maxLength":30,"description":"Filter workflows by a substring in their name.","title":"Name Substring"},"description":"Filter workflows by a substring in their name."},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`.","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`."},{"name":"developer_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Developer Id"},"description":"Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowOut"},"title":"Response Workflow-List Workflows"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/ownership_transfer_request":{"get":{"tags":["Workflow"],"summary":"List workflow OTRs","description":"Get the ownership transfer requests for workflows.\n\nPermission `workflow:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `workflow:list_all`","operationId":"Workflow-list_workflow_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Workflow-List Workflow Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/developer_statistics":{"get":{"tags":["Workflow"],"summary":"Get anonymized workflow execution","description":"Get the workflow executions with meta information and anonymized user IDs.\n\nPermission `workflow:read` required if the `developer_id` is the same as the uid of the current user,\nother `workflow:read_any`.","operationId":"Workflow-get_developer_workflow_statistics","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"developer_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Filter by the developer of the workflows","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Developer Id"},"description":"Filter by the developer of the workflows"},{"name":"workflow_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Filter by workflow IDs","title":"Workflow Id"},"description":"Filter by workflow IDs"},{"name":"start","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Filter by workflow executions after this date","title":"Start"},"description":"Filter by workflow executions after this date"},{"name":"end","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Filter by workflow executions before this date","title":"End"},"description":"Filter by workflow executions before this date"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AnonymizedWorkflowExecution"},"title":"Response Workflow-Get Developer Workflow Statistics"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}":{"get":{"tags":["Workflow"],"summary":"Get a workflow","description":"Get a specific workflow.\n\nPermission `workflow:read` required.","operationId":"Workflow-get_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"},"description":"Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow"],"summary":"Delete a workflow","description":"Delete a workflow.\n\nPermission `workflow:delete` required if the `developer_id` is the same as the uid of the current user,\nother `workflow:delete_any`.","operationId":"Workflow-delete_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/ownership_transfer_request":{"get":{"tags":["Workflow"],"summary":"Get a workflow OTR","description":"Get a specific workflow ownership transfer request.\n\nPermission `workflow:read` required if current user is the current or new owner of the workflow,\notherwise `workflow:read_any` required.","operationId":"Workflow-get_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Workflow"],"summary":"Create a workflow OTR","description":"Create a ownership transfer request for a specific workflow.\n\nPermission `workflow:update` required if the current user is the current owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-create_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Workflow"],"summary":"Accept a workflow OTR","description":"Accept an ownership transfer request for a specific workflow.\n\nPermission `workflow:update` required if the current user is the new owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-accept_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow"],"summary":"Delete a workflow OTR","description":"Delete/Reject a workflow ownership transfer request.\n\nPermission `workflow:update` required if current user is the current or new owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-delete_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/statistics":{"get":{"tags":["Workflow"],"summary":"Get statistics for a workflow","description":"Get the number of started workflow per day.\n\nPermission `workflow:read` required.","operationId":"Workflow-get_workflow_statistics","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowStatistic"},"title":"Response Workflow-Get Workflow Statistics"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/update":{"post":{"tags":["Workflow"],"summary":"Update a workflow","description":"Create a new workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow-update_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowUpdate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions":{"get":{"tags":["Workflow Version"],"summary":"Get all versions of a workflow","description":"List all versions of a Workflow.\n\nPermission `workflow:list` required.","operationId":"Workflow Version-list_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersion"},"title":"Response Workflow Version-List Workflow Version"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}":{"get":{"tags":["Workflow Version"],"summary":"Get a workflow version","description":"Get a specific version of a workflow.\n\nPermission `workflow:read` required if the version is public or you are the developer of the workflow,\notherwise `workflow:read_any`","operationId":"Workflow Version-get_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit `git_commit_hash` of specific version or `latest`.","examples":["latest","ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit `git_commit_hash` of specific version or `latest`."},{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/status":{"patch":{"tags":["Workflow Version"],"summary":"Update status of workflow version","description":"Update the status of a workflow version.\n\nPermission `workflow:update_status`","operationId":"Workflow Version-update_workflow_version_status","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionStatusSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/deprecate":{"patch":{"tags":["Workflow Version"],"summary":"Deprecate a workflow version","description":"Deprecate a workflow version.\n\nPermission `workflow:update` required if you are the developer of the workflow,\notherwise `workflow:update_status`","operationId":"Workflow Version-deprecate_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/parameter-extension":{"patch":{"tags":["Workflow Version"],"summary":"Update parameter extension of workflow version","description":"Update the parameter extension of a workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-update_workflow_version_parameter_extension","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParameterExtension"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Version"],"summary":"Delete parameter extension of workflow version","description":"Delete the parameter extension of a workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-delete_workflow_version_parameter_extension","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/documentation":{"get":{"tags":["Workflow Version"],"summary":"Fetch documentation for a workflow version","description":"Get the documentation for a specific workflow version.\nStreams the response directly from the right git repository.\n\nPermission `workflow:read` required.","operationId":"Workflow Version-download_workflow_documentation","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."},{"name":"document","in":"query","required":false,"schema":{"$ref":"#/components/schemas/DocumentationEnum","description":"Specify which type of documentation the client wants to fetch","default":"usage.md"},"description":"Specify which type of documentation the client wants to fetch"},{"name":"mode_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Workflow Mode","title":"Mode Id"},"description":"Workflow Mode"}],"responses":{"200":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/icon":{"post":{"tags":["Workflow Version"],"summary":"Upload icon for workflow version","description":"Upload an icon for the workflow version and returns the new icon URL.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-upload_workflow_version_icon","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Workflow_Version-upload_workflow_version_icon"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IconUpdateOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Version"],"summary":"Delete icon of workflow version","description":"Delete the icon of the workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-delete_workflow_version_icon","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions":{"post":{"tags":["Workflow Execution"],"summary":"Start a new workflow execution","description":"Start a new workflow execution. Workflow versions wit status `DEPRECATED` or `DENIED` can't be started.\n\nPermission `workflow_execution:create` required if workflow versions status is `PUBLISHED`,\notherwise `workflow_execution:create_any` required.","operationId":"Workflow Execution-start_workflow","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Workflow Execution"],"summary":"Get all workflow executions","description":"Get all workflow executions.\n\nThis endpoint enforces keyset pagination. To iterate over all workflow executions, follow the link provided in the\n`Link` header.\nA missing `Link` header indicates that you iterated over all workflow executions with the current filters.\n\nPermission `workflow_execution:list` required, if `executor_id` is the same as the current user,\notherwise `workflow_execution:list_all` required.","operationId":"Workflow Execution-list_workflow_executions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"executor_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Executor Id"},"description":"Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required."},{"name":"execution_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowExecutionStatus"},"description":"Filter for status of workflow execution","title":"Execution Status"},"description":"Filter for status of workflow execution"},{"name":"workflow_version_id","in":"query","required":false,"schema":{"type":"string","minLength":40,"maxLength":40,"description":"Filter for workflow version","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Workflow Version Id"},"description":"Filter for workflow version"},{"name":"workflow_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Filter for workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Workflow Id"},"description":"Filter for workflow"},{"name":"start_after","in":"query","required":false,"schema":{"type":"integer","ge":0,"description":"Filter for workflow executions that started after this UNIX timestamp","title":"Start After"},"description":"Filter for workflow executions that started after this UNIX timestamp"},{"name":"start_before","in":"query","required":false,"schema":{"type":"integer","ge":0,"description":"Filter for workflow executions that started before this UNIX timestamp","title":"Start Before"},"description":"Filter for workflow executions that started before this UNIX timestamp"},{"name":"id_after","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Id of the item to start the query from. DO NOT SET MANUALLY.","title":"Id After"},"description":"Id of the item to start the query from. DO NOT SET MANUALLY."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":5,"description":"Number of items to list per page","default":20,"title":"Per Page"},"description":"Number of items to list per page"},{"name":"sort","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Sort order of items with creation time","default":"desc","title":"Sort"},"description":"Sort order of items with creation time"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowExecutionOut"},"title":"Response Workflow Execution-List Workflow Executions"}}},"headers":{"Link":{"description":"Link for the next pagination page if there is any","schema":{"type":"string","example":"<https://clowm.de/api/workflow_executions?per_page=50&sort=asc&id_after=a16c50f8-c1fb-4b3c-afe3-82f1575bc2f4>; rel=\"next\""}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/arbitrary":{"post":{"tags":["Workflow Execution"],"summary":"Start a workflow execution with arbitrary git repository","description":"Start a new workflow execution from an arbitrary git repository.\n\nFor private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.\n\nFor private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.\n\nPermission `workflow:create` required.","operationId":"Workflow Execution-start_arbitrary_workflow","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevWorkflowExecutionIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/workflow_executions/{eid}":{"get":{"tags":["Workflow Execution"],"summary":"Get a workflow execution","description":"Get a specific workflow execution.\n\nPermission `workflow_execution:read` required if the current user started the workflow execution,\notherwise `workflow_execution:read_any` required.","operationId":"Workflow Execution-get_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Execution"],"summary":"Delete a workflow execution","description":"Delete a specific workflow execution.\n\nPermission `workflow_execution:delete` required if the current user started the workflow execution,\notherwise `workflow_execution:delete_any` required.","operationId":"Workflow Execution-delete_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/{eid}/params":{"get":{"tags":["Workflow Execution"],"summary":"Get the parameters of a workflow execution","description":"Get the parameters of a specific workflow execution.\n\nPermission `workflow_execution:read` required if the current user started the workflow execution,\notherwise `workflow_execution:read_any` required.","operationId":"Workflow Execution-get_workflow_execution_params","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Workflow Execution-Get Workflow Execution Params"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/{eid}/cancel":{"post":{"tags":["Workflow Execution"],"summary":"Cancel a workflow execution","description":"Cancel a running workflow execution.\n\nPermission `workflow_execution:cancel` required if the current user started the workflow execution,\notherwise `workflow_execution:cancel_any` required.","operationId":"Workflow Execution-cancel_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/credentials":{"get":{"tags":["Workflow Credentials"],"summary":"Get the credentials of a workflow","description":"Get the credentials for the repository of a workflow. Only the developer of a workflow can do this.\n\nPermission `workflow:update` required.","operationId":"Workflow Credentials-get_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCredentialsOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Workflow Credentials"],"summary":"Update the credentials of a workflow","description":"Update the credentials for the repository of a workflow.\n\nPermission `workflow:update` required.","operationId":"Workflow Credentials-update_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCredentialsIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Credentials"],"summary":"Delete the credentials of a workflow","description":"Delete the credentials for the repository of a workflow.\n\nPermission `workflow:delete` required if the developer of the workflow is the same as the current user,\nother `workflow:delete_any`.","operationId":"Workflow Credentials-delete_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_modes/{mode_id}":{"get":{"tags":["Workflow Mode"],"summary":"Get workflow mode","description":"Get a workflow mode\n\nPermission `workflow:read` required","operationId":"Workflow Mode-get_workflow_mode","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"mode_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow mode","title":"Mode Id"},"description":"ID of a workflow mode"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowModeOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources":{"post":{"tags":["Resource"],"summary":"Request a new resource","description":"Request a new resources.\n\nPermission `resource:create` required.","operationId":"Resource-create_resource","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Resource"],"summary":"List resources","description":"List all resources.\n\nPermission `resource:list` required.","operationId":"Resource-list_resources","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"maintainer_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`.","title":"Maintainer Id"},"description":"Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`."},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"},"description":"Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required."},{"name":"name_substring","in":"query","required":false,"schema":{"type":"string","maxLength":32,"description":"Filter resources by a substring in their name.","title":"Name Substring"},"description":"Filter resources by a substring in their name."},{"name":"public","in":"query","required":false,"schema":{"type":"boolean","description":"Filter resources to by the public flag","title":"Public"},"description":"Filter resources to by the public flag"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceOut"},"title":"Response Resource-List Resources"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/sync_requests":{"get":{"tags":["Resource"],"summary":"List resource sync requests","description":"List all resource sync requests.\n\nPermission `resource:update_any` required.","operationId":"Resource-list_sync_requests","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserSynchronizationRequestOut"},"type":"array","title":"Response Resource-List Sync Requests"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/resources/ownership_transfer_request":{"get":{"tags":["Resource"],"summary":"List resource OTRs","description":"Get the ownership transfer requests for resources.\n\nPermission `resource:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `resource:list_all`","operationId":"Resource-list_resource_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Resource-List Resource Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}":{"get":{"tags":["Resource"],"summary":"Get a resource","description":"Get a specific resource.\n\nPermission `resource:read` required.","operationId":"Resource-get_resource","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Resource"],"summary":"Delete a resource","description":"Delete a resources.\n\nPermission `resource:delete` required.","operationId":"Resource-delete_resource","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/ownership_transfer_request":{"get":{"tags":["Resource"],"summary":"Get a resource OTR","description":"Get a specific resource ownership transfer request.\n\nPermission `resource:read` required if the current user is the current or new owner of the resource,\notherwise `resource:read_any` required.","operationId":"Resource-get_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Resource"],"summary":"Create a resource OTR","description":"Create a ownership transfer request for a specific resource.\n\nPermission `resource:update` required if the current user is the current owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-create_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Resource"],"summary":"Accept a resource OTR","description":"Accept an ownership transfer request for a specific resource.\n\nPermission `resource:update` required if the current user is the new owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-accept_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Resource"],"summary":"Delete a resource OTR","description":"Delete/Reject a resource ownership transfer request.\n\nPermission `resource:update` required if the current user is the current or new owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-delete_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions":{"get":{"tags":["ResourceVersion"],"summary":"List versions of a resource","description":"List all the resource version for a specific resource.\n\nPermission 'resource:read' required.","operationId":"ResourceVersion-list_resource_versions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"version_status","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionOut"},"title":"Response Resourceversion-List Resource Versions"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["ResourceVersion"],"summary":"Request new version of a resource","description":"Request a new resource version.\n\nPermission `resource:update` required if the current user is the maintainer, `resource:update_any` otherwise.","operationId":"ResourceVersion-request_resource_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}":{"get":{"tags":["ResourceVersion"],"summary":"Get version of a resource","description":"Get a specific resource version for a specific resource.\n\nPermission `resource:read` required. If the status of the resource version is not `LATEST` or `SYNCHRONIZED` and\nthe current user is not the maintainer, then the permission `resource:read_any` is required.","operationId":"ResourceVersion-get_resource_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/tree":{"get":{"tags":["ResourceVersion"],"summary":"Download folder structure of resource","description":"Get the folder structure of the resources. Only available if the resource was previously downloaded to the cluster.\n\nPermission `resource:read` required.","operationId":"ResourceVersion-resource_file_tree","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileTree"},"title":"Response Resourceversion-Resource File Tree"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/request_review":{"put":{"tags":["ResourceVersion"],"summary":"Request resource version review","description":"Request the review of a resource version.\n\nPermission `resource:update` required.","operationId":"ResourceVersion-request_resource_version_review","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/request_sync":{"put":{"tags":["ResourceVersion"],"summary":"Request resource version synchronization","description":"Request the synchronization of a resource version to the cluster.\n\nPermission `resource:request_sync` required.","operationId":"ResourceVersion-request_resource_version_sync","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSynchronizationRequestIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/review":{"put":{"tags":["ResourceVersion"],"summary":"Review resource version","description":"Review answer the resource version.\n\nPermission `resource:update_status` required.","operationId":"ResourceVersion-resource_version_review","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRequestAnswer"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/sync":{"put":{"tags":["ResourceVersion"],"summary":"Synchronize resource version with cluster","description":"Synchronize the resource version to the cluster.\n\nPermission `resource:update_any` required.","operationId":"ResourceVersion-resource_version_sync","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRequestAnswer"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/latest":{"put":{"tags":["ResourceVersion"],"summary":"Set resource version to latest","description":"Set the resource version as the latest version.\n\nPermission `resource:update_any` required.","operationId":"ResourceVersion-resource_version_latest","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/cluster":{"delete":{"tags":["ResourceVersion"],"summary":"Delete resource version on cluster","description":"Delete the resource version on the cluster.\n\nPermission `resource:delete_any` required.","operationId":"ResourceVersion-delete_resource_version_cluster","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/s3":{"delete":{"tags":["ResourceVersion"],"summary":"Delete resource version in S3","description":"Delete the resource version in the S3 bucket.\n\nPermission `resource:delete_any` required.","operationId":"ResourceVersion-delete_resource_version_s3","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rid"}},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rvid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AnonymizedWorkflowExecution":{"properties":{"workflow_execution_id":{"type":"string","title":"Workflow Execution Id","description":"ID of the workflow execution","examples":["591b6a6e-a1f0-420d-8a20-a7a60704f695"]},"pseudo_uid":{"type":"string","title":"Pseudo Uid","description":"Anonymized user ID of the user who ran the workflow execution","examples":["7ed4249857b656e96f456449796e461e6001d3fb2481a44701f70ca437bd53a2"]},"workflow_mode_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Mode Id","description":"ID of the workflow mode this workflow execution ran in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"workflow_version_id":{"type":"string","title":"Workflow Version Id","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"started_at":{"type":"string","format":"date","title":"Started At","description":"Day of the workflow execution","examples":["2023-01-01"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"developer_id":{"type":"string","title":"Developer Id","description":"ID of developer of the workflow","examples":["28c5353b8bb34984a8bd4169ba94c606"]},"status":{"$ref":"#/components/schemas/WorkflowExecutionStatus","description":"End status of the workflow execution","examples":["SUCCESS"]}},"type":"object","required":["workflow_execution_id","pseudo_uid","workflow_version_id","started_at","workflow_id","developer_id","status"],"title":"AnonymizedWorkflowExecution"},"ApiTokenIn":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"$ref":"#/components/schemas/ScopeEnum"},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has","examples":[["read"]]}},"type":"object","required":["name","scopes"],"title":"ApiTokenIn"},"ApiTokenOut":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"$ref":"#/components/schemas/ScopeEnum"},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has","examples":[["read"]]},"token_id":{"type":"string","title":"Token Id","description":"The ID of the token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"]},"uid":{"type":"string","title":"Uid","description":"The ID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"created_at":{"type":"integer","title":"Created At","description":"The UNIX timestamp when this token was created","examples":["1717192800"]},"last_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used","description":"The UNIX timestamp when this token was used the last time","examples":["1717193800"]}},"type":"object","required":["name","scopes","token_id","uid","created_at"],"title":"ApiTokenOut"},"ApiTokenPrivateOut":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"$ref":"#/components/schemas/ScopeEnum"},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has","examples":[["read"]]},"token_id":{"type":"string","title":"Token Id","description":"The ID of the token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"]},"uid":{"type":"string","title":"Uid","description":"The ID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"created_at":{"type":"integer","title":"Created At","description":"The UNIX timestamp when this token was created","examples":["1717192800"]},"last_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used","description":"The UNIX timestamp when this token was used the last time","examples":["1717193800"]},"token":{"type":"string","title":"Token","description":"The actual token used for authentication","examples":["J21NRKUYgyVUgvJ3cIdllS-MMa9ny1UDKFF18aetDvo"]}},"type":"object","required":["name","scopes","token_id","uid","created_at","token"],"title":"ApiTokenPrivateOut"},"Body_Bucket-update_bucket_public_state":{"properties":{"public":{"type":"boolean","title":"Public","description":"New State"}},"type":"object","required":["public"],"title":"Body_Bucket-update_bucket_public_state"},"Body_Workflow_Version-upload_workflow_version_icon":{"properties":{"icon":{"type":"string","format":"binary","title":"Icon","description":"Icon for the Workflow."}},"type":"object","required":["icon"],"title":"Body_Workflow Version-upload_workflow_version_icon"},"BucketIn":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$","title":"Name","description":"Name of the bucket","examples":["test-bucket"]},"description":{"type":"string","maxLength":65536,"minLength":16,"title":"Description","description":"Description of the bucket","examples":["This is a sample description of a bucket"]}},"type":"object","required":["name","description"],"title":"BucketIn","description":"Schema for creating a new bucket."},"BucketOut":{"properties":{"size_limit":{"anyOf":[{"type":"integer","exclusiveMaximum":4294967296.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Size Limit","description":"Size limit of the bucket in KiB","examples":[10240]},"object_limit":{"anyOf":[{"type":"integer","exclusiveMaximum":4294967296.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Object Limit","description":"Number of objects limit of the bucket","examples":[10000]},"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$","title":"Name","description":"Name of the bucket","examples":["test-bucket"]},"description":{"type":"string","maxLength":65536,"minLength":16,"title":"Description","description":"Description of the bucket","examples":["This is a sample description of a bucket"]},"created_at":{"type":"integer","title":"Created At","description":"Time when the bucket was created as UNIX timestamp","examples":[1640991600]},"owner_id":{"type":"string","title":"Owner Id","description":"UID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"public":{"type":"boolean","title":"Public","description":"Flag if the bucket is anonymously readable"}},"type":"object","required":["name","description","created_at","owner_id","public"],"title":"BucketOut","description":"Schema for answering a request with a bucket."},"BucketPermissionIn":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"permission":{"anyOf":[{"$ref":"#/components/schemas/Permission"},{"type":"string","enum":["READ","WRITE","READWRITE"]}],"title":"Permission","description":"Permission","default":"READ","examples":["READ"]},"uid":{"type":"string","format":"uuid","title":"Uid","description":"UID of the grantee","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"bucket_name":{"type":"string","title":"Bucket Name","description":"Name of Bucket","examples":["test-bucket"]}},"type":"object","required":["uid","bucket_name"],"title":"BucketPermissionIn"},"BucketPermissionOut":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"permission":{"anyOf":[{"$ref":"#/components/schemas/Permission"},{"type":"string","enum":["READ","WRITE","READWRITE"]}],"title":"Permission","description":"Permission","default":"READ","examples":["READ"]},"uid":{"type":"string","title":"Uid","description":"UID of the grantee","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"bucket_name":{"type":"string","title":"Bucket Name","description":"Name of Bucket","examples":["test-bucket"]}},"type":"object","required":["uid","bucket_name"],"title":"BucketPermissionOut","description":"Schema for the bucket permissions."},"BucketPermissionParameters":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"permission":{"anyOf":[{"$ref":"#/components/schemas/Permission"},{"type":"string","enum":["READ","WRITE","READWRITE"]}],"title":"Permission","description":"Permission","default":"READ","examples":["READ"]}},"type":"object","title":"BucketPermissionParameters","description":"Schema for the parameters of a bucket permission."},"BucketSizeLimits":{"properties":{"size_limit":{"anyOf":[{"type":"integer","exclusiveMaximum":4294967296.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Size Limit","description":"Size limit of the bucket in KiB","examples":[10240]},"object_limit":{"anyOf":[{"type":"integer","exclusiveMaximum":4294967296.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Object Limit","description":"Number of objects limit of the bucket","examples":[10000]}},"type":"object","title":"BucketSizeLimits","description":"Schema to represent bucket limits."},"BucketType":{"type":"string","enum":["OWN","ALL","PERMISSION"],"title":"BucketType","description":"Enumeration for the type of buckets to fetch from the DB\n\nOWN: Only fetch buckets that the user owns\nPERMISSION: Only fetch foreign buckets that the user has access to\nALL: Fetch all buckets that the user has access to"},"DevWorkflowExecutionIn":{"properties":{"parameters":{"type":"object","title":"Parameters","description":"Parameters for this workflow"},"logs_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where to save logs and reports. If None, nothing will be uploaded.","examples":["s3://example-bucket/logs"]},"provenance_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where to save provenance information. If None, nothing will be uploaded.","examples":["s3://example-bucket/provenance"]},"debug_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where to save debug information from Nextflow. If None, nothing will be uploaded.","examples":["s3://example-bucket/debug"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"repository_url":{"type":"string","minLength":1,"format":"uri","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]},"mode":{"anyOf":[{"$ref":"#/components/schemas/WorkflowModeIn"},{"type":"null"}],"description":"Mode of the workflow with an alternative entrypoint"},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow execution requires"}},"type":"object","required":["parameters","git_commit_hash","repository_url","nextflow_version"],"title":"DevWorkflowExecutionIn"},"DocumentationEnum":{"type":"string","enum":["usage.md","input.md","output.md","changelog.md","parameter_schema.json","clowm_info.json"],"title":"DocumentationEnum"},"ErrorDetail":{"properties":{"detail":{"type":"string","title":"Detail","description":"Detail about the occurred error"}},"type":"object","required":["detail"],"title":"ErrorDetail","description":"Schema for a error due to a rejected request."},"FileTree":{"properties":{"type":{"type":"string","enum":["file","directory","link"],"title":"Type"},"name":{"type":"string","title":"Name"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target"},"contents":{"anyOf":[{"items":{"$ref":"#/components/schemas/FileTree"},"type":"array"},{"type":"null"}],"title":"Contents"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["type","name","size"],"title":"FileTree"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IconUpdateOut":{"properties":{"icon_url":{"type":"string","title":"Icon Url","description":"URL to the uploaded icon","examples":["https://s3-dev.nfdi.bi.denbi.de/clowm-data/icon/980a9446c7f2460c83187cbb876f8424.png"]}},"type":"object","required":["icon_url"],"title":"IconUpdateOut"},"NextflowVersion":{"type":"string","enum":["22.10.0","22.10.1","22.10.2","22.10.3","22.10.4","22.10.5","22.10.6","22.10.7","22.10.8","23.04.0","23.04.1","23.04.2","23.04.3","23.04.4","23.04.5","23.10.0","23.10.1","23.10.2","23.10.3","23.10.4","24.04.1","24.04.2","24.04.3","24.04.4"],"title":"NextflowVersion"},"OIDCProvider":{"type":"string","enum":["lifescience"],"const":"lifescience","title":"OIDCProvider"},"OwnershipTransferRequestIn":{"properties":{"new_owner_uid":{"type":"string","format":"uuid","title":"New Owner Uid","description":"The new owner that get the request","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"comment":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Comment","description":"An optional comment for the transfer request","examples":["This is an example comment"]}},"type":"object","required":["new_owner_uid"],"title":"OwnershipTransferRequestIn"},"OwnershipTransferRequestOut":{"properties":{"new_owner_uid":{"type":"string","title":"New Owner Uid","description":"The new owner that get the request","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"comment":{"type":"string","title":"Comment","description":"An optional comment for the transfer request","default":"","examples":["This is an example comment"]},"created_at":{"type":"integer","title":"Created At","description":"Time when the ownership transfer was requested as UNIX timestamp","examples":[1640991600]},"current_owner_uid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Owner Uid","description":"The current uid of the current owner if he exists","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"target_id":{"type":"string","title":"Target Id","description":"Id of the target that gets its ownership transferred"},"target_name":{"type":"string","title":"Target Name","description":"Name of the target","examples":["example-bucket","Example Workflow","Example Resource"]},"target_description":{"type":"string","title":"Target Description","description":"Description of then target","examples":["Some long description of a target"]},"target_type":{"$ref":"#/components/schemas/OwnershipTypeEnum","description":"Target type of the ownership transfer","examples":["bucket"]}},"type":"object","required":["new_owner_uid","created_at","target_id","target_name","target_description","target_type"],"title":"OwnershipTransferRequestOut"},"OwnershipTypeEnum":{"type":"string","enum":["bucket","workflow","resource"],"title":"OwnershipTypeEnum"},"ParameterExtension":{"properties":{"mapping":{"additionalProperties":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"}]},"type":"object"},"type":"object","title":"Mapping","description":"The inner dictionary contains the display name as key and the parameter value as value. The outer dictionary has the parameter name as key.","examples":[{"some-complex-parameter":{"Option 1":"/some/path","Option 2":"/some/other/path"}}]},"defaults":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}]},"type":"object","title":"Defaults","description":"Dictionary with parameter name as key and default value as value","examples":[{"parameter1":"somevalue","parameter2":12}]}},"type":"object","title":"ParameterExtension"},"Permission":{"type":"string","enum":["READ","WRITE","READWRITE"],"title":"Permission","description":"Enumeration for the possible permission on a bucket."},"PermissionStatus":{"type":"string","enum":["ACTIVE","INACTIVE"],"title":"PermissionStatus","description":"Status of a bucket permission. Can be either `ACTIVE` or `INACTIVE`. A permission can only get `INACTIVE` if the\npermission itself has a time limit and the current time is not in the timespan."},"ResourceIn":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]},"name":{"type":"string","maxLength":32,"minLength":3,"title":"Name","description":"Short Name for the resource","examples":["blastdb"]},"description":{"type":"string","maxLength":264,"minLength":16,"title":"Description","description":"Short description for this resource","examples":["This is a short description for a resource"]},"source":{"type":"string","maxLength":264,"minLength":8,"title":"Source","description":"A link or similar where the resource originates from","examples":["https://example.com/db"]},"private":{"type":"boolean","title":"Private","description":"Flag if this resource should be default visible in the UI","default":true}},"type":"object","required":["release","name","description","source"],"title":"ResourceIn"},"ResourceOut":{"properties":{"name":{"type":"string","maxLength":32,"minLength":3,"title":"Name","description":"Short Name for the resource","examples":["blastdb"]},"description":{"type":"string","maxLength":264,"minLength":16,"title":"Description","description":"Short description for this resource","examples":["This is a short description for a resource"]},"source":{"type":"string","maxLength":264,"minLength":8,"title":"Source","description":"A link or similar where the resource originates from","examples":["https://example.com/db"]},"private":{"type":"boolean","title":"Private","description":"Flag if this resource should be default visible in the UI","default":true},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"maintainer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Maintainer Id","description":"ID of the maintainer","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"versions":{"items":{"$ref":"#/components/schemas/ResourceVersionOut"},"type":"array","title":"Versions","description":"Versions of the resource"}},"type":"object","required":["name","description","source","resource_id","maintainer_id","versions"],"title":"ResourceOut"},"ResourceVersionIn":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]}},"type":"object","required":["release"],"title":"ResourceVersionIn"},"ResourceVersionOut":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]},"status":{"$ref":"#/components/schemas/ResourceVersionStatus","description":"Status of the resource version"},"resource_version_id":{"type":"string","title":"Resource Version Id","description":"ID of the resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"]},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"created_at":{"type":"integer","title":"Created At","description":"Timestamp when the version was created as UNIX timestamp","examples":[1672527600]},"compressed_size":{"type":"integer","title":"Compressed Size","description":"Size of the compressed resource in bytes","examples":[42097156608]},"cluster_path":{"type":"string","title":"Cluster Path","description":"Path to the resource on the cluster if the resource is synchronized","readOnly":true,"examples":["/vol/resources/CLDB-0e240ccd/fb4cee121e9149f3905f808845c7c1f4","/vol/resources/CLDB-0e240ccd/latest"]},"s3_path":{"type":"string","title":"S3 Path","description":"Path to the resource in the S3 Bucket. Not publicly available.","readOnly":true,"examples":["s3://clowm-data/resources/CLDB-0e240ccd/fb4cee121e9149f3905f808845c7c1f4/resource.tar.gz"]}},"type":"object","required":["release","status","resource_version_id","resource_id","created_at","compressed_size","cluster_path","s3_path"],"title":"ResourceVersionOut"},"ResourceVersionStatus":{"type":"string","enum":["RESOURCE_REQUESTED","WAIT_FOR_REVIEW","DENIED","APPROVED","SYNC_REQUESTED","SYNCHRONIZING","SYNC_ERROR","SYNCHRONIZED","SETTING_LATEST","LATEST","CLUSTER_DELETING","CLUSTER_DELETE_ERROR","S3_DELETING","S3_DELETE_ERROR","S3_DELETED"],"title":"ResourceVersionStatus","description":"Enumeration for the possible status of a resource version."},"RoleEnum":{"type":"string","enum":["administrator","user","reviewer","developer","db_maintainer"],"title":"RoleEnum"},"S3Key":{"properties":{"uid":{"type":"string","title":"Uid","description":"UID of the user of that access key","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"access_key":{"type":"string","title":"Access Key","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"]},"secret_key":{"type":"string","title":"Secret Key","description":"Secret of the S3 access key","examples":["2F5uNTI1qvt4oAroXV0wWct8rWclL2QvFXKqSqjS"]}},"type":"object","required":["uid","access_key","secret_key"],"title":"S3Key","description":"Schema for a S3 key associated with a user."},"ScopeEnum":{"type":"string","enum":["read","write"],"title":"ScopeEnum"},"UserIn":{"properties":{"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","examples":[["user"]]},"email":{"type":"string","format":"email","title":"Email","description":"Email of the user","examples":["user@example.org"]}},"type":"object","required":["display_name","email"],"title":"UserIn"},"UserOut":{"properties":{"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"uid":{"type":"string","title":"Uid","description":"ID of the user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]}},"type":"object","required":["display_name","uid"],"title":"UserOut","description":"Schema for a user."},"UserOutExtended":{"properties":{"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","description":"Roles of the user","examples":[["user"]]},"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"uid":{"type":"string","title":"Uid","description":"ID of the user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"lifescience_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lifescience Id","description":"Lifesicence ID of the user","examples":["18b59678f16d2c59306c0aedb1dc7ddcfe162456'"]},"invitation_token_created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Invitation Token Created At","description":"Timestamp when the invitation token was created as UNIX timestamp"},"gravatar_url":{"type":"string","title":"Gravatar Url","description":"URL to the gravatar avatar based on the users email"}},"type":"object","required":["roles","display_name","uid","gravatar_url"],"title":"UserOutExtended"},"UserRequestAnswer":{"properties":{"deny":{"type":"boolean","title":"Deny","description":"Flag to indicate if the request was denied.","default":false},"reason":{"anyOf":[{"type":"string","maxLength":512,"minLength":16},{"type":"null"}],"title":"Reason","description":"Reason why the request was denied or approved. Required if request is denied."}},"type":"object","title":"UserRequestAnswer"},"UserRoles":{"properties":{"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","description":"Roles of the user","examples":[["user"]]}},"type":"object","required":["roles"],"title":"UserRoles"},"UserSynchronizationRequestIn":{"properties":{"reason":{"type":"string","maxLength":512,"minLength":16,"title":"Reason","description":"Reason why the request was requested.","examples":["This version is required to reproduce a execution with Workflow XY@2.0."]}},"type":"object","required":["reason"],"title":"UserSynchronizationRequestIn"},"UserSynchronizationRequestOut":{"properties":{"reason":{"type":"string","maxLength":512,"minLength":16,"title":"Reason","description":"Reason why the request was requested.","examples":["This version is required to reproduce a execution with Workflow XY@2.0."]},"resource_version_id":{"type":"string","title":"Resource Version Id","description":"ID of the resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"]},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"requester_id":{"type":"string","title":"Requester Id","description":"ID of the user that requested this resource synchronization","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]}},"type":"object","required":["reason","resource_version_id","resource_id","requester_id"],"title":"UserSynchronizationRequestOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WorkflowCredentialsIn":{"properties":{"token":{"type":"string","maxLength":128,"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]}},"type":"object","required":["token"],"title":"WorkflowCredentialsIn"},"WorkflowCredentialsOut":{"properties":{"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]}},"type":"object","title":"WorkflowCredentialsOut"},"WorkflowExecutionIn":{"properties":{"parameters":{"type":"object","title":"Parameters","description":"Parameters for this workflow"},"logs_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where to save logs and reports. If None, nothing will be uploaded.","examples":["s3://example-bucket/logs"]},"provenance_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where to save provenance information. If None, nothing will be uploaded.","examples":["s3://example-bucket/provenance"]},"debug_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where to save debug information from Nextflow. If None, nothing will be uploaded.","examples":["s3://example-bucket/debug"]},"workflow_version_id":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Workflow Version Id","description":"Workflow version git commit hash","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"notes":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Notes","description":"Optional notes for this workflow execution","examples":["Some workflow execution specific notes"]},"mode_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mode Id","description":"ID of the workflow mode this workflow execution runs in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]}},"type":"object","required":["parameters","workflow_version_id"],"title":"WorkflowExecutionIn"},"WorkflowExecutionOut":{"properties":{"workflow_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version Id","description":"Workflow version git commit hash","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"notes":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Notes","description":"Optional notes for this workflow execution","examples":["Some workflow execution specific notes"]},"mode_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode Id","description":"ID of the workflow mode this workflow execution runs in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"execution_id":{"type":"string","title":"Execution Id","description":"ID of the workflow execution","examples":["591b6a6e-a1f0-420d-8a20-a7a60704f695"]},"executor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Executor Id","description":"UID of user who started the workflow","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"start_time":{"type":"integer","title":"Start Time","description":"Start time of the workflow execution as UNIX timestamp","examples":[1672527600]},"end_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Time","description":"End time of the workflow execution as UNIX timestamp","examples":[1672527600]},"status":{"$ref":"#/components/schemas/WorkflowExecutionStatus","description":"Status of the workflow execution","examples":["RUNNING"]},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Id of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"logs_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where logs and reports are saved.","examples":["s3://example-bucket/logs/run-591b6a6ea1f0420d8a20a7a60704f695"]},"provenance_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where provenance information is saved.","examples":["s3://example-bucket/provenance/run-591b6a6ea1f0420d8a20a7a60704f695"]},"debug_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where debug information from Nextflow is saved.","examples":["s3://example-bucket/debug/run-591b6a6ea1f0420d8a20a7a60704f695"]},"cpu_time":{"type":"string","format":"duration","title":"Cpu Time","description":"The consumed cpu time in ISO 8601 format","examples":["P4DT12H30M5S"]}},"type":"object","required":["execution_id","start_time","status","cpu_time"],"title":"WorkflowExecutionOut"},"WorkflowExecutionStatus":{"type":"string","enum":["PENDING","SCHEDULED","RUNNING","CANCELED","SUCCESS","ERROR"],"title":"WorkflowExecutionStatus","description":"Enumeration for the status on a workflow execution."},"WorkflowIn":{"properties":{"name":{"type":"string","maxLength":64,"minLength":3,"title":"Name","description":"Short descriptive name of the workflow","examples":["RNA ReadMapper"]},"short_description":{"type":"string","maxLength":256,"minLength":64,"title":"Short Description","description":"Short description of the workflow","examples":["This should be a very good example of a short and descriptive description"]},"repository_url":{"type":"string","minLength":1,"format":"uri","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]+$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"initial_version":{"type":"string","maxLength":10,"minLength":5,"title":"Initial Version","description":"Initial version of the Workflow. Should follow semantic versioning","default":"v1.0.0","examples":["v1.0.0"]},"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]},"modes":{"items":{"$ref":"#/components/schemas/WorkflowModeIn"},"type":"array","maxItems":10,"title":"Modes","description":"List of modes with alternative entrypoint the new workflow has","default":[]},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow version requires"}},"type":"object","required":["name","short_description","repository_url","git_commit_hash","nextflow_version"],"title":"WorkflowIn"},"WorkflowModeIn":{"properties":{"schema_path":{"type":"string","title":"Schema Path","description":"Path to the alternative parameter schema","examples":["modes/schema1.json"]},"entrypoint":{"type":"string","title":"Entrypoint","description":"Name of the process the workflow should start with. Argument to the parameter '-entry'","examples":["example"]},"name":{"type":"string","title":"Name","description":"Name of the workflow mode","examples":["Example Name"]}},"type":"object","required":["schema_path","entrypoint","name"],"title":"WorkflowModeIn"},"WorkflowModeOut":{"properties":{"schema_path":{"type":"string","title":"Schema Path","description":"Path to the alternative parameter schema","examples":["modes/schema1.json"]},"entrypoint":{"type":"string","title":"Entrypoint","description":"Name of the process the workflow should start with. Argument to the parameter '-entry'","examples":["example"]},"name":{"type":"string","title":"Name","description":"Name of the workflow mode","examples":["Example Name"]},"mode_id":{"type":"string","title":"Mode Id","description":"ID of the workflow mode","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]}},"type":"object","required":["schema_path","entrypoint","name","mode_id"],"title":"WorkflowModeOut"},"WorkflowOut":{"properties":{"name":{"type":"string","maxLength":64,"minLength":3,"title":"Name","description":"Short descriptive name of the workflow","examples":["RNA ReadMapper"]},"short_description":{"type":"string","maxLength":256,"minLength":64,"title":"Short Description","description":"Short description of the workflow","examples":["This should be a very good example of a short and descriptive description"]},"repository_url":{"type":"string","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"versions":{"items":{"$ref":"#/components/schemas/WorkflowVersion"},"type":"array","title":"Versions","description":"Versions of the workflow"},"developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id","description":"ID of developer of the workflow","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"private":{"type":"boolean","title":"Private","description":"Flag if the workflow is hosted in a private git repository","default":false}},"type":"object","required":["name","short_description","repository_url","workflow_id","versions"],"title":"WorkflowOut"},"WorkflowStatistic":{"properties":{"day":{"type":"string","format":"date","title":"Day","description":"Day of the datapoint","examples":["2023-01-01"]},"count":{"type":"integer","title":"Count","description":"Number of started workflows on that day","examples":[1]}},"type":"object","required":["day","count"],"title":"WorkflowStatistic"},"WorkflowUpdate":{"properties":{"version":{"type":"string","maxLength":10,"minLength":5,"title":"Version","description":"Version of the Workflow. Should follow semantic versioning","examples":["v1.1.0"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"append_modes":{"items":{"$ref":"#/components/schemas/WorkflowModeIn"},"type":"array","title":"Append Modes","description":"Add modes to the new workflow version","default":[]},"delete_modes":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Delete Modes","description":"Delete modes for the new workflow version.","default":[],"examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this new workflow version requires."}},"type":"object","required":["version","git_commit_hash","nextflow_version"],"title":"WorkflowUpdate"},"WorkflowVersion":{"properties":{"status":{"$ref":"#/components/schemas/WorkflowVersionStatus","description":"Status of the workflow version","examples":["PUBLISHED"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the corresponding workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"version":{"type":"string","maxLength":10,"minLength":5,"title":"Version","description":"Version of the Workflow. Should follow semantic versioning","examples":["v1.0.0"]},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","description":"URL to the uploaded icon","examples":["https://s3-dev.nfdi.bi.denbi.de/clowm-data/icon/980a9446c7f2460c83187cbb876f8424.png"]},"workflow_version_id":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Workflow Version Id","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"created_at":{"type":"integer","title":"Created At","description":"Timestamp when the version was created as UNIX timestamp","examples":[1672527600]},"modes":{"items":{"type":"string"},"type":"array","title":"Modes","description":"Optional modes his workflow version has","default":[],"examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"parameter_extension":{"anyOf":[{"$ref":"#/components/schemas/ParameterExtension"},{"type":"null"}],"description":"Parameter extension specific for this CloWM instance"},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow version requires"}},"type":"object","required":["status","workflow_id","version","workflow_version_id","created_at","nextflow_version"],"title":"WorkflowVersion"},"WorkflowVersionStatus":{"type":"string","enum":["CREATED","DENIED","PUBLISHED","DEPRECATED"],"title":"WorkflowVersionStatus","description":"Enumeration for the possible status of a workflow version."},"WorkflowVersionStatusSchema":{"properties":{"status":{"$ref":"#/components/schemas/WorkflowVersionStatus","description":"Status of the workflow version","examples":["PUBLISHED"]}},"type":"object","required":["status"],"title":"WorkflowVersionStatusSchema"}},"securitySchemes":{"Session Token":{"type":"apiKey","description":"The JWT in this cookie is used by the website and should not be used when communicating directly with the API.","in":"cookie","name":"clowm-jwt"},"API Token":{"type":"apiKey","description":"The API token in the header is used to authenticate a user. Preferred when communication with the API directly.","in":"header","name":"X-CLOWM-TOKEN"}}}} \ No newline at end of file +{"openapi":"3.1.0","info":{"title":"CloWM","description":"\nThis is the API documentation of the CloWM Service.\n\nLook in the [Git repository](https://gitlab.ub.uni-bielefeld.de/cmg/clowm/clowm-backend/-/blob/main/RBAC.md)\nto see which role has which permission.\n","contact":{"name":"Daniel Goebel","url":"https://ekvv.uni-bielefeld.de/pers_publ/publ/PersonDetail.jsp?personId=223066601","smtp":"dgoebel@techfak.uni-bielefeld.de"},"license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0"},"version":"1.0.0"},"servers":[{"url":"/api"}],"paths":{"/auth/login":{"get":{"tags":["Auth"],"summary":"Kickstart the login flow","description":"Redirect route to OIDC provider to kickstart the login process.","operationId":"Auth-login","parameters":[{"name":"invitation_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":43,"maxLength":43},{"type":"null"}],"description":"Unique token to validate an invitation","title":"Invitation Token"},"description":"Unique token to validate an invitation"},{"name":"provider","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OIDCProvider","description":"The OIDC provider to use for login","default":"lifescience"},"description":"The OIDC provider to use for login"},{"name":"next","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"Will be appended to redirect response in the callback route as URL query parameter `next`","title":"Next"},"description":"Will be appended to redirect response in the callback route as URL query parameter `next`"}],"responses":{"302":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/callback/{provider}":{"get":{"tags":["Auth"],"summary":"LifeScience Login Callback","description":"Callback for the Life Science Identity Provider.\n\nVisit the route login route to start the login process.\n\nIf the user is already known to the system, then a JWT token will be created and sent via the 'set-cookie' header.\nThe key for this Cookie is 'bearer'.\n\nIf the user is new, he will be created and then a JWT token is issued.\n\nThis JWT has to be sent to all authorized endpoints via the HTTPBearer scheme.","operationId":"Auth-login_callback","parameters":[{"name":"provider","in":"path","required":true,"schema":{"$ref":"#/components/schemas/OIDCProvider"}}],"responses":{"302":{"description":"Successful Response","headers":{"Set-Cookie":{"description":"JWT for accessing the API","schema":{"type":"string","example":"bearer=fake-jwt-cookie; Domain=localhost; Max-Age=691200; Path=/; SameSite=strict; Secure"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/logout":{"get":{"tags":["Auth"],"summary":"Logout","description":"Logout the user from the system by deleting the bearer cookie.","operationId":"Auth-logout","responses":{"302":{"description":"Successful Response","headers":{"Set-Cookie":{"description":"JWT for accessing the API","schema":{"type":"string","example":"bearer=; Domain=localhost; Max-Age=0; Path=/; SameSite=strict; Secure"}}}}}}},"/tokens":{"get":{"tags":["APIToken"],"summary":"List API token","description":"List meta information about all API token.\n\nPermissions `api_token:list_all` required. See parameter `uid` for exception.","operationId":"APIToken-list_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of the user to filter for. Permission `api_token:list` required if current users is the target.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of the user to filter for. Permission `api_token:list` required if current users is the target."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiTokenOut"},"title":"Response Apitoken-List Token"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["APIToken"],"summary":"Create new API token","description":"Create a new API token for the current user.\n\nPermission `api_token:create` required.","operationId":"APIToken-create_token","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenIn","description":"Meta-data for Api token to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenPrivateOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokens/{tid}":{"get":{"tags":["APIToken"],"summary":"Get API token","description":"Get an API token by id.\n\nPermission `api_token:read` required if the current user is the owner of the API token,\notherwise `api_token:read_any` required.","operationId":"APIToken-get_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of an API token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"],"title":"Tid"},"description":"ID of an API token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["APIToken"],"summary":"Delete API token","description":"Delete an API token by id.\n\nPermission `api_token:delete` required if the current user is the owner of the API token,\notherwise `api_token:delete_any` required.","operationId":"APIToken-delete_token","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of an API token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"],"title":"Tid"},"description":"ID of an API token"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users":{"post":{"tags":["User"],"summary":"Create User","description":"Create a new user in the system and notify him.\n\nPermission `user:create` required.","operationId":"User-create_user","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIn","description":"Meta-data for user to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["User"],"summary":"List users and search by their name","description":"List all users in the system..\n\nPermission `user:list` required.","operationId":"User-list_users","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":3,"maxLength":30},{"type":"null"}],"description":"Filter users by a substring in their name.","examples":["Bilbo"],"title":"Name Substring"},"description":"Filter users by a substring in their name."},{"name":"filter_roles","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/RoleEnum"}},{"type":"null"}],"description":"Filter users by their role. If multiple are selected, they are concatenating by an OR Expression.","title":"Filter Roles"},"description":"Filter users by their role. If multiple are selected, they are concatenating by an OR Expression."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserOutExtended"},"title":"Response User-List Users"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/search":{"get":{"tags":["User"],"summary":"Search Users","description":"Search for users in the system by their name.\n\nPermission `user: search` required.","operationId":"User-search_users","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":30,"description":"Filter users by a substring in their name.","title":"Name Substring"},"description":"Filter users by a substring in their name."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserOut"},"title":"Response User-Search Users"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/me":{"get":{"tags":["User"],"summary":"Get the logged in user","description":"Return the user associated with the used JWT.\n\nPermission `user:read` required.","operationId":"User-get_logged_in_user","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/users/{uid}":{"get":{"tags":["User"],"summary":"Get a user by its uid","description":"Return the user with the specific uid.\n\nPermission `user:read` required.","operationId":"User-get_user","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/roles":{"put":{"tags":["User"],"summary":"Update user roles","description":"Update the roles of a user.\n\nPermission `user:update` required.","operationId":"User-update_roles","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRoles","description":"The new roles of the user"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/invitation":{"patch":{"tags":["User"],"summary":"Resend Invitation","description":"Resend the invitation link for an user that has an open invitation.\n\nPermission `user:create` required.","operationId":"User-resend_invitation","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutExtended"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/keys":{"get":{"tags":["S3Key"],"summary":"Get the S3 Access keys from a user","description":"Get all the S3 Access keys for a specific user.\n\nPermission `s3_key:list` required.","operationId":"S3Key-get_user_keys","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/S3Key"},"title":"Response S3Key-Get User Keys"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["S3Key"],"summary":"Create a Access key for a user","description":"Create a S3 Access key for a specific user.\n\nPermission `s3_key:create` required.","operationId":"S3Key-create_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Key"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{uid}/keys/{access_id}":{"get":{"tags":["S3Key"],"summary":"Get a specific S3 Access key from a user","description":"Get a specific S3 Access Key for a specific user.\n\nPermission `s3_key:read` required.","operationId":"S3Key-get_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"access_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"],"title":"Access Id"},"description":"ID of the S3 access key"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Key"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["S3Key"],"summary":"Delete a specific S3 Access key from a user","description":"Delete a specific S3 Access key for a specific user.\n\nPermission `s3_key:delete` required if the current user is the target, otherwise `s3_key:delete_any` required.","operationId":"S3Key-delete_user_key","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"access_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"],"title":"Access Id"},"description":"ID of the S3 access key"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets":{"get":{"tags":["Bucket"],"summary":"List buckets","description":"List all the buckets in the system or of the desired user where the user has permissions for.\n\nPermission `bucket:list_all` required. See parameter `owner_id` for exception.","operationId":"Bucket-list_buckets","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of the user for whom to fetch the buckets for. Permission `bucket:read_any` required if current user is not the target.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Owner Id"},"description":"UID of the user for whom to fetch the buckets for. Permission `bucket:read_any` required if current user is not the target."},{"name":"bucket_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/BucketType","description":"Type of the bucket to get. Ignored when `user` parameter not set","default":"ALL"},"description":"Type of the bucket to get. Ignored when `user` parameter not set"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketOut"},"title":"Response Bucket-List Buckets"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Bucket"],"summary":"Create a bucket for the current user","description":"Create a bucket for the current user.\n\nThe name of the bucket has some constraints.\nFor more information see the\n[Ceph documentation](https://docs.ceph.com/en/quincy/radosgw/s3/bucketops/#constraints)\n\nPermission `bucket:create` required.","operationId":"Bucket-create_bucket","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketIn","description":"Meta-data for bucket to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/ownership_transfer_request":{"get":{"tags":["Bucket"],"summary":"List bucket OTRs","description":"Get the ownership transfer requests for buckets.\n\nPermission `bucket:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `bucket:list_all`","operationId":"Bucket-list_bucket_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Bucket-List Bucket Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}":{"get":{"tags":["Bucket"],"summary":"Get a bucket by its name","description":"Get a bucket by its name if the current user has READ permissions for the bucket.\n\nPermission `bucket:read` required if the current user is the owner of the bucket,\notherwise `bucket:read_any` required.","operationId":"Bucket-get_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Bucket"],"summary":"Delete a bucket","description":"Delete a bucket by its name. Only the owner of the bucket can delete the bucket.\n\nPermission `bucket:delete` required if the current user is the owner of the bucket,\notherwise `bucket:delete_any` required.","operationId":"Bucket-delete_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"},{"name":"force_delete","in":"query","required":false,"schema":{"type":"boolean","description":"Delete even non-empty bucket","default":false,"title":"Force Delete"},"description":"Delete even non-empty bucket"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/ownership_transfer_request":{"get":{"tags":["Bucket"],"summary":"Get a bucket OTR","description":"Get a specific bucket ownership transfer request.\n\nPermission `bucket:read` required if the current user is the current or new owner of the bucket,\notherwise `bucket:read_any` required.","operationId":"Bucket-get_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Bucket"],"summary":"Create a bucket OTR","description":"Create a ownership transfer request for a specific bucket.\n\nPermission `bucket:update` required if the current user is the current owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-create_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn","description":"Meta-data for the bucket OTR to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Bucket"],"summary":"Accept a bucket OTR","description":"Accept an ownership transfer request for a specific workflow.\n\nPermission `bucket:update` required if the current user is the new owner of the workflow,\notherwise `bucket:update_any` required.","operationId":"Bucket-accept_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Bucket"],"summary":"Delete a bucket OTR","description":"Delete/Reject a bucket ownership transfer request.\n\nPermission `bucket:update` required if the current user is the current or new owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-delete_bucket_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/public":{"patch":{"tags":["Bucket"],"summary":"Update public status","description":"Update the buckets public state.\n\nPermission `bucket:update` required if the current user is the owner of the bucket,\notherwise `bucket:update_any` required.","operationId":"Bucket-update_bucket_public_state","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Bucket-update_bucket_public_state"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/buckets/{bucket_name}/limits":{"patch":{"tags":["Bucket"],"summary":"Update bucket limits","description":"Update the buckets size limits.\n\nPermission `bucket:update_any` required.","operationId":"Bucket-update_bucket_limits","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketSizeLimits","description":"New size limits for bucket"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions.","description":"List all the bucket permissions in the system.\n\nPermission `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"permission_scopes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["read","write"],"type":"string"}},{"type":"null"}],"description":"Scopes of Bucket Permissions to fetch","title":"Permission Scopes"},"description":"Scopes of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PermissionStatus"},{"type":"null"}],"description":"Status of Bucket Permissions to fetch","title":"Permission Status"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["BucketPermission"],"summary":"Create a permission.","description":"Create a permission for a bucket and user.\n\nPermission `bucket_permission:create` required.","operationId":"BucketPermission-create_permission","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionIn","description":"Permission to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/user/{uid}":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions for a user.","description":"List all the bucket permissions for the given user.\n\nPermission `bucket_permission:list` required if current user is the target the bucket permission,\notherwise `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions_per_user","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"},{"name":"permission_scopes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["read","write"],"type":"string"}},{"type":"null"}],"description":"Scopes of Bucket Permissions to fetch","title":"Permission Scopes"},"description":"Scopes of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PermissionStatus"},{"type":"null"}],"description":"Status of Bucket Permissions to fetch","title":"Permission Status"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions Per User"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/bucket/{bucket_name}":{"get":{"tags":["BucketPermission"],"summary":"Get all permissions for a bucket.","description":"List all the bucket permissions for the given bucket.\n\nPermission `bucket_permission:list` required if current user is owner of the bucket,\notherwise `bucket_permission:list_all` required.","operationId":"BucketPermission-list_permissions_per_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"},{"name":"permission_scopes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["read","write"],"type":"string"}},{"type":"null"}],"description":"Scopes of Bucket Permissions to fetch","title":"Permission Scopes"},"description":"Scopes of Bucket Permissions to fetch"},{"name":"permission_status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PermissionStatus"},{"type":"null"}],"description":"Status of Bucket Permissions to fetch","title":"Permission Status"},"description":"Status of Bucket Permissions to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BucketPermissionOut"},"title":"Response Bucketpermission-List Permissions Per Bucket"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/permissions/bucket/{bucket_name}/user/{uid}":{"get":{"tags":["BucketPermission"],"summary":"Get permission for bucket and user combination.","description":"Get the bucket permissions for the specific combination of bucket and user.\n\nPermission `bucket_permission:read` required if current user is the target or owner of the bucket permission,\notherwise `bucket_permission:read_any` required.","operationId":"BucketPermission-get_permission_for_bucket","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["BucketPermission"],"summary":"Update a bucket permission","description":"Update a permission for a bucket and user.\n\nPermission `bucket_permission:update` required.","operationId":"BucketPermission-update_permission","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionParameters","description":"Permission to create"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPermissionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["BucketPermission"],"summary":"Delete a bucket permission","description":"Delete the bucket permissions for the specific combination of bucket and user.\n\nPermission `bucket_permission:delete` required if current user is the target or owner of the bucket permission,\notherwise `bucket_permission:delete_any` required.","operationId":"BucketPermission-delete_permission","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"bucket_name","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":63,"description":"Name of a bucket","examples":["test-bucket"],"title":"Bucket Name"},"description":"Name of a bucket"},{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UID of a user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Uid"},"description":"UID of a user"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows":{"post":{"tags":["Workflow"],"summary":"Create a new workflow","description":"Create a new workflow.\n\nFor private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.\n\nFor private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.\n\nPermission `workflow:create` required.","operationId":"Workflow-create_workflow","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowIn","description":"Meta-date for the workflow to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Workflow"],"summary":"List workflows","description":"List all workflows.\n\nPermission `workflow:list` required.","operationId":"Workflow-list_workflows","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"name_substring","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":3,"maxLength":30},{"type":"null"}],"description":"Filter workflows by a substring in their name.","examples":["blast"],"title":"Name Substring"},"description":"Filter workflows by a substring in their name."},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"}},{"type":"null"}],"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`.","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`."},{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Developer Id"},"description":"Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowOut"},"title":"Response Workflow-List Workflows"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/ownership_transfer_request":{"get":{"tags":["Workflow"],"summary":"List workflow OTRs","description":"Get the ownership transfer requests for workflows.\n\nPermission `workflow:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `workflow:list_all`","operationId":"Workflow-list_workflow_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Workflow-List Workflow Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/developer_statistics":{"get":{"tags":["Workflow"],"summary":"Get anonymized workflow execution","description":"Get the workflow executions with meta information and anonymized user IDs.\n\nPermission `workflow:read` required if the `developer_id` is the same as the uid of the current user,\nother `workflow:read_any`.","operationId":"Workflow-get_developer_workflow_statistics","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter by the developer of the workflows","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Developer Id"},"description":"Filter by the developer of the workflows"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"description":"Filter by workflow IDs","title":"Workflow Id"},"description":"Filter by workflow IDs"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter by workflow executions after this date","title":"Start"},"description":"Filter by workflow executions after this date"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Filter by workflow executions before this date","title":"End"},"description":"Filter by workflow executions before this date"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AnonymizedWorkflowExecution"},"title":"Response Workflow-Get Developer Workflow Statistics"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}":{"get":{"tags":["Workflow"],"summary":"Get a workflow","description":"Get a specific workflow.\n\nPermission `workflow:read` required.","operationId":"Workflow-get_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"}},{"type":"null"}],"description":"Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow"],"summary":"Delete a workflow","description":"Delete a workflow.\n\nPermission `workflow:delete` required if the `developer_id` is the same as the uid of the current user,\nother `workflow:delete_any`.","operationId":"Workflow-delete_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/ownership_transfer_request":{"get":{"tags":["Workflow"],"summary":"Get a workflow OTR","description":"Get a specific workflow ownership transfer request.\n\nPermission `workflow:read` required if current user is the current or new owner of the workflow,\notherwise `workflow:read_any` required.","operationId":"Workflow-get_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Workflow"],"summary":"Create a workflow OTR","description":"Create a ownership transfer request for a specific workflow.\n\nPermission `workflow:update` required if the current user is the current owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-create_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn","description":"Meta-data for workflow OTR to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Workflow"],"summary":"Accept a workflow OTR","description":"Accept an ownership transfer request for a specific workflow.\n\nPermission `workflow:update` required if the current user is the new owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-accept_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow"],"summary":"Delete a workflow OTR","description":"Delete/Reject a workflow ownership transfer request.\n\nPermission `workflow:update` required if current user is the current or new owner of the workflow,\notherwise `workflow:update_any` required.","operationId":"Workflow-delete_workflow_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/statistics":{"get":{"tags":["Workflow"],"summary":"Get statistics for a workflow","description":"Get the number of started workflow per day.\n\nPermission `workflow:read` required.","operationId":"Workflow-get_workflow_statistics","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowStatistic"},"title":"Response Workflow-Get Workflow Statistics"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/update":{"post":{"tags":["Workflow"],"summary":"Update a workflow","description":"Create a new workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow-update_workflow","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowUpdate","description":"Meta-data for the workflow version to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions":{"get":{"tags":["Workflow Version"],"summary":"Get all versions of a workflow","description":"List all versions of a Workflow.\n\nPermission `workflow:list` required.","operationId":"Workflow Version-list_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersionStatus"}},{"type":"null"}],"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`","title":"Version Status"},"description":"Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED`"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowVersion"},"title":"Response Workflow Version-List Workflow Version"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}":{"get":{"tags":["Workflow Version"],"summary":"Get a workflow version","description":"Get a specific version of a workflow.\n\nPermission `workflow:read` required if the version is public or you are the developer of the workflow,\notherwise `workflow:read_any`","operationId":"Workflow Version-get_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit `git_commit_hash` of specific version or `latest`.","examples":["latest","ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit `git_commit_hash` of specific version or `latest`."},{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/status":{"patch":{"tags":["Workflow Version"],"summary":"Update status of workflow version","description":"Update the status of a workflow version.\n\nPermission `workflow:update_status`","operationId":"Workflow Version-update_workflow_version_status","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionStatusSchema","description":"New Status of the workflow version"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/deprecate":{"patch":{"tags":["Workflow Version"],"summary":"Deprecate a workflow version","description":"Deprecate a workflow version.\n\nPermission `workflow:update` required if you are the developer of the workflow,\notherwise `workflow:update_status`","operationId":"Workflow Version-deprecate_workflow_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/parameter-extension":{"patch":{"tags":["Workflow Version"],"summary":"Update parameter extension of workflow version","description":"Update the parameter extension of a workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-update_workflow_version_parameter_extension","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParameterExtension","description":"Parameter extension specific for this CloWM instance"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersion"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Version"],"summary":"Delete parameter extension of workflow version","description":"Delete the parameter extension of a workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-delete_workflow_version_parameter_extension","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/documentation":{"get":{"tags":["Workflow Version"],"summary":"Fetch documentation for a workflow version","description":"Get the documentation for a specific workflow version.\nStreams the response directly from the right git repository.\n\nPermission `workflow:read` required.","operationId":"Workflow Version-download_workflow_documentation","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."},{"name":"document","in":"query","required":false,"schema":{"$ref":"#/components/schemas/DocumentationEnum","description":"Specify which type of documentation the client wants to fetch","default":"usage.md"},"description":"Specify which type of documentation the client wants to fetch"},{"name":"mode_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Workflow Mode","examples":["8d47e878-f25f-41aa-b4a0-95d426b46f45"],"title":"Mode Id"},"description":"Workflow Mode"}],"responses":{"200":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/versions/{git_commit_hash}/icon":{"post":{"tags":["Workflow Version"],"summary":"Upload icon for workflow version","description":"Upload an icon for the workflow version and returns the new icon URL.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-upload_workflow_version_icon","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_Workflow_Version-upload_workflow_version_icon"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IconUpdateOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Version"],"summary":"Delete icon of workflow version","description":"Delete the icon of the workflow version.\n\nPermission `workflow:update` required.","operationId":"Workflow Version-delete_workflow_version_icon","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"},{"name":"git_commit_hash","in":"path","required":true,"schema":{"type":"string","maxLength":40,"pattern":"^([0-9a-f]{40}|latest)$","description":"Git commit git_commit_hash of specific version.","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Git Commit Hash"},"description":"Git commit git_commit_hash of specific version."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions":{"post":{"tags":["Workflow Execution"],"summary":"Start a new workflow execution","description":"Start a new workflow execution. Workflow versions wit status `DEPRECATED` or `DENIED` can't be started.\n\nPermission `workflow_execution:create` required if workflow versions status is `PUBLISHED`,\notherwise `workflow_execution:create_any` required.","operationId":"Workflow Execution-start_workflow","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionIn","description":"Meta-data and parameters for the workflow to start"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Workflow Execution"],"summary":"List all workflow executions","description":"Get all workflow executions.\n\nThis endpoint enforces keyset pagination. To iterate over all workflow executions, follow the link provided in the\n`Link` header.\nA missing `Link` header indicates that you iterated over all workflow executions with the current filters.\n\nPermission `workflow_execution:list` required, if `executor_id` is the same as the current user,\notherwise `workflow_execution:list_all` required.","operationId":"Workflow Execution-list_workflow_executions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"executor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Executor Id"},"description":"Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required."},{"name":"execution_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/WorkflowExecutionStatus"}},{"type":"null"}],"description":"Filter for status of workflow execution","title":"Execution Status"},"description":"Filter for status of workflow execution"},{"name":"workflow_version_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":40,"maxLength":40,"pattern":"^[0-9a-f]+$"},{"type":"null"}],"description":"Filter for workflow version","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"],"title":"Workflow Version Id"},"description":"Filter for workflow version"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter for workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Workflow Id"},"description":"Filter for workflow"},{"name":"start_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4294967295,"minimum":1},{"type":"null"}],"description":"Filter for workflow executions that started after this UNIX timestamp","examples":[1640991600],"title":"Start After"},"description":"Filter for workflow executions that started after this UNIX timestamp"},{"name":"start_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4294967295,"minimum":1},{"type":"null"}],"description":"Filter for workflow executions that started before this UNIX timestamp","examples":[1640991600],"title":"Start Before"},"description":"Filter for workflow executions that started before this UNIX timestamp"},{"name":"id_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Id of the item to start the query from. DO NOT SET MANUALLY.","title":"Id After"},"description":"Id of the item to start the query from. DO NOT SET MANUALLY."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":5,"description":"Number of items to list per page","default":20,"title":"Per Page"},"description":"Number of items to list per page"},{"name":"sort","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Sort order of items with creation time","default":"desc","title":"Sort"},"description":"Sort order of items with creation time"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowExecutionOut"},"title":"Response Workflow Execution-List Workflow Executions"}}},"headers":{"link":{"description":"Link for the next pagination page if there is any","schema":{"type":"string","example":"<http://localhost:9999/api/workflow_executions?per_page=50&sort=asc&id_after=a16c50f8-c1fb-4b3c-afe3-82f1575bc2f4>; rel=\"next\""}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/arbitrary":{"post":{"tags":["Workflow Execution"],"summary":"Start a workflow execution with arbitrary git repository","description":"Start a new workflow execution from an arbitrary git repository.\n\nFor private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed.\n\nFor private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed.\n\nPermission `workflow:create` required.","operationId":"Workflow Execution-start_arbitrary_workflow","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevWorkflowExecutionIn","description":"Meta-data and parameters for the workflow to start"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/workflow_executions/{eid}":{"get":{"tags":["Workflow Execution"],"summary":"Get a workflow execution","description":"Get a specific workflow execution.\n\nPermission `workflow_execution:read` required if the current user started the workflow execution,\notherwise `workflow_execution:read_any` required.","operationId":"Workflow Execution-get_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Execution"],"summary":"Delete a workflow execution","description":"Delete a specific workflow execution.\n\nPermission `workflow_execution:delete` required if the current user started the workflow execution,\notherwise `workflow_execution:delete_any` required.","operationId":"Workflow Execution-delete_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/{eid}/params":{"get":{"tags":["Workflow Execution"],"summary":"Get the parameters of a workflow execution","description":"Get the parameters of a specific workflow execution.\n\nPermission `workflow_execution:read` required if the current user started the workflow execution,\notherwise `workflow_execution:read_any` required.","operationId":"Workflow Execution-get_workflow_execution_params","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Workflow Execution-Get Workflow Execution Params"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_executions/{eid}/cancel":{"post":{"tags":["Workflow Execution"],"summary":"Cancel a workflow execution","description":"Cancel a running workflow execution.\n\nPermission `workflow_execution:cancel` required if the current user started the workflow execution,\notherwise `workflow_execution:cancel_any` required.","operationId":"Workflow Execution-cancel_workflow_execution","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow execution.","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Eid"},"description":"ID of a workflow execution."}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{wid}/credentials":{"get":{"tags":["Workflow Credentials"],"summary":"Get the credentials of a workflow","description":"Get the credentials for the repository of a workflow. Only the developer of a workflow can do this.\n\nPermission `workflow:update` required.","operationId":"Workflow Credentials-get_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCredentialsOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Workflow Credentials"],"summary":"Update the credentials of a workflow","description":"Update the credentials for the repository of a workflow.\n\nPermission `workflow:update` required.","operationId":"Workflow Credentials-update_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCredentialsIn","description":"Updated credentials for the workflow git repository"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workflow Credentials"],"summary":"Delete the credentials of a workflow","description":"Delete the credentials for the repository of a workflow.\n\nPermission `workflow:delete` required if the developer of the workflow is the same as the current user,\nother `workflow:delete_any`.","operationId":"Workflow Credentials-delete_workflow_credentials","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow","examples":["0cc78936-381b-4bdd-999d-736c40591078"],"title":"Wid"},"description":"ID of a workflow"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow_modes/{mode_id}":{"get":{"tags":["Workflow Mode"],"summary":"Get workflow mode","description":"Get a workflow mode\n\nPermission `workflow:read` required","operationId":"Workflow Mode-get_workflow_mode","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"mode_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a workflow mode","examples":["8d47e878-f25f-41aa-b4a0-95d426b46f45"],"title":"Mode Id"},"description":"ID of a workflow mode"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowModeOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources":{"post":{"tags":["Resource"],"summary":"Request a new resource","description":"Request a new resources.\n\nPermission `resource:create` required.","operationId":"Resource-create_resource","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceIn","description":"Meta-data for the resource to request"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Resource"],"summary":"List resources","description":"List all resources.\n\nPermission `resource:list` required.","operationId":"Resource-list_resources","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"maintainer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Maintainer Id"},"description":"Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`."},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"}},{"type":"null"}],"description":"Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required."},{"name":"name_substring","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"description":"Filter resources by a substring in their name.","examples":["gtdb"],"title":"Name Substring"},"description":"Filter resources by a substring in their name."},{"name":"public","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter resources to by the public flag","title":"Public"},"description":"Filter resources to by the public flag"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceOut"},"title":"Response Resource-List Resources"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/sync_requests":{"get":{"tags":["Resource"],"summary":"List resource sync requests","description":"List all resource sync requests.\n\nPermission `resource:update_any` required.","operationId":"Resource-list_sync_requests","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserSynchronizationRequestOut"},"type":"array","title":"Response Resource-List Sync Requests"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/resources/ownership_transfer_request":{"get":{"tags":["Resource"],"summary":"List resource OTRs","description":"Get the ownership transfer requests for resources.\n\nPermission `resource:list` required if `current_owner_id` or `new_owner_id` is the current users id,\notherwise `resource:list_all`","operationId":"Resource-list_resource_otrs","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"current_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who is the current owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"Current Owner Id"},"description":"UID of user who is the current owner."},{"name":"new_owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UID of user who will be the new owner.","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"],"title":"New Owner Id"},"description":"UID of user who will be the new owner."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"},"title":"Response Resource-List Resource Otrs"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}":{"get":{"tags":["Resource"],"summary":"Get a resource","description":"Get a specific resource.\n\nPermission `resource:read` required.","operationId":"Resource-get_resource","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"}},{"type":"null"}],"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Resource"],"summary":"Delete a resource","description":"Delete a resources.\n\nPermission `resource:delete` required.","operationId":"Resource-delete_resource","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/ownership_transfer_request":{"get":{"tags":["Resource"],"summary":"Get a resource OTR","description":"Get a specific resource ownership transfer request.\n\nPermission `resource:read` required if the current user is the current or new owner of the resource,\notherwise `resource:read_any` required.","operationId":"Resource-get_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Resource"],"summary":"Create a resource OTR","description":"Create a ownership transfer request for a specific resource.\n\nPermission `resource:update` required if the current user is the current owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-create_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestIn","description":"Meta-data for the resource OTR to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipTransferRequestOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Resource"],"summary":"Accept a resource OTR","description":"Accept an ownership transfer request for a specific resource.\n\nPermission `resource:update` required if the current user is the new owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-accept_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Resource"],"summary":"Delete a resource OTR","description":"Delete/Reject a resource ownership transfer request.\n\nPermission `resource:update` required if the current user is the current or new owner of the resource,\notherwise `resource:update_any` required.","operationId":"Resource-delete_resource_otr","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions":{"get":{"tags":["ResourceVersion"],"summary":"List versions of a resource","description":"List all the resource version for a specific resource.\n\nPermission 'resource:read' required.","operationId":"ResourceVersion-list_resource_versions","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"version_status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionStatus"}},{"type":"null"}],"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required.","title":"Version Status"},"description":"Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceVersionOut"},"title":"Response Resourceversion-List Resource Versions"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["ResourceVersion"],"summary":"Request new version of a resource","description":"Request a new resource version.\n\nPermission `resource:update` required if the current user is the maintainer, `resource:update_any` otherwise.","operationId":"ResourceVersion-request_resource_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionIn","description":"Meta-data for the resource version to request"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}":{"get":{"tags":["ResourceVersion"],"summary":"Get version of a resource","description":"Get a specific resource version for a specific resource.\n\nPermission `resource:read` required. If the status of the resource version is not `LATEST` or `SYNCHRONIZED` and\nthe current user is not the maintainer, then the permission `resource:read_any` is required.","operationId":"ResourceVersion-get_resource_version","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/tree":{"get":{"tags":["ResourceVersion"],"summary":"Download folder structure of resource","description":"Get the folder structure of the resources. Only available if the resource was previously downloaded to the cluster.\n\nPermission `resource:read` required.","operationId":"ResourceVersion-resource_file_tree","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileTree"},"title":"Response Resourceversion-Resource File Tree"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/request_review":{"put":{"tags":["ResourceVersion"],"summary":"Request resource version review","description":"Request the review of a resource version.\n\nPermission `resource:update` required.","operationId":"ResourceVersion-request_resource_version_review","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/request_sync":{"put":{"tags":["ResourceVersion"],"summary":"Request resource version synchronization","description":"Request the synchronization of a resource version to the cluster.\n\nPermission `resource:request_sync` required.","operationId":"ResourceVersion-request_resource_version_sync","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSynchronizationRequestIn","description":"Meta-data for the synchronization request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/review":{"put":{"tags":["ResourceVersion"],"summary":"Review resource version","description":"Review answer the resource version.\n\nPermission `resource:update_status` required.","operationId":"ResourceVersion-resource_version_review","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRequestAnswer","description":"Answer for the resource version review"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/sync":{"put":{"tags":["ResourceVersion"],"summary":"Synchronize resource version with cluster","description":"Synchronize the resource version to the cluster.\n\nPermission `resource:update_any` required.","operationId":"ResourceVersion-resource_version_sync","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRequestAnswer","description":"Answer to the resource version synchronization request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/latest":{"put":{"tags":["ResourceVersion"],"summary":"Set resource version to latest","description":"Set the resource version as the latest version.\n\nPermission `resource:update_any` required.","operationId":"ResourceVersion-resource_version_latest","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/cluster":{"delete":{"tags":["ResourceVersion"],"summary":"Delete resource version on cluster","description":"Delete the resource version on the cluster.\n\nPermission `resource:delete_any` required.","operationId":"ResourceVersion-delete_resource_version_cluster","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/resources/{rid}/versions/{rvid}/s3":{"delete":{"tags":["ResourceVersion"],"summary":"Delete resource version in S3","description":"Delete the resource version in the S3 bucket.\n\nPermission `resource:delete_any` required.","operationId":"ResourceVersion-delete_resource_version_s3","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"],"title":"Rid"},"description":"ID of a resource"},{"name":"rvid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"],"title":"Rvid"},"description":"ID of a resource version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersionOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news":{"post":{"tags":["News"],"summary":"Create news","description":"Create a news event.\n\nPermission `news:create` required.","operationId":"News-create_news","security":[{"Session Token":[]},{"API Token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsIn","description":"Meta-data for news event to create"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["News"],"summary":"List news","description":"List all news events with filters.\n\nThis endpoint enforces keyset pagination. To iterate over all news, follow the link provided in the `Link` header.\nA missing `Link` header indicates that you iterated over all news with the current filters.\n\nPermission `news:list` required.","operationId":"News-list_news","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4294967296,"minimum":0},{"type":"null"}],"description":"Filter for news that are created after this UNIX timestamp","title":"Created After"},"description":"Filter for news that are created after this UNIX timestamp"},{"name":"creator_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter for news created by a specific user","title":"Creator Id"},"description":"Filter for news created by a specific user"},{"name":"id_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Id of the item to start the query from. DO NOT SET MANUALLY.","title":"Id After"},"description":"Id of the item to start the query from. DO NOT SET MANUALLY."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":5,"description":"Number of items to list per page","default":20,"title":"Per Page"},"description":"Number of items to list per page"},{"name":"sort","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Sort order of items with creation time","default":"desc","title":"Sort"},"description":"Sort order of items with creation time"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NewsOut"},"title":"Response News-List News"}}},"headers":{"link":{"description":"Link for the next pagination page if there is any","schema":{"type":"string","example":"<http://localhost:9999/api/news?per_page=50&sort=asc&id_after=a16c50f8-c1fb-4b3c-afe3-82f1575bc2f4>; rel=\"next\""}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/latest":{"get":{"tags":["News"],"summary":"Get latest news","description":"List the current news events.\n\nPermission `news:list` required.","operationId":"News-list_latest_news","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/NewsOut"},"type":"array","title":"Response News-List Latest News"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Malformed JWT Token"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Not authenticated"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Action Forbidden. Permission user:read is missing"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDetail"},"example":{"detail":"Entity not found."}}}}},"security":[{"Session Token":[]},{"API Token":[]}]}},"/news/{nid}":{"get":{"tags":["News"],"summary":"Get a specific news","description":"Get a specified news event.\n\nPermission `news:read` required.","operationId":"News-get_news","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"nid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a news event","examples":["f3e2acf0-e942-44b2-8f85-52b7deb660ec"],"title":"Nid"},"description":"ID of a news event"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsOut"}}}},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["News"],"summary":"Delete a specific news","description":"Delete a specified news event.\n\nPermission `news:delete` required.","operationId":"News-delete_news","security":[{"Session Token":[]},{"API Token":[]}],"parameters":[{"name":"nid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"ID of a news event","examples":["f3e2acf0-e942-44b2-8f85-52b7deb660ec"],"title":"Nid"},"description":"ID of a news event"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Error decoding JWT Token","content":{"application/json":{"example":{"detail":"Malformed JWT Token"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"401":{"description":"Not Authenticated","content":{"application/json":{"example":{"detail":"Not authenticated"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"403":{"description":"Not Authorized","content":{"application/json":{"example":{"detail":"Action Forbidden. Permission user:read is missing"},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"404":{"description":"Entity not Found","content":{"application/json":{"example":{"detail":"Entity not found."},"schema":{"$ref":"#/components/schemas/ErrorDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AnonymizedWorkflowExecution":{"properties":{"workflow_execution_id":{"type":"string","title":"Workflow Execution Id","description":"ID of the workflow execution","examples":["591b6a6e-a1f0-420d-8a20-a7a60704f695"]},"pseudo_uid":{"type":"string","title":"Pseudo Uid","description":"Anonymized user ID of the user who ran the workflow execution","examples":["7ed4249857b656e96f456449796e461e6001d3fb2481a44701f70ca437bd53a2"]},"workflow_mode_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Mode Id","description":"ID of the workflow mode this workflow execution ran in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"workflow_version_id":{"type":"string","title":"Workflow Version Id","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"started_at":{"type":"string","format":"date","title":"Started At","description":"Day of the workflow execution","examples":["2023-01-01"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"developer_id":{"type":"string","title":"Developer Id","description":"ID of developer of the workflow","examples":["28c5353b8bb34984a8bd4169ba94c606"]},"status":{"$ref":"#/components/schemas/WorkflowExecutionStatus","description":"End status of the workflow execution","examples":["SUCCESS"]}},"type":"object","required":["workflow_execution_id","pseudo_uid","workflow_version_id","started_at","workflow_id","developer_id","status"],"title":"AnonymizedWorkflowExecution"},"ApiTokenIn":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has"}},"type":"object","required":["name","scopes"],"title":"ApiTokenIn"},"ApiTokenOut":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has"},"token_id":{"type":"string","title":"Token Id","description":"The ID of the token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"]},"uid":{"type":"string","title":"Uid","description":"The ID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"created_at":{"type":"integer","title":"Created At","description":"The UNIX timestamp when this token was created","examples":["1717192800"]},"last_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used","description":"The UNIX timestamp when this token was used the last time","examples":["1717193800"]}},"type":"object","required":["name","scopes","token_id","uid","created_at"],"title":"ApiTokenOut"},"ApiTokenPrivateOut":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z\\d-]+$","title":"Name","description":"Short name for the API token","examples":["api-token-42"]},"expires_at":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Expires At","description":"Unix timestamp when the token should expire","examples":[1719784800]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"List of scopes this Api token has"},"token_id":{"type":"string","title":"Token Id","description":"The ID of the token","examples":["b4c861a7-7f52-4332-a001-78e0500dabbc"]},"uid":{"type":"string","title":"Uid","description":"The ID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"created_at":{"type":"integer","title":"Created At","description":"The UNIX timestamp when this token was created","examples":["1717192800"]},"last_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used","description":"The UNIX timestamp when this token was used the last time","examples":["1717193800"]},"token":{"type":"string","title":"Token","description":"The actual token used for authentication","examples":["J21NRKUYgyVUgvJ3cIdllS-MMa9ny1UDKFF18aetDvo"]}},"type":"object","required":["name","scopes","token_id","uid","created_at","token"],"title":"ApiTokenPrivateOut"},"Body_Bucket-update_bucket_public_state":{"properties":{"public":{"type":"boolean","title":"Public","description":"New public state"}},"type":"object","required":["public"],"title":"Body_Bucket-update_bucket_public_state"},"Body_Workflow_Version-upload_workflow_version_icon":{"properties":{"icon":{"type":"string","format":"binary","title":"Icon","description":"Icon for the Workflow."}},"type":"object","required":["icon"],"title":"Body_Workflow Version-upload_workflow_version_icon"},"BucketIn":{"properties":{"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$","title":"Name","description":"Name of the bucket","examples":["test-bucket"]},"description":{"type":"string","maxLength":65536,"minLength":16,"title":"Description","description":"Description of the bucket","examples":["This is a sample description of a bucket"]}},"type":"object","required":["name","description"],"title":"BucketIn","description":"Schema for creating a new bucket."},"BucketOut":{"properties":{"size_limit":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Size Limit","description":"Size limit of the bucket in KiB","examples":[10240]},"object_limit":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Object Limit","description":"Number of objects limit of the bucket","examples":[10000]},"name":{"type":"string","maxLength":63,"minLength":3,"pattern":"^([a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$","title":"Name","description":"Name of the bucket","examples":["test-bucket"]},"description":{"type":"string","maxLength":65536,"minLength":16,"title":"Description","description":"Description of the bucket","examples":["This is a sample description of a bucket"]},"created_at":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Created At","description":"UNIX timestamp when the bucket was created","examples":[1640991600]},"owner_id":{"type":"string","title":"Owner Id","description":"UID of the owner","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"public":{"type":"boolean","title":"Public","description":"Flag if the bucket is anonymously readable"}},"type":"object","required":["name","description","created_at","owner_id","public"],"title":"BucketOut","description":"Schema for answering a request with a bucket."},"BucketPermissionIn":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"Scopes of the bucket permission"},"uid":{"type":"string","format":"uuid","title":"Uid","description":"UID of the grantee","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"bucket_name":{"type":"string","maxLength":63,"minLength":3,"title":"Bucket Name","description":"Name of Bucket","examples":["test-bucket"]}},"type":"object","required":["scopes","uid","bucket_name"],"title":"BucketPermissionIn"},"BucketPermissionOut":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"Scopes of the bucket permission"},"uid":{"type":"string","title":"Uid","description":"UID of the grantee","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"bucket_name":{"type":"string","maxLength":63,"minLength":3,"title":"Bucket Name","description":"Name of Bucket","examples":["test-bucket"]}},"type":"object","required":["scopes","uid","bucket_name"],"title":"BucketPermissionOut","description":"Schema for the bucket permissions."},"BucketPermissionParameters":{"properties":{"from_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"From Timestamp","description":"Start date of permission as UNIX timestamp","examples":[1640991600]},"to_timestamp":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"To Timestamp","description":"End date of permission as UNIX timestamp","examples":[1640991600]},"file_prefix":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"File Prefix","description":"Prefix of subfolder","examples":["pseudo/sub/folder/"]},"scopes":{"items":{"type":"string","enum":["read","write"]},"type":"array","minItems":1,"title":"Scopes","description":"Scopes of the bucket permission"}},"type":"object","required":["scopes"],"title":"BucketPermissionParameters","description":"Schema for the parameters of a bucket permission."},"BucketSizeLimits":{"properties":{"size_limit":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Size Limit","description":"Size limit of the bucket in KiB","examples":[10240]},"object_limit":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Object Limit","description":"Number of objects limit of the bucket","examples":[10000]}},"type":"object","title":"BucketSizeLimits","description":"Schema to represent bucket limits."},"BucketType":{"type":"string","enum":["OWN","ALL","PERMISSION"],"title":"BucketType","description":"Enumeration for the type of buckets to fetch from the DB\n\nOWN: Only fetch buckets that the user owns\nPERMISSION: Only fetch foreign buckets that the user has access to\nALL: Fetch all buckets that the user has access to"},"DevWorkflowExecutionIn":{"properties":{"parameters":{"type":"object","title":"Parameters","description":"Parameters for this workflow"},"logs_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where to save logs and reports. If None, nothing will be uploaded.","examples":["s3://example-bucket/logs"]},"provenance_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where to save provenance information. If None, nothing will be uploaded.","examples":["s3://example-bucket/provenance"]},"debug_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where to save debug information from Nextflow. If None, nothing will be uploaded.","examples":["s3://example-bucket/debug"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"repository_url":{"type":"string","minLength":1,"format":"uri","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]},"mode":{"anyOf":[{"$ref":"#/components/schemas/WorkflowModeIn"},{"type":"null"}],"description":"Mode of the workflow with an alternative entrypoint"},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow execution requires"}},"type":"object","required":["parameters","git_commit_hash","repository_url","nextflow_version"],"title":"DevWorkflowExecutionIn"},"DocumentationEnum":{"type":"string","enum":["usage.md","input.md","output.md","changelog.md","parameter_schema.json","clowm_info.json"],"title":"DocumentationEnum"},"ErrorDetail":{"properties":{"detail":{"type":"string","title":"Detail","description":"Detail about the occurred error"}},"type":"object","required":["detail"],"title":"ErrorDetail","description":"Schema for a error due to a rejected request."},"FileTree":{"properties":{"type":{"type":"string","enum":["file","directory","link"],"title":"Type"},"name":{"type":"string","title":"Name"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target"},"contents":{"anyOf":[{"items":{"$ref":"#/components/schemas/FileTree"},"type":"array"},{"type":"null"}],"title":"Contents"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["type","name","size"],"title":"FileTree"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IconUpdateOut":{"properties":{"icon_url":{"type":"string","title":"Icon Url","description":"URL to the uploaded icon","examples":["https://s3-dev.clowm.de/clowm-data/icon/980a9446c7f2460c83187cbb876f8424.png"]}},"type":"object","required":["icon_url"],"title":"IconUpdateOut"},"NewsIn":{"properties":{"content":{"type":"string","maxLength":65536,"minLength":16,"title":"Content","description":"Content of the news. Can contain Markdown.","examples":["## Header\n\nSome text"]},"title":{"type":"string","maxLength":256,"minLength":3,"title":"Title","description":"Title of the news","examples":["Some title"]},"important_till":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Important Till","description":"UNIX timestamp till the news is important.","examples":[1640991600]},"category":{"type":"string","enum":["workflow","resource","system"],"title":"Category","description":"Category of the news event","default":"system"}},"type":"object","required":["content","title"],"title":"NewsIn"},"NewsOut":{"properties":{"content":{"type":"string","maxLength":65536,"minLength":16,"title":"Content","description":"Content of the news. Can contain Markdown.","examples":["## Header\n\nSome text"]},"title":{"type":"string","maxLength":256,"minLength":3,"title":"Title","description":"Title of the news","examples":["Some title"]},"important_till":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"Important Till","description":"UNIX timestamp till the news is important.","examples":[1640991600]},"category":{"type":"string","enum":["workflow","resource","system"],"title":"Category","description":"Category of the news event"},"news_id":{"type":"string","title":"News Id","description":"ID of the news event","examples":["f3e2acf0-e942-44b2-8f85-52b7deb660ec"]},"creator_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creator Id","description":"ID of the creator","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"created_at":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Created At","description":"UNIX timestamp when the bucket was created","examples":[1640991600]}},"type":"object","required":["content","title","category","news_id","created_at"],"title":"NewsOut"},"NextflowVersion":{"type":"string","enum":["22.10.0","22.10.1","22.10.2","22.10.3","22.10.4","22.10.5","22.10.6","22.10.7","22.10.8","23.04.0","23.04.1","23.04.2","23.04.3","23.04.4","23.04.5","23.10.0","23.10.1","23.10.2","23.10.3","23.10.4","24.04.1","24.04.2","24.04.3","24.04.4"],"title":"NextflowVersion"},"OIDCProvider":{"type":"string","enum":["lifescience"],"const":"lifescience","title":"OIDCProvider"},"OwnershipTransferRequestIn":{"properties":{"new_owner_uid":{"type":"string","format":"uuid","title":"New Owner Uid","description":"The new owner that get the request","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"comment":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Comment","description":"An optional comment for the transfer request","examples":["This is an example comment"]}},"type":"object","required":["new_owner_uid"],"title":"OwnershipTransferRequestIn"},"OwnershipTransferRequestOut":{"properties":{"new_owner_uid":{"type":"string","title":"New Owner Uid","description":"The new owner that get the request","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"comment":{"type":"string","title":"Comment","description":"An optional comment for the transfer request","default":"","examples":["This is an example comment"]},"created_at":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Created At","description":"Time when the ownership transfer was requested as UNIX timestamp","examples":[1640991600]},"current_owner_uid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Owner Uid","description":"The current uid of the current owner if he exists","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"target_id":{"type":"string","title":"Target Id","description":"Id of the target that gets its ownership transferred"},"target_name":{"type":"string","title":"Target Name","description":"Name of the target","examples":["example-bucket","Example Workflow","Example Resource"]},"target_description":{"type":"string","title":"Target Description","description":"Description of then target","examples":["Some long description of a target"]},"target_type":{"$ref":"#/components/schemas/OwnershipTypeEnum","description":"Target type of the ownership transfer","examples":["bucket"]}},"type":"object","required":["new_owner_uid","created_at","target_id","target_name","target_description","target_type"],"title":"OwnershipTransferRequestOut"},"OwnershipTypeEnum":{"type":"string","enum":["bucket","workflow","resource"],"title":"OwnershipTypeEnum"},"ParameterExtension":{"properties":{"mapping":{"additionalProperties":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"}]},"type":"object"},"type":"object","title":"Mapping","description":"The inner dictionary contains the display name as key and the parameter value as value. The outer dictionary has the parameter name as key.","examples":[{"some-complex-parameter":{"Option 1":"/some/path","Option 2":"/some/other/path"}}]},"defaults":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}]},"type":"object","title":"Defaults","description":"Dictionary with parameter name as key and default value as value","examples":[{"parameter1":"somevalue","parameter2":12}]}},"type":"object","title":"ParameterExtension"},"PermissionStatus":{"type":"string","enum":["ACTIVE","INACTIVE"],"title":"PermissionStatus","description":"Status of a bucket permission. Can be either `ACTIVE` or `INACTIVE`. A permission can only get `INACTIVE` if the\npermission itself has a time limit and the current time is not in the timespan."},"ResourceIn":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]},"name":{"type":"string","maxLength":32,"minLength":3,"title":"Name","description":"Short Name for the resource","examples":["blast-db"]},"description":{"type":"string","maxLength":264,"minLength":16,"title":"Description","description":"Short description for this resource","examples":["This is a short description for a resource"]},"source":{"type":"string","maxLength":264,"minLength":8,"title":"Source","description":"A link or similar where the resource originates from","examples":["https://example.com/db"]},"private":{"type":"boolean","title":"Private","description":"Flag if this resource should be default visible in the UI","default":true}},"type":"object","required":["release","name","description","source"],"title":"ResourceIn"},"ResourceOut":{"properties":{"name":{"type":"string","maxLength":32,"minLength":3,"title":"Name","description":"Short Name for the resource","examples":["blast-db"]},"description":{"type":"string","maxLength":264,"minLength":16,"title":"Description","description":"Short description for this resource","examples":["This is a short description for a resource"]},"source":{"type":"string","maxLength":264,"minLength":8,"title":"Source","description":"A link or similar where the resource originates from","examples":["https://example.com/db"]},"private":{"type":"boolean","title":"Private","description":"Flag if this resource should be default visible in the UI","default":true},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"maintainer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Maintainer Id","description":"ID of the maintainer","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"versions":{"items":{"$ref":"#/components/schemas/ResourceVersionOut"},"type":"array","title":"Versions","description":"Versions of the resource"}},"type":"object","required":["name","description","source","resource_id","maintainer_id","versions"],"title":"ResourceOut"},"ResourceVersionIn":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]}},"type":"object","required":["release"],"title":"ResourceVersionIn"},"ResourceVersionOut":{"properties":{"release":{"type":"string","maxLength":32,"minLength":3,"title":"Release","description":"Short tag describing the version of the resource","examples":["01-2023"]},"status":{"$ref":"#/components/schemas/ResourceVersionStatus","description":"Status of the resource version"},"resource_version_id":{"type":"string","title":"Resource Version Id","description":"ID of the resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"]},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"created_at":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Created At","description":"Timestamp when the version was created as UNIX timestamp","examples":[1672527600]},"compressed_size":{"type":"integer","maximum":1.8446744073709552e+19,"minimum":0.0,"title":"Compressed Size","description":"Size of the compressed resource in bytes","examples":[42097156608]},"cluster_path":{"type":"string","title":"Cluster Path","description":"Path to the resource on the cluster if the resource is synchronized","readOnly":true,"examples":["/vol/resources/CLDB-0e240ccd/fb4cee121e9149f3905f808845c7c1f4","/vol/resources/CLDB-0e240ccd/latest"]},"s3_path":{"type":"string","title":"S3 Path","description":"Path to the resource in the S3 Bucket. Not publicly available.","readOnly":true,"examples":["s3://clowm-data/resources/CLDB-0e240ccd/fb4cee121e9149f3905f808845c7c1f4/resource.tar.gz"]}},"type":"object","required":["release","status","resource_version_id","resource_id","created_at","compressed_size","cluster_path","s3_path"],"title":"ResourceVersionOut"},"ResourceVersionStatus":{"type":"string","enum":["RESOURCE_REQUESTED","WAIT_FOR_REVIEW","DENIED","APPROVED","SYNC_REQUESTED","SYNCHRONIZING","SYNC_ERROR","SYNCHRONIZED","SETTING_LATEST","LATEST","CLUSTER_DELETING","CLUSTER_DELETE_ERROR","S3_DELETING","S3_DELETE_ERROR","S3_DELETED"],"title":"ResourceVersionStatus","description":"Enumeration for the possible status of a resource version."},"RoleEnum":{"type":"string","enum":["administrator","user","reviewer","developer","db_maintainer"],"title":"RoleEnum"},"S3Key":{"properties":{"uid":{"type":"string","title":"Uid","description":"UID of the user of that access key","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"access_key":{"type":"string","title":"Access Key","description":"ID of the S3 access key","examples":["CRJ6B037V2ZT4U3W17VC"]},"secret_key":{"type":"string","title":"Secret Key","description":"Secret of the S3 access key","examples":["2F5uNTI1qvt4oAroXV0wWct8rWclL2QvFXKqSqjS"]}},"type":"object","required":["uid","access_key","secret_key"],"title":"S3Key","description":"Schema for a S3 key associated with a user."},"UserIn":{"properties":{"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","examples":[["user"]]},"email":{"type":"string","format":"email","title":"Email","description":"Email of the user","examples":["user@example.org"]}},"type":"object","required":["display_name","email"],"title":"UserIn"},"UserOut":{"properties":{"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"uid":{"type":"string","title":"Uid","description":"ID of the user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]}},"type":"object","required":["display_name","uid"],"title":"UserOut","description":"Schema for a user."},"UserOutExtended":{"properties":{"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","description":"Roles of the user","examples":[["user"]]},"display_name":{"type":"string","maxLength":256,"title":"Display Name","description":"Full Name of the user","examples":["Bilbo Baggins"]},"uid":{"type":"string","title":"Uid","description":"ID of the user","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"lifescience_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lifescience Id","description":"Lifesicence ID of the user","examples":["18b59678f16d2c59306c0aedb1dc7ddcfe162456'"]},"invitation_token_created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Invitation Token Created At","description":"Timestamp when the invitation token was created as UNIX timestamp"},"gravatar_url":{"type":"string","title":"Gravatar Url","description":"URL to the gravatar avatar based on the users email"}},"type":"object","required":["roles","display_name","uid","gravatar_url"],"title":"UserOutExtended"},"UserRequestAnswer":{"properties":{"deny":{"type":"boolean","title":"Deny","description":"Flag to indicate if the request was denied.","default":false},"reason":{"anyOf":[{"type":"string","maxLength":512,"minLength":16},{"type":"null"}],"title":"Reason","description":"Reason why the request was denied or approved. Required if request is denied."}},"type":"object","title":"UserRequestAnswer"},"UserRoles":{"properties":{"roles":{"items":{"$ref":"#/components/schemas/RoleEnum"},"type":"array","title":"Roles","description":"Roles of the user","examples":[["user"]]}},"type":"object","required":["roles"],"title":"UserRoles"},"UserSynchronizationRequestIn":{"properties":{"reason":{"type":"string","maxLength":512,"minLength":16,"title":"Reason","description":"Reason why the request was requested.","examples":["This version is required to reproduce a execution with Workflow XY@2.0."]}},"type":"object","required":["reason"],"title":"UserSynchronizationRequestIn"},"UserSynchronizationRequestOut":{"properties":{"reason":{"type":"string","maxLength":512,"minLength":16,"title":"Reason","description":"Reason why the request was requested.","examples":["This version is required to reproduce a execution with Workflow XY@2.0."]},"resource_version_id":{"type":"string","title":"Resource Version Id","description":"ID of the resource version","examples":["fb4cee12-1e91-49f3-905f-808845c7c1f4"]},"resource_id":{"type":"string","title":"Resource Id","description":"ID of the resource","examples":["4c072e39-2bd9-4fa3-b564-4d890e240ccd"]},"requester_id":{"type":"string","title":"Requester Id","description":"ID of the user that requested this resource synchronization","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]}},"type":"object","required":["reason","resource_version_id","resource_id","requester_id"],"title":"UserSynchronizationRequestOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WorkflowCredentialsIn":{"properties":{"token":{"type":"string","maxLength":128,"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]}},"type":"object","required":["token"],"title":"WorkflowCredentialsIn"},"WorkflowCredentialsOut":{"properties":{"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]}},"type":"object","title":"WorkflowCredentialsOut"},"WorkflowExecutionIn":{"properties":{"parameters":{"type":"object","title":"Parameters","description":"Parameters for this workflow"},"logs_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where to save logs and reports. If None, nothing will be uploaded.","examples":["s3://example-bucket/logs"]},"provenance_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where to save provenance information. If None, nothing will be uploaded.","examples":["s3://example-bucket/provenance"]},"debug_s3_path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":3,"pattern":"^s3://(\\w){1}(\\w-\\./)*(\\w){1}"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where to save debug information from Nextflow. If None, nothing will be uploaded.","examples":["s3://example-bucket/debug"]},"workflow_version_id":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Workflow Version Id","description":"Workflow version git commit hash","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"notes":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Notes","description":"Optional notes for this workflow execution","examples":["Some workflow execution specific notes"]},"mode_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mode Id","description":"ID of the workflow mode this workflow execution runs in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]}},"type":"object","required":["parameters","workflow_version_id"],"title":"WorkflowExecutionIn"},"WorkflowExecutionOut":{"properties":{"workflow_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version Id","description":"Workflow version git commit hash","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"notes":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Notes","description":"Optional notes for this workflow execution","examples":["Some workflow execution specific notes"]},"mode_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode Id","description":"ID of the workflow mode this workflow execution runs in","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"execution_id":{"type":"string","title":"Execution Id","description":"ID of the workflow execution","examples":["591b6a6e-a1f0-420d-8a20-a7a60704f695"]},"executor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Executor Id","description":"UID of user who started the workflow","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"start_time":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Start Time","description":"Start time of the workflow execution as UNIX timestamp","examples":[1640991600]},"end_time":{"anyOf":[{"type":"integer","maximum":4294967295.0,"minimum":1.0},{"type":"null"}],"title":"End Time","description":"End time of the workflow execution as UNIX timestamp","examples":[1640991600]},"status":{"$ref":"#/components/schemas/WorkflowExecutionStatus","description":"Status of the workflow execution","examples":["RUNNING"]},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Id of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"logs_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logs S3 Path","description":"S3 Path where logs and reports are saved.","examples":["s3://example-bucket/logs/run-591b6a6ea1f0420d8a20a7a60704f695"]},"provenance_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provenance S3 Path","description":"S3 Path where provenance information is saved.","examples":["s3://example-bucket/provenance/run-591b6a6ea1f0420d8a20a7a60704f695"]},"debug_s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Debug S3 Path","description":"S3 Path where debug information from Nextflow is saved.","examples":["s3://example-bucket/debug/run-591b6a6ea1f0420d8a20a7a60704f695"]},"cpu_time":{"type":"string","format":"duration","title":"Cpu Time","description":"The consumed cpu time in ISO 8601 format","examples":["P4DT12H30M5S"]}},"type":"object","required":["execution_id","start_time","status","cpu_time"],"title":"WorkflowExecutionOut"},"WorkflowExecutionStatus":{"type":"string","enum":["PENDING","SCHEDULED","RUNNING","CANCELED","SUCCESS","ERROR"],"title":"WorkflowExecutionStatus","description":"Enumeration for the status on a workflow execution."},"WorkflowIn":{"properties":{"name":{"type":"string","maxLength":64,"minLength":3,"title":"Name","description":"Short descriptive name of the workflow","examples":["RNA ReadMapper"]},"short_description":{"type":"string","maxLength":256,"minLength":64,"title":"Short Description","description":"Short description of the workflow","examples":["This should be a very good example of a short and descriptive description"]},"repository_url":{"type":"string","minLength":1,"format":"uri","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]+$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"initial_version":{"type":"string","maxLength":10,"minLength":5,"title":"Initial Version","description":"Initial version of the Workflow. Should follow semantic versioning","default":"v1.0.0","examples":["v1.0.0"]},"token":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Token","description":"Token to access the content git repository","examples":["vnpau89avpa48iunga984gh9h89pvhj"]},"modes":{"items":{"$ref":"#/components/schemas/WorkflowModeIn"},"type":"array","maxItems":10,"title":"Modes","description":"List of modes with alternative entrypoint the new workflow has","default":[]},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow version requires"}},"type":"object","required":["name","short_description","repository_url","git_commit_hash","nextflow_version"],"title":"WorkflowIn"},"WorkflowModeIn":{"properties":{"schema_path":{"type":"string","maxLength":256,"title":"Schema Path","description":"Path to the alternative parameter schema","examples":["modes/schema1.json"]},"entrypoint":{"type":"string","maxLength":256,"title":"Entrypoint","description":"Name of the process the workflow should start with. Argument to the parameter '-entry'","examples":["example"]},"name":{"type":"string","maxLength":128,"title":"Name","description":"Name of the workflow mode","examples":["Example Name"]}},"type":"object","required":["schema_path","entrypoint","name"],"title":"WorkflowModeIn"},"WorkflowModeOut":{"properties":{"schema_path":{"type":"string","maxLength":256,"title":"Schema Path","description":"Path to the alternative parameter schema","examples":["modes/schema1.json"]},"entrypoint":{"type":"string","maxLength":256,"title":"Entrypoint","description":"Name of the process the workflow should start with. Argument to the parameter '-entry'","examples":["example"]},"name":{"type":"string","maxLength":128,"title":"Name","description":"Name of the workflow mode","examples":["Example Name"]},"mode_id":{"type":"string","title":"Mode Id","description":"ID of the workflow mode","examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]}},"type":"object","required":["schema_path","entrypoint","name","mode_id"],"title":"WorkflowModeOut"},"WorkflowOut":{"properties":{"name":{"type":"string","maxLength":64,"minLength":3,"title":"Name","description":"Short descriptive name of the workflow","examples":["RNA ReadMapper"]},"short_description":{"type":"string","maxLength":256,"minLength":64,"title":"Short Description","description":"Short description of the workflow","examples":["This should be a very good example of a short and descriptive description"]},"repository_url":{"type":"string","title":"Repository Url","description":"URL to the Git repository belonging to this workflow","examples":["https://github.com/example-user/example"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"versions":{"items":{"$ref":"#/components/schemas/WorkflowVersion"},"type":"array","title":"Versions","description":"Versions of the workflow"},"developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id","description":"ID of developer of the workflow","examples":["1d3387f3-95c0-4813-8767-2cad87faeebf"]},"private":{"type":"boolean","title":"Private","description":"Flag if the workflow is hosted in a private git repository","default":false}},"type":"object","required":["name","short_description","repository_url","workflow_id","versions"],"title":"WorkflowOut"},"WorkflowStatistic":{"properties":{"day":{"type":"string","format":"date","title":"Day","description":"Day of the datapoint","examples":["2023-01-01"]},"count":{"type":"integer","title":"Count","description":"Number of started workflows on that day","examples":[1]}},"type":"object","required":["day","count"],"title":"WorkflowStatistic"},"WorkflowUpdate":{"properties":{"version":{"type":"string","maxLength":10,"minLength":5,"title":"Version","description":"Version of the Workflow. Should follow semantic versioning","examples":["v1.1.0"]},"git_commit_hash":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Git Commit Hash","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"append_modes":{"items":{"$ref":"#/components/schemas/WorkflowModeIn"},"type":"array","title":"Append Modes","description":"Add modes to the new workflow version","default":[]},"delete_modes":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Delete Modes","description":"Delete modes for the new workflow version.","default":[],"examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this new workflow version requires."}},"type":"object","required":["version","git_commit_hash","nextflow_version"],"title":"WorkflowUpdate"},"WorkflowVersion":{"properties":{"status":{"$ref":"#/components/schemas/WorkflowVersionStatus","description":"Status of the workflow version","examples":["PUBLISHED"]},"workflow_id":{"type":"string","title":"Workflow Id","description":"ID of the corresponding workflow","examples":["20128c04-e834-40a8-9878-68939ae46423"]},"version":{"type":"string","maxLength":10,"minLength":5,"title":"Version","description":"Version of the Workflow. Should follow semantic versioning","examples":["v1.0.0"]},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","description":"URL to the uploaded icon","examples":["https://s3-dev.clowm.de/clowm-data/icon/980a9446c7f2460c83187cbb876f8424.png"]},"workflow_version_id":{"type":"string","maxLength":40,"minLength":40,"pattern":"^[0-9a-f]{40}$","title":"Workflow Version Id","description":"Hash of the git commit","examples":["ba8bcd9294c2c96aedefa1763a84a18077c50c0f"]},"created_at":{"type":"integer","maximum":4294967295.0,"minimum":1.0,"title":"Created At","description":"Timestamp when the version was created as UNIX timestamp","examples":[1640991600]},"modes":{"items":{"type":"string"},"type":"array","title":"Modes","description":"Optional modes his workflow version has","default":[],"examples":["2a23a083-b6b9-4681-9ec4-ff4ffbe85d3c"]},"parameter_extension":{"anyOf":[{"$ref":"#/components/schemas/ParameterExtension"},{"type":"null"}],"description":"Parameter extension specific for this CloWM instance"},"nextflow_version":{"$ref":"#/components/schemas/NextflowVersion","description":"The version of Nextflow this workflow version requires"}},"type":"object","required":["status","workflow_id","version","workflow_version_id","created_at","nextflow_version"],"title":"WorkflowVersion"},"WorkflowVersionStatus":{"type":"string","enum":["CREATED","DENIED","PUBLISHED","DEPRECATED"],"title":"WorkflowVersionStatus","description":"Enumeration for the possible status of a workflow version."},"WorkflowVersionStatusSchema":{"properties":{"status":{"$ref":"#/components/schemas/WorkflowVersionStatus","description":"Status of the workflow version","examples":["PUBLISHED"]}},"type":"object","required":["status"],"title":"WorkflowVersionStatusSchema"}},"securitySchemes":{"Session Token":{"type":"apiKey","description":"The JWT in this cookie is used by the website and should not be used when communicating directly with the API.","in":"cookie","name":"clowm-jwt"},"API Token":{"type":"apiKey","description":"The API token in the header is used to authenticate a user. Preferred when communication with the API directly.","in":"header","name":"X-CLOWM-TOKEN"}}}} \ No newline at end of file diff --git a/openapi-ts.config.ts b/openapi-ts.config.ts index 2773778da2e89430fb0d11191602e114b1ba7584..ed984b3f46b8c7042ed5bc652c5a2936ee49cf3a 100644 --- a/openapi-ts.config.ts +++ b/openapi-ts.config.ts @@ -8,11 +8,8 @@ export default defineConfig({ format: "prettier", path: "src/client", }, - services: { - asClass: true, - }, - schemas: false, - types: { - enums: "typescript", - }, + plugins: [ + { enums: "typescript", name: "@hey-api/types" }, + { asClass: true, name: "@hey-api/services" }, + ], }); diff --git a/package-lock.json b/package-lock.json index 751da57fae74e0a71ba2af6e4da1993d067d7152..45f04dd480706af1c62478efe89c356e60fa2c1a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,7 +35,7 @@ }, "devDependencies": { "@eslint/compat": "^1.2.0", - "@hey-api/openapi-ts": "^0.53.9", + "@hey-api/openapi-ts": "^0.54.0", "@rushstack/eslint-patch": "~1.10.0", "@tsconfig/node20": "^20.1.2", "@types/bootstrap": "~5.2.0", @@ -46,11 +46,11 @@ "@types/showdown": "~2.0.1", "@types/sortablejs": "^1.15.7", "@vitejs/plugin-vue": "~5.1.0", - "@vue/eslint-config-prettier": "~10.0.0", - "@vue/eslint-config-typescript": "~14.0.0", + "@vue/eslint-config-prettier": "~10.1.0", + "@vue/eslint-config-typescript": "~14.1.0", "@vue/tsconfig": "~0.5.0", "eslint": "~9.12.0", - "eslint-plugin-vue": "~9.29.0", + "eslint-plugin-vue": "~9.30.0", "highlight.js": "^11.9.0", "npm-run-all": "~4.1.5", "prettier": "~3.3.0", @@ -62,9 +62,9 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.0.tgz", - "integrity": "sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==", + "version": "11.7.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", + "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", "dev": true, "license": "MIT", "dependencies": { @@ -282,35 +282,35 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.670.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.670.0.tgz", - "integrity": "sha512-8Pwu1K+PgbYpXDaGKNy5hEbRH5FXHlfXJOhtV4oEDroL7ngix3ZUVWN9oIVVSDK02y1oQS1jCSEGUiUiauzb0g==", + "version": "3.685.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.685.0.tgz", + "integrity": "sha512-ClvMeQHbLhWkpxnVymo4qWS5/yZcPXjorDbSday3joCWYWCSHTO409nWd+jx6eA4MKT/EY/uJ6ZBJRFfByKLuA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.670.0", - "@aws-sdk/client-sts": "3.670.0", - "@aws-sdk/core": "3.667.0", - "@aws-sdk/credential-provider-node": "3.670.0", - "@aws-sdk/middleware-bucket-endpoint": "3.667.0", - "@aws-sdk/middleware-expect-continue": "3.667.0", - "@aws-sdk/middleware-flexible-checksums": "3.669.0", - "@aws-sdk/middleware-host-header": "3.667.0", - "@aws-sdk/middleware-location-constraint": "3.667.0", - "@aws-sdk/middleware-logger": "3.667.0", - "@aws-sdk/middleware-recursion-detection": "3.667.0", - "@aws-sdk/middleware-sdk-s3": "3.669.0", - "@aws-sdk/middleware-ssec": "3.667.0", - "@aws-sdk/middleware-user-agent": "3.669.0", - "@aws-sdk/region-config-resolver": "3.667.0", - "@aws-sdk/signature-v4-multi-region": "3.669.0", - "@aws-sdk/types": "3.667.0", - "@aws-sdk/util-endpoints": "3.667.0", - "@aws-sdk/util-user-agent-browser": "3.670.0", - "@aws-sdk/util-user-agent-node": "3.669.0", - "@aws-sdk/xml-builder": "3.662.0", + "@aws-sdk/client-sso-oidc": "3.682.0", + "@aws-sdk/client-sts": "3.682.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.682.0", + "@aws-sdk/middleware-bucket-endpoint": "3.679.0", + "@aws-sdk/middleware-expect-continue": "3.679.0", + "@aws-sdk/middleware-flexible-checksums": "3.682.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-location-constraint": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-sdk-s3": "3.685.0", + "@aws-sdk/middleware-ssec": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.682.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/signature-v4-multi-region": "3.685.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.682.0", + "@aws-sdk/xml-builder": "3.679.0", "@smithy/config-resolver": "^3.0.9", "@smithy/core": "^2.4.8", "@smithy/eventstream-serde-browser": "^3.0.10", @@ -351,23 +351,23 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.670.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.670.0.tgz", - "integrity": "sha512-J+oz6uSsDvk4pimMDnKJb1wsV216zTrejvMTIL4RhUD1QPIVVOpteTdUShcjZUIZnkcJZGI+cym/SFK0kuzTpg==", + "version": "3.682.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.682.0.tgz", + "integrity": "sha512-PYH9RFUMYLFl66HSBq4tIx6fHViMLkhJHTYJoJONpBs+Td+NwVJ895AdLtDsBIhMS0YseCbPpuyjUCJgsUrwUw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.667.0", - "@aws-sdk/middleware-host-header": "3.667.0", - "@aws-sdk/middleware-logger": "3.667.0", - "@aws-sdk/middleware-recursion-detection": "3.667.0", - "@aws-sdk/middleware-user-agent": "3.669.0", - "@aws-sdk/region-config-resolver": "3.667.0", - "@aws-sdk/types": "3.667.0", - "@aws-sdk/util-endpoints": "3.667.0", - "@aws-sdk/util-user-agent-browser": "3.670.0", - "@aws-sdk/util-user-agent-node": "3.669.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.682.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.682.0", "@smithy/config-resolver": "^3.0.9", "@smithy/core": "^2.4.8", "@smithy/fetch-http-handler": "^3.2.9", @@ -400,24 +400,24 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.670.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.670.0.tgz", - "integrity": "sha512-4qDK2L36Q4J1lfemaHHd9ZxqKRaos3STp44qPAHf/8QyX6Uk5sXgZNVO2yWM7SIEtVKwwBh/fZAsdBkGPBfZcw==", + "version": "3.682.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.682.0.tgz", + "integrity": "sha512-ZPZ7Y/r/w3nx/xpPzGSqSQsB090Xk5aZZOH+WBhTDn/pBEuim09BYXCLzvvxb7R7NnuoQdrTJiwimdJAhHl7ZQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.667.0", - "@aws-sdk/credential-provider-node": "3.670.0", - "@aws-sdk/middleware-host-header": "3.667.0", - "@aws-sdk/middleware-logger": "3.667.0", - "@aws-sdk/middleware-recursion-detection": "3.667.0", - "@aws-sdk/middleware-user-agent": "3.669.0", - "@aws-sdk/region-config-resolver": "3.667.0", - "@aws-sdk/types": "3.667.0", - "@aws-sdk/util-endpoints": "3.667.0", - "@aws-sdk/util-user-agent-browser": "3.670.0", - "@aws-sdk/util-user-agent-node": "3.669.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.682.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.682.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.682.0", "@smithy/config-resolver": "^3.0.9", "@smithy/core": "^2.4.8", "@smithy/fetch-http-handler": "^3.2.9", @@ -449,29 +449,29 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.670.0" + "@aws-sdk/client-sts": "^3.682.0" } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.670.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.670.0.tgz", - "integrity": "sha512-bExrNo8ZVWorS3cjMZKQnA2HWqDmAzcZoSN/cPVoPFNkHwdl1lzPxvcLzmhpIr48JHgKfybBjrbluDZfIYeEog==", + "version": "3.682.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.682.0.tgz", + "integrity": "sha512-xKuo4HksZ+F8m9DOfx/ZuWNhaPuqZFPwwy0xqcBT6sWH7OAuBjv/fnpOTzyQhpVTWddlf+ECtMAMrxjxuOExGQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.670.0", - "@aws-sdk/core": "3.667.0", - "@aws-sdk/credential-provider-node": "3.670.0", - "@aws-sdk/middleware-host-header": "3.667.0", - "@aws-sdk/middleware-logger": "3.667.0", - "@aws-sdk/middleware-recursion-detection": "3.667.0", - "@aws-sdk/middleware-user-agent": "3.669.0", - "@aws-sdk/region-config-resolver": "3.667.0", - "@aws-sdk/types": "3.667.0", - "@aws-sdk/util-endpoints": "3.667.0", - "@aws-sdk/util-user-agent-browser": "3.670.0", - "@aws-sdk/util-user-agent-node": "3.669.0", + "@aws-sdk/client-sso-oidc": "3.682.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.682.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.682.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.682.0", "@smithy/config-resolver": "^3.0.9", "@smithy/core": "^2.4.8", "@smithy/fetch-http-handler": "^3.2.9", @@ -504,12 +504,12 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.667.0.tgz", - "integrity": "sha512-pMcDVI7Tmdsc8R3sDv0Omj/4iRParGY+uJtAfF669WnZfDfaBQaix2Mq7+Mu08vdjqO9K3gicFvjk9S1VLmOKA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.679.0.tgz", + "integrity": "sha512-CS6PWGX8l4v/xyvX8RtXnBisdCa5+URzKd0L6GvHChype9qKUVxO/Gg6N/y43Hvg7MNWJt9FBPNWIxUB+byJwg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/core": "^2.4.8", "@smithy/node-config-provider": "^3.1.8", "@smithy/property-provider": "^3.1.7", @@ -526,13 +526,13 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.667.0.tgz", - "integrity": "sha512-zZbrkkaPc54WXm+QAnpuv0LPNfsts0HPPd+oCECGs7IQRaFsGj187cwvPg9RMWDFZqpm64MdBDoA8OQHsqzYCw==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.679.0.tgz", + "integrity": "sha512-EdlTYbzMm3G7VUNAMxr9S1nC1qUNqhKlAxFU8E7cKsAe8Bp29CD5HAs3POc56AVo9GC4yRIS+/mtlZSmrckzUA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.667.0", - "@aws-sdk/types": "3.667.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", "@smithy/property-provider": "^3.1.7", "@smithy/types": "^3.5.0", "tslib": "^2.6.2" @@ -542,13 +542,13 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.667.0.tgz", - "integrity": "sha512-sjtybFfERZWiqTY7fswBxKQLvUkiCucOWyqh3IaPo/4nE1PXRnaZCVG0+kRBPrYIxWqiVwytvZzMJy8sVZcG0A==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.679.0.tgz", + "integrity": "sha512-ZoKLubW5DqqV1/2a3TSn+9sSKg0T8SsYMt1JeirnuLJF0mCoYFUaWMyvxxKuxPoqvUsaycxKru4GkpJ10ltNBw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.667.0", - "@aws-sdk/types": "3.667.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", "@smithy/fetch-http-handler": "^3.2.9", "@smithy/node-http-handler": "^3.2.4", "@smithy/property-provider": "^3.1.7", @@ -563,18 +563,18 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.670.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.670.0.tgz", - "integrity": "sha512-TB1gacUj75leaTt2JsCTzygDSIk4ksv9uZoR7VenlgFPRktyOeT+fapwIVBeB2Qg7b9uxAY2K5XkKstDZyBEEw==", + "version": "3.682.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.682.0.tgz", + "integrity": "sha512-6eqWeHdK6EegAxqDdiCi215nT3QZPwukgWAYuVxNfJ/5m0/P7fAzF+D5kKVgByUvGJEbq/FEL8Fw7OBe64AA+g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.667.0", - "@aws-sdk/credential-provider-env": "3.667.0", - "@aws-sdk/credential-provider-http": "3.667.0", - "@aws-sdk/credential-provider-process": "3.667.0", - "@aws-sdk/credential-provider-sso": "3.670.0", - "@aws-sdk/credential-provider-web-identity": "3.667.0", - "@aws-sdk/types": "3.667.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-env": "3.679.0", + "@aws-sdk/credential-provider-http": "3.679.0", + "@aws-sdk/credential-provider-process": "3.679.0", + "@aws-sdk/credential-provider-sso": "3.682.0", + "@aws-sdk/credential-provider-web-identity": "3.679.0", + "@aws-sdk/types": "3.679.0", "@smithy/credential-provider-imds": "^3.2.4", "@smithy/property-provider": "^3.1.7", "@smithy/shared-ini-file-loader": "^3.1.8", @@ -585,22 +585,22 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.670.0" + "@aws-sdk/client-sts": "^3.682.0" } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.670.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.670.0.tgz", - "integrity": "sha512-zwNrRYzubk4CaZ7zebeDhxsm8QtNWkbGKopZPOaZSnd5uqUGRcmx4ccVRngWUK68XDP44aEUWC8iU5Pc7btpHQ==", + "version": "3.682.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.682.0.tgz", + "integrity": "sha512-HSmDqZcBVZrTctHCT9m++vdlDfJ1ARI218qmZa+TZzzOFNpKWy6QyHMEra45GB9GnkkMmV6unoDSPMuN0AqcMg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.667.0", - "@aws-sdk/credential-provider-http": "3.667.0", - "@aws-sdk/credential-provider-ini": "3.670.0", - "@aws-sdk/credential-provider-process": "3.667.0", - "@aws-sdk/credential-provider-sso": "3.670.0", - "@aws-sdk/credential-provider-web-identity": "3.667.0", - "@aws-sdk/types": "3.667.0", + "@aws-sdk/credential-provider-env": "3.679.0", + "@aws-sdk/credential-provider-http": "3.679.0", + "@aws-sdk/credential-provider-ini": "3.682.0", + "@aws-sdk/credential-provider-process": "3.679.0", + "@aws-sdk/credential-provider-sso": "3.682.0", + "@aws-sdk/credential-provider-web-identity": "3.679.0", + "@aws-sdk/types": "3.679.0", "@smithy/credential-provider-imds": "^3.2.4", "@smithy/property-provider": "^3.1.7", "@smithy/shared-ini-file-loader": "^3.1.8", @@ -612,13 +612,13 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.667.0.tgz", - "integrity": "sha512-HZHnvop32fKgsNHkdhVaul7UzQ25sEc0j9yqA4bjhtbk0ECl42kj3f1pJ+ZU/YD9ut8lMJs/vVqiOdNThVdeBw==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.679.0.tgz", + "integrity": "sha512-u/p4TV8kQ0zJWDdZD4+vdQFTMhkDEJFws040Gm113VHa/Xo1SYOjbpvqeuFoz6VmM0bLvoOWjxB9MxnSQbwKpQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.667.0", - "@aws-sdk/types": "3.667.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", "@smithy/property-provider": "^3.1.7", "@smithy/shared-ini-file-loader": "^3.1.8", "@smithy/types": "^3.5.0", @@ -629,15 +629,15 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.670.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.670.0.tgz", - "integrity": "sha512-5PkA8BOy4q57Vhe9AESoHKZ7vjRbElNPKjXA4qC01xY+DitClRFz4O3B9sMzFp0PHlz9nDVSXXKgq0yzF/nAag==", + "version": "3.682.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.682.0.tgz", + "integrity": "sha512-h7IH1VsWgV6YAJSWWV6y8uaRjGqLY3iBpGZlXuTH/c236NMLaNv+WqCBLeBxkFGUb2WeQ+FUPEJDCD69rgLIkg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.670.0", - "@aws-sdk/core": "3.667.0", - "@aws-sdk/token-providers": "3.667.0", - "@aws-sdk/types": "3.667.0", + "@aws-sdk/client-sso": "3.682.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/token-providers": "3.679.0", + "@aws-sdk/types": "3.679.0", "@smithy/property-provider": "^3.1.7", "@smithy/shared-ini-file-loader": "^3.1.8", "@smithy/types": "^3.5.0", @@ -648,13 +648,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.667.0.tgz", - "integrity": "sha512-t8CFlZMD/1p/8Cli3rvRiTJpjr/8BO64gw166AHgFZYSN2h95L2l1tcW0jpsc3PprA32nLg1iQVKYt4WGM4ugw==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.679.0.tgz", + "integrity": "sha512-a74tLccVznXCaBefWPSysUcLXYJiSkeUmQGtalNgJ1vGkE36W5l/8czFiiowdWdKWz7+x6xf0w+Kjkjlj42Ung==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.667.0", - "@aws-sdk/types": "3.667.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", "@smithy/property-provider": "^3.1.7", "@smithy/types": "^3.5.0", "tslib": "^2.6.2" @@ -663,13 +663,13 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.667.0" + "@aws-sdk/client-sts": "^3.679.0" } }, "node_modules/@aws-sdk/lib-storage": { - "version": "3.670.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.670.0.tgz", - "integrity": "sha512-uOXSyzOClpX6s4+Srtq/hLBenK/glbexUpOQfOSfVTm/Wh7oB9liAJhYi69nZgSjdqkAB4/YtPYUgPyrcLqHiw==", + "version": "3.685.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.685.0.tgz", + "integrity": "sha512-6oGVXmtSr04xzq5XVBHj3yZTWJVfhUElEER5Bg9SrdoWTFRUsjnbOzqOAhYmlrEmEoGTtnZyj7wDI2EY7iCBTQ==", "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^3.1.5", @@ -684,17 +684,17 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-s3": "^3.670.0" + "@aws-sdk/client-s3": "^3.685.0" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.667.0.tgz", - "integrity": "sha512-XGz4jMAkDoTyFdtLz7ZF+C05IAhCTC1PllpvTBaj821z/L0ilhbqVhrT/f2Buw8Id/K5A390csGXgusXyrFFjA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.679.0.tgz", + "integrity": "sha512-5EpiPhhGgnF+uJR4DzWUk6Lx3pOn9oM6JGXxeHsiynfoBfq7vHMleq+uABHHSQS+y7XzbyZ7x8tXNQlliMwOsg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", - "@aws-sdk/util-arn-parser": "3.568.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-arn-parser": "3.679.0", "@smithy/node-config-provider": "^3.1.8", "@smithy/protocol-http": "^4.1.4", "@smithy/types": "^3.5.0", @@ -706,12 +706,12 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.667.0.tgz", - "integrity": "sha512-0TiSL9S5DSG95NHGIz6qTMuV7GDKVn8tvvGSrSSZu/wXO3JaYSH0AElVpYfc4PtPRqVpEyNA7nnc7W56mMCLWQ==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.679.0.tgz", + "integrity": "sha512-nYsh9PdWrF4EahTRdXHGlNud82RPc508CNGdh1lAGfPU3tNveGfMBX3PcGBtPOse3p9ebNKRWVmUc9eXSjGvHA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/protocol-http": "^4.1.4", "@smithy/types": "^3.5.0", "tslib": "^2.6.2" @@ -721,15 +721,15 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.669.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.669.0.tgz", - "integrity": "sha512-01UQLoUzVwWMf+b+AEuwJ2lluBD+Cp8AcbyEHqvEaPdjGKHIS4BCvnY70mZYnAfRtL8R2h9tt7iI61oWU3Gjkg==", + "version": "3.682.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.682.0.tgz", + "integrity": "sha512-5u1STth6iZUtAvPDO0NJVYKUX2EYKU7v84MYYaZ3O27HphRjFqDos0keL2KTnHn/KmMD68rM3yiUareWR8hnAQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", - "@aws-sdk/core": "3.667.0", - "@aws-sdk/types": "3.667.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", "@smithy/is-array-buffer": "^3.0.0", "@smithy/node-config-provider": "^3.1.8", "@smithy/protocol-http": "^4.1.4", @@ -743,12 +743,12 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.667.0.tgz", - "integrity": "sha512-Z7fIAMQnPegs7JjAQvlOeWXwpMRfegh5eCoIP6VLJIeR6DLfYKbP35JBtt98R6DXslrN2RsbTogjbxPEDQfw1w==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.679.0.tgz", + "integrity": "sha512-y176HuQ8JRY3hGX8rQzHDSbCl9P5Ny9l16z4xmaiLo+Qfte7ee4Yr3yaAKd7GFoJ3/Mhud2XZ37fR015MfYl2w==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/protocol-http": "^4.1.4", "@smithy/types": "^3.5.0", "tslib": "^2.6.2" @@ -758,12 +758,12 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.667.0.tgz", - "integrity": "sha512-ob85H3HhT3/u5O+x0o557xGZ78vSNeSSwMaSitxdsfs2hOuoUl1uk+OeLpi1hkuJnL41FPpokV7TVII2XrFfmg==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.679.0.tgz", + "integrity": "sha512-SA1C1D3XgoKTGxyNsOqd016ONpk46xJLWDgJUd00Zb21Ox5wYCoY6aDRKiaMRW+1VfCJdezs1Do3XLyIU9KxyA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, @@ -772,12 +772,12 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.667.0.tgz", - "integrity": "sha512-PtTRNpNm/5c746jRgZCNg4X9xEJIwggkGJrF0GP9AB1ANg4pc/sF2Fvn1NtqPe9wtQ2stunJprnm5WkCHN7QiA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.679.0.tgz", + "integrity": "sha512-0vet8InEj7nvIvGKk+ch7bEF5SyZ7Us9U7YTEgXPrBNStKeRUsgwRm0ijPWWd0a3oz2okaEwXsFl7G/vI0XiEA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, @@ -786,12 +786,12 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.667.0.tgz", - "integrity": "sha512-U5glWD3ehFohzpUpopLtmqAlDurGWo2wRGPNgi4SwhWU7UDt6LS7E/UvJjqC0CUrjlzOw+my2A+Ncf+fisMhxQ==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.679.0.tgz", + "integrity": "sha512-sQoAZFsQiW/LL3DfKMYwBoGjYDEnMbA9WslWN8xneCmBAwKo6IcSksvYs23PP8XMIoBGe2I2J9BSr654XWygTQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/protocol-http": "^4.1.4", "@smithy/types": "^3.5.0", "tslib": "^2.6.2" @@ -801,14 +801,14 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.669.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.669.0.tgz", - "integrity": "sha512-b2QUQ7DcIcVCUFhvmFEDI90BemvQhO0ntIajllLqQSy88PSNdLDCVx5mIzfxaaK/1tdY/UsEDRRm1kMQHJDQpg==", + "version": "3.685.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.685.0.tgz", + "integrity": "sha512-C4w92b3A99NbghrA2Ssw6y1RbDF3I3Bgzi2Izh0pXgyIoDiX0xs9bUs/FGYLK4uepYr78DAZY8DwEpzjWIXkSA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.667.0", - "@aws-sdk/types": "3.667.0", - "@aws-sdk/util-arn-parser": "3.568.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-arn-parser": "3.679.0", "@smithy/core": "^2.4.8", "@smithy/node-config-provider": "^3.1.8", "@smithy/protocol-http": "^4.1.4", @@ -826,12 +826,12 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.667.0.tgz", - "integrity": "sha512-1wuAUZIkmZIvOmGg5qNQU821CGFHhkuKioxXgNh0DpUxZ9+AeiV7yorJr+bqkb2KBFv1i1TnzGRecvKf/KvZIQ==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.679.0.tgz", + "integrity": "sha512-4GNUxXbs1M71uFHRiCAZtN0/g23ogI9YjMe5isAuYMHXwDB3MhqF7usKf954mBP6tplvN44vYlbJ84faaLrTtg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, @@ -840,14 +840,14 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.669.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.669.0.tgz", - "integrity": "sha512-K8ScPi45zjJrj5Y2gRqVsvKKQCQbvQBfYGcBw9ZOx9TTavH80bOCBjWg/GFnvs4f37tqVc1wMN2oGvcTF6HveQ==", + "version": "3.682.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.682.0.tgz", + "integrity": "sha512-7TyvYR9HdGH1/Nq0eeApUTM4izB6rExiw87khVYuJwZHr6FmvIL1FsOVFro/4WlXa0lg4LiYOm/8H8dHv+fXTg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.667.0", - "@aws-sdk/types": "3.667.0", - "@aws-sdk/util-endpoints": "3.667.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", "@smithy/core": "^2.4.8", "@smithy/protocol-http": "^4.1.4", "@smithy/types": "^3.5.0", @@ -858,12 +858,12 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.667.0.tgz", - "integrity": "sha512-iNr+JhhA902JMKHG9IwT9YdaEx6KGl6vjAL5BRNeOjfj4cZYMog6Lz/IlfOAltMtT0w88DAHDEFrBd2uO0l2eg==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.679.0.tgz", + "integrity": "sha512-Ybx54P8Tg6KKq5ck7uwdjiKif7n/8g1x+V0V9uTjBjRWqaIgiqzXwKWoPj6NCNkE7tJNtqI4JrNxp/3S3HvmRw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/node-config-provider": "^3.1.8", "@smithy/types": "^3.5.0", "@smithy/util-config-provider": "^3.0.0", @@ -875,14 +875,14 @@ } }, "node_modules/@aws-sdk/s3-request-presigner": { - "version": "3.670.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.670.0.tgz", - "integrity": "sha512-cTTQWJhmCRNH9NZbTqAhx3aXmC+p7gYzj7kNOyzdTA6D4jJOQZekxFFEQ0T2BPFYPR9Elk77W0yK+Nv9wMVD4g==", + "version": "3.685.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.685.0.tgz", + "integrity": "sha512-OTFQRXlAff/tRE2GfhqAgVaWkRSHUzj9ebvdd3979zcIELHY3kWBJ/XbefElXg1lhsumKdZl/gLpeA76GyQDPQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/signature-v4-multi-region": "3.669.0", - "@aws-sdk/types": "3.667.0", - "@aws-sdk/util-format-url": "3.667.0", + "@aws-sdk/signature-v4-multi-region": "3.685.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-format-url": "3.679.0", "@smithy/middleware-endpoint": "^3.1.4", "@smithy/protocol-http": "^4.1.4", "@smithy/smithy-client": "^3.4.0", @@ -894,13 +894,13 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.669.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.669.0.tgz", - "integrity": "sha512-TVwlWAxfBHnFjnfTBQWUhzVJzjwVhkq1+KR0JZV7JrfqeyBOdZjAaV9ie3VNY9HUouecq1fDuKaSwe4JiWQsHg==", + "version": "3.685.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.685.0.tgz", + "integrity": "sha512-IHLwuAZGqfUWVrNqw0ugnBa7iL8uBP4x6A7bfBDXRXWCWjUCed/1/D//0lKDHwpFkV74fGW6KoBacnWSUlXmwA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.669.0", - "@aws-sdk/types": "3.667.0", + "@aws-sdk/middleware-sdk-s3": "3.685.0", + "@aws-sdk/types": "3.679.0", "@smithy/protocol-http": "^4.1.4", "@smithy/signature-v4": "^4.2.0", "@smithy/types": "^3.5.0", @@ -911,12 +911,12 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.667.0.tgz", - "integrity": "sha512-ZecJlG8p6D4UTYlBHwOWX6nknVtw/OBJ3yPXTSajBjhUlj9lE2xvejI8gl4rqkyLXk7z3bki+KR4tATbMaM9yg==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.679.0.tgz", + "integrity": "sha512-1/+Zso/x2jqgutKixYFQEGli0FELTgah6bm7aB+m2FAWH4Hz7+iMUsazg6nSWm714sG9G3h5u42Dmpvi9X6/hA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/property-provider": "^3.1.7", "@smithy/shared-ini-file-loader": "^3.1.8", "@smithy/types": "^3.5.0", @@ -926,13 +926,13 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sso-oidc": "^3.667.0" + "@aws-sdk/client-sso-oidc": "^3.679.0" } }, "node_modules/@aws-sdk/types": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.667.0.tgz", - "integrity": "sha512-gYq0xCsqFfQaSL/yT1Gl1vIUjtsg7d7RhnUfsXaHt8xTxOKRTdH9GjbesBjXOzgOvB0W0vfssfreSNGFlOOMJg==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.679.0.tgz", + "integrity": "sha512-NwVq8YvInxQdJ47+zz4fH3BRRLC6lL+WLkvr242PVBbUOLRyK/lkwHlfiKUoeVIMyK5NF+up6TRg71t/8Bny6Q==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.5.0", @@ -943,9 +943,9 @@ } }, "node_modules/@aws-sdk/util-arn-parser": { - "version": "3.568.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz", - "integrity": "sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.679.0.tgz", + "integrity": "sha512-CwzEbU8R8rq9bqUFryO50RFBlkfufV9UfMArHPWlo+lmsC+NlSluHQALoj6Jkq3zf5ppn1CN0c1DDLrEqdQUXg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -955,12 +955,12 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.667.0.tgz", - "integrity": "sha512-X22SYDAuQJWnkF1/q17pkX3nGw5XMD9YEUbmt87vUnRq7iyJ3JOpl6UKOBeUBaL838wA5yzdbinmCITJ/VZ1QA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.679.0.tgz", + "integrity": "sha512-YL6s4Y/1zC45OvddvgE139fjeWSKKPgLlnfrvhVL7alNyY9n7beR4uhoDpNrt5mI6sn9qiBF17790o+xLAXjjg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/types": "^3.5.0", "@smithy/util-endpoints": "^2.1.3", "tslib": "^2.6.2" @@ -970,12 +970,12 @@ } }, "node_modules/@aws-sdk/util-format-url": { - "version": "3.667.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.667.0.tgz", - "integrity": "sha512-S0D731SnEPnTfbJ/Dldw5dDrOc8uipK6NLXHDs2xIq0t61iwZLMEiN8yWCs2wAZVVJKpldUM1THLaaufU9SSSA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.679.0.tgz", + "integrity": "sha512-pqV1b/hJ/kumtF8AwObJ7bsGgs/2zuAdZtalSD8Pu4jdjOji3IBwP79giAHyhVwoXaMjkpG3mG4ldn9CVtzZJA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/querystring-builder": "^3.0.7", "@smithy/types": "^3.5.0", "tslib": "^2.6.2" @@ -985,9 +985,9 @@ } }, "node_modules/@aws-sdk/util-locate-window": { - "version": "3.568.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz", - "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.679.0.tgz", + "integrity": "sha512-zKTd48/ZWrCplkXpYDABI74rQlbR0DNHs8nH95htfSLj9/mWRSwaGptoxwcihaq/77vi/fl2X3y0a1Bo8bt7RA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -997,25 +997,25 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.670.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.670.0.tgz", - "integrity": "sha512-iRynWWazqEcCKwGMcQcywKTDLdLvqts1Yx474U64I9OKQXXwhOwhXbF5CAPSRta86lkVNAVYJa/0Bsv45pNn1A==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.679.0.tgz", + "integrity": "sha512-CusSm2bTBG1kFypcsqU8COhnYc6zltobsqs3nRrvYqYaOqtMnuE46K4XTWpnzKgwDejgZGOE+WYyprtAxrPvmQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.667.0", + "@aws-sdk/types": "3.679.0", "@smithy/types": "^3.5.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.669.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.669.0.tgz", - "integrity": "sha512-9jxCYrgggy2xd44ZASqI7AMiRVaSiFp+06Kg8BQSU0ijKpBJlwcsqIS8pDT/n6LxuOw2eV5ipvM2C0r1iKzrGA==", + "version": "3.682.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.682.0.tgz", + "integrity": "sha512-so5s+j0gPoTS0HM4HPL+G0ajk0T6cQAg8JXzRgvyiQAxqie+zGCZAV3VuVeMNWMVbzsgZl0pYZaatPFTLG/AxA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.669.0", - "@aws-sdk/types": "3.667.0", + "@aws-sdk/middleware-user-agent": "3.682.0", + "@aws-sdk/types": "3.679.0", "@smithy/node-config-provider": "^3.1.8", "@smithy/types": "^3.5.0", "tslib": "^2.6.2" @@ -1033,9 +1033,9 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.662.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.662.0.tgz", - "integrity": "sha512-ikLkXn0igUpnJu2mCZjklvmcDGWT9OaLRv3JyC/cRkTaaSrblPjPM7KKsltxdMTLQ+v7fjCN0TsJpxphMfaOPA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.679.0.tgz", + "integrity": "sha512-nPmhVZb39ty5bcQ7mAwtjezBcsBqTYZ9A2D9v/lE92KCLdu5RhSkPH7O71ZqbZx1mUSg9fAOxHPiG79U5VlpLQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.5.0", @@ -1046,30 +1046,30 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", - "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", - "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", - "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.8" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -1079,14 +1079,13 @@ } }, "node_modules/@babel/types": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", - "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1484,25 +1483,28 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -1510,9 +1512,9 @@ } }, "node_modules/@eslint/compat": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.0.tgz", - "integrity": "sha512-CkPWddN7J9JPrQedEr2X7AjK9y1jaMJtxZ4A/+jTMFA2+n5BWhcKHW/EbJyARqg2zzQfgtWUtVmG3hrG6+nGpg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.2.tgz", + "integrity": "sha512-jhgiIrsw+tRfcBQ4BFl2C3vCrIUw2trCY0cnDvGZpwTtKCEDmZhAtMfrEUP/KpnwM6PrO0T+Ltm+ccW74olG3Q==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1669,9 +1671,9 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", - "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz", + "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1703,13 +1705,13 @@ } }, "node_modules/@hey-api/openapi-ts": { - "version": "0.53.11", - "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.53.11.tgz", - "integrity": "sha512-PaO+o0jDhfHVS5SjtonP5CzP/NYoW8dVZUn8WthSgzpgPts8AiWYXplOyk5uEnM4ZxbkZbeTiREwaNLnJmXlTQ==", + "version": "0.54.2", + "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.54.2.tgz", + "integrity": "sha512-hU/Xf8D5yOSA5JsOkM0x4Sz9jChI0v4JMkkk3sy1Tc3DXbbr+s3uyJngvYoimXOq6ljF/9QSCtrk7z5LXxd64g==", "dev": true, "license": "FSL-1.1-MIT", "dependencies": { - "@apidevtools/json-schema-ref-parser": "11.7.0", + "@apidevtools/json-schema-ref-parser": "11.7.2", "c12": "2.0.1", "commander": "12.1.0", "handlebars": "4.7.8" @@ -1728,9 +1730,9 @@ } }, "node_modules/@humanfs/core": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", - "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1738,13 +1740,13 @@ } }, "node_modules/@humanfs/node": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", - "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanfs/core": "^0.19.0", + "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" }, "engines": { @@ -1837,11 +1839,13 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", - "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", "dev": true, + "hasInstallScript": true, "license": "MIT", + "optional": true, "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -1856,24 +1860,25 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.4.1", - "@parcel/watcher-darwin-arm64": "2.4.1", - "@parcel/watcher-darwin-x64": "2.4.1", - "@parcel/watcher-freebsd-x64": "2.4.1", - "@parcel/watcher-linux-arm-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-musl": "2.4.1", - "@parcel/watcher-linux-x64-glibc": "2.4.1", - "@parcel/watcher-linux-x64-musl": "2.4.1", - "@parcel/watcher-win32-arm64": "2.4.1", - "@parcel/watcher-win32-ia32": "2.4.1", - "@parcel/watcher-win32-x64": "2.4.1" + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", - "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", + "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", "cpu": [ "arm64" ], @@ -1892,9 +1897,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", - "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", "cpu": [ "arm64" ], @@ -1913,9 +1918,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", - "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", + "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", "cpu": [ "x64" ], @@ -1934,9 +1939,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", - "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", + "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", "cpu": [ "x64" ], @@ -1955,9 +1960,30 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", - "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", + "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", + "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", "cpu": [ "arm" ], @@ -1976,9 +2002,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", - "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", + "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", "cpu": [ "arm64" ], @@ -1997,9 +2023,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", - "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", + "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", "cpu": [ "arm64" ], @@ -2018,9 +2044,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", - "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", + "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", "cpu": [ "x64" ], @@ -2039,9 +2065,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", - "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", + "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", "cpu": [ "x64" ], @@ -2060,9 +2086,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", - "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", + "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", "cpu": [ "arm64" ], @@ -2081,9 +2107,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", - "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", "cpu": [ "ia32" ], @@ -2102,9 +2128,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", - "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", "cpu": [ "x64" ], @@ -2169,15 +2195,15 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz", - "integrity": "sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", + "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -2191,10 +2217,23 @@ } } }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.3.tgz", + "integrity": "sha512-ufb2CH2KfBWPJok95frEZZ82LtDl0A6QKTa8MoM+cWwDZvVGl5/jNb79pIhRvAalUu+7LD91VYR0nwRD799HkQ==", "cpu": [ "arm" ], @@ -2206,9 +2245,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.3.tgz", + "integrity": "sha512-iAHpft/eQk9vkWIV5t22V77d90CRofgR2006UiCjHcHJFVI1E0oBkQIAbz+pLtthFw3hWEmVB4ilxGyBf48i2Q==", "cpu": [ "arm64" ], @@ -2220,9 +2259,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.3.tgz", + "integrity": "sha512-QPW2YmkWLlvqmOa2OwrfqLJqkHm7kJCIMq9kOz40Zo9Ipi40kf9ONG5Sz76zszrmIZZ4hgRIkez69YnTHgEz1w==", "cpu": [ "arm64" ], @@ -2234,9 +2273,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.3.tgz", + "integrity": "sha512-KO0pN5x3+uZm1ZXeIfDqwcvnQ9UEGN8JX5ufhmgH5Lz4ujjZMAnxQygZAVGemFWn+ZZC0FQopruV4lqmGMshow==", "cpu": [ "x64" ], @@ -2247,10 +2286,38 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.3.tgz", + "integrity": "sha512-CsC+ZdIiZCZbBI+aRlWpYJMSWvVssPuWqrDy/zi9YfnatKKSLFCe6fjna1grHuo/nVaHG+kiglpRhyBQYRTK4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.3.tgz", + "integrity": "sha512-F0nqiLThcfKvRQhZEzMIXOQG4EeX61im61VYL1jo4eBxv4aZRmpin6crnBJQ/nWnCsjH5F6J3W6Stdm0mBNqBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.3.tgz", + "integrity": "sha512-KRSFHyE/RdxQ1CSeOIBVIAxStFC/hnBgVcaiCkQaVC+EYDtTe4X7z5tBkFyRoBgUGtB6Xg6t9t2kulnX6wJc6A==", "cpu": [ "arm" ], @@ -2262,9 +2329,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.3.tgz", + "integrity": "sha512-h6Q8MT+e05zP5BxEKz0vi0DhthLdrNEnspdLzkoFqGwnmOzakEHSlXfVyA4HJ322QtFy7biUAVFPvIDEDQa6rw==", "cpu": [ "arm" ], @@ -2276,9 +2343,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.3.tgz", + "integrity": "sha512-fKElSyXhXIJ9pqiYRqisfirIo2Z5pTTve5K438URf08fsypXrEkVmShkSfM8GJ1aUyvjakT+fn2W7Czlpd/0FQ==", "cpu": [ "arm64" ], @@ -2290,9 +2357,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.3.tgz", + "integrity": "sha512-YlddZSUk8G0px9/+V9PVilVDC6ydMz7WquxozToozSnfFK6wa6ne1ATUjUvjin09jp34p84milxlY5ikueoenw==", "cpu": [ "arm64" ], @@ -2304,9 +2371,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.3.tgz", + "integrity": "sha512-yNaWw+GAO8JjVx3s3cMeG5Esz1cKVzz8PkTJSfYzE5u7A+NvGmbVFEHP+BikTIyYWuz0+DX9kaA3pH9Sqxp69g==", "cpu": [ "ppc64" ], @@ -2318,9 +2385,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.3.tgz", + "integrity": "sha512-lWKNQfsbpv14ZCtM/HkjCTm4oWTKTfxPmr7iPfp3AHSqyoTz5AgLemYkWLwOBWc+XxBbrU9SCokZP0WlBZM9lA==", "cpu": [ "riscv64" ], @@ -2332,9 +2399,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.3.tgz", + "integrity": "sha512-HoojGXTC2CgCcq0Woc/dn12wQUlkNyfH0I1ABK4Ni9YXyFQa86Fkt2Q0nqgLfbhkyfQ6003i3qQk9pLh/SpAYw==", "cpu": [ "s390x" ], @@ -2346,9 +2413,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.3.tgz", + "integrity": "sha512-mnEOh4iE4USSccBOtcrjF5nj+5/zm6NcNhbSEfR3Ot0pxBwvEn5QVUXcuOwwPkapDtGZ6pT02xLoPaNv06w7KQ==", "cpu": [ "x64" ], @@ -2360,9 +2427,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.3.tgz", + "integrity": "sha512-rMTzawBPimBQkG9NKpNHvquIUTQPzrnPxPbCY1Xt+mFkW7pshvyIS5kYgcf74goxXOQk0CP3EoOC1zcEezKXhw==", "cpu": [ "x64" ], @@ -2374,9 +2441,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.3.tgz", + "integrity": "sha512-2lg1CE305xNvnH3SyiKwPVsTVLCg4TmNCF1z7PSHX2uZY2VbUpdkgAllVoISD7JO7zu+YynpWNSKAtOrX3AiuA==", "cpu": [ "arm64" ], @@ -2388,9 +2455,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.3.tgz", + "integrity": "sha512-9SjYp1sPyxJsPWuhOCX6F4jUMXGbVVd5obVpoVEi8ClZqo52ViZewA6eFz85y8ezuOA+uJMP5A5zo6Oz4S5rVQ==", "cpu": [ "ia32" ], @@ -2402,9 +2469,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.3.tgz", + "integrity": "sha512-HGZgRFFYrMrP3TJlq58nR1xy8zHKId25vhmm5S9jETEfDf6xybPxsavFTJaufe2zgOGYJBskGlj49CwtEuFhWQ==", "cpu": [ "x64" ], @@ -2423,12 +2490,12 @@ "license": "MIT" }, "node_modules/@smithy/abort-controller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.5.tgz", - "integrity": "sha512-DhNPnqTqPoG8aZ5dWkFOgsuY+i0GQ3CI6hMmvCoduNsnU9gUZWZBwGfDQsTTB7NvFPkom1df7jMIJWU90kuXXg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.6.tgz", + "integrity": "sha512-0XuhuHQlEqbNQZp7QxxrFTdVWdwxch4vjxYgfInF91hZFkPxf9QDrdQka0KfxFMPqLNzSw0b95uGTrLliQUavQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2436,18 +2503,18 @@ } }, "node_modules/@smithy/chunked-blob-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz", - "integrity": "sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-4.0.0.tgz", + "integrity": "sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" } }, "node_modules/@smithy/chunked-blob-reader-native": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz", - "integrity": "sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.1.tgz", + "integrity": "sha512-VEYtPvh5rs/xlyqpm5NRnfYLZn+q0SRPELbvBV+C/G7IQ+ouTuo+NKKa3ShG5OaFR8NYVMXls9hPYLTvIKKDrQ==", "license": "Apache-2.0", "dependencies": { "@smithy/util-base64": "^3.0.0", @@ -2455,15 +2522,15 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.9.tgz", - "integrity": "sha512-5d9oBf40qC7n2xUoHmntKLdqsyTMMo/r49+eqSIjJ73eDfEtljAxEhzIQ3bkgXJtR3xiv7YzMT/3FF3ORkjWdg==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.10.tgz", + "integrity": "sha512-Uh0Sz9gdUuz538nvkPiyv1DZRX9+D15EKDtnQP5rYVAzM/dnYk3P8cg73jcxyOitPgT3mE3OVj7ky7sibzHWkw==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/types": "^3.6.0", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.7", + "@smithy/util-middleware": "^3.0.8", "tslib": "^2.6.2" }, "engines": { @@ -2471,19 +2538,17 @@ } }, "node_modules/@smithy/core": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.4.8.tgz", - "integrity": "sha512-x4qWk7p/a4dcf7Vxb2MODIf4OIcqNbK182WxRvZ/3oKPrf/6Fdic5sSElhO1UtXpWKBazWfqg0ZEK9xN1DsuHA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.1.tgz", + "integrity": "sha512-DujtuDA7BGEKExJ05W5OdxCoyekcKT3Rhg1ZGeiUWaz2BJIWXjZmsG/DIP4W48GHno7AQwRsaCb8NcBgH3QZpg==", "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-endpoint": "^3.1.4", - "@smithy/middleware-retry": "^3.0.23", - "@smithy/middleware-serde": "^3.0.7", - "@smithy/protocol-http": "^4.1.4", - "@smithy/smithy-client": "^3.4.0", - "@smithy/types": "^3.5.0", + "@smithy/middleware-serde": "^3.0.8", + "@smithy/protocol-http": "^4.1.5", + "@smithy/types": "^3.6.0", "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-middleware": "^3.0.7", + "@smithy/util-middleware": "^3.0.8", + "@smithy/util-stream": "^3.2.1", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -2492,15 +2557,15 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.4.tgz", - "integrity": "sha512-S9bb0EIokfYEuar4kEbLta+ivlKCWOCFsLZuilkNy9i0uEUEHSi47IFLPaxqqCl+0ftKmcOTHayY5nQhAuq7+w==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.5.tgz", + "integrity": "sha512-4FTQGAsuwqTzVMmiRVTn0RR9GrbRfkP0wfu/tXWVHd2LgNpTY0uglQpIScXK4NaEyXbB3JmZt8gfVqO50lP8wg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.8", - "@smithy/property-provider": "^3.1.7", - "@smithy/types": "^3.5.0", - "@smithy/url-parser": "^3.0.7", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/property-provider": "^3.1.8", + "@smithy/types": "^3.6.0", + "@smithy/url-parser": "^3.0.8", "tslib": "^2.6.2" }, "engines": { @@ -2508,25 +2573,25 @@ } }, "node_modules/@smithy/eventstream-codec": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.6.tgz", - "integrity": "sha512-SBiOYPBH+5wOyPS7lfI150ePfGLhnp/eTu5RnV9xvhGvRiKfnl6HzRK9wehBph+il8FxS9KTeadx7Rcmf1GLPQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.7.tgz", + "integrity": "sha512-kVSXScIiRN7q+s1x7BrQtZ1Aa9hvvP9FeCqCdBxv37GimIHgBCOnZ5Ip80HLt0DhnAKpiobFdGqTFgbaJNrazA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "@smithy/util-hex-encoding": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/eventstream-serde-browser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.10.tgz", - "integrity": "sha512-1i9aMY6Pl/SmA6NjvidxnfBLHMPzhKu2BP148pEt5VwhMdmXn36PE2kWKGa9Hj8b0XGtCTRucpCncylevCtI7g==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.11.tgz", + "integrity": "sha512-Pd1Wnq3CQ/v2SxRifDUihvpXzirJYbbtXfEnnLV/z0OGCTx/btVX74P86IgrZkjOydOASBGXdPpupYQI+iO/6A==", "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.9", - "@smithy/types": "^3.5.0", + "@smithy/eventstream-serde-universal": "^3.0.10", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2534,12 +2599,12 @@ } }, "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.7.tgz", - "integrity": "sha512-eVzhGQBPEqXXYHvIUku0jMTxd4gDvenRzUQPTmKVWdRvp9JUCKrbAXGQRYiGxUYq9+cqQckRm0wq3kTWnNtDhw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.8.tgz", + "integrity": "sha512-zkFIG2i1BLbfoGQnf1qEeMqX0h5qAznzaZmMVNnvPZz9J5AWBPkOMckZWPedGUPcVITacwIdQXoPcdIQq5FRcg==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2547,13 +2612,13 @@ } }, "node_modules/@smithy/eventstream-serde-node": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.9.tgz", - "integrity": "sha512-JE0Guqvt0xsmfQ5y1EI342/qtJqznBv8cJqkHZV10PwC8GWGU5KNgFbQnsVCcX+xF+qIqwwfRmeWoJCjuOLmng==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.10.tgz", + "integrity": "sha512-hjpU1tIsJ9qpcoZq9zGHBJPBOeBGYt+n8vfhDwnITPhEre6APrvqq/y3XMDEGUT2cWQ4ramNqBPRbx3qn55rhw==", "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.9", - "@smithy/types": "^3.5.0", + "@smithy/eventstream-serde-universal": "^3.0.10", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2561,13 +2626,13 @@ } }, "node_modules/@smithy/eventstream-serde-universal": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.9.tgz", - "integrity": "sha512-bydfgSisfepCufw9kCEnWRxqxJFzX/o8ysXWv+W9F2FIyiaEwZ/D8bBKINbh4ONz3i05QJ1xE7A5OKYvgJsXaw==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.10.tgz", + "integrity": "sha512-ewG1GHbbqsFZ4asaq40KmxCmXO+AFSM1b+DcO2C03dyJj/ZH71CiTg853FSE/3SHK9q3jiYQIFjlGSwfxQ9kww==", "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-codec": "^3.1.6", - "@smithy/types": "^3.5.0", + "@smithy/eventstream-codec": "^3.1.7", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2588,24 +2653,24 @@ } }, "node_modules/@smithy/hash-blob-browser": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.6.tgz", - "integrity": "sha512-BKNcMIaeZ9lB67sgo88iCF4YB35KT8X2dNJ8DqrtZNTgN6tUDYBKThzfGtos/mnZkGkW91AYHisESHmSiYQmKw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.7.tgz", + "integrity": "sha512-4yNlxVNJifPM5ThaA5HKnHkn7JhctFUHvcaz6YXxHlYOSIrzI6VKQPTN8Gs1iN5nqq9iFcwIR9THqchUCouIfg==", "license": "Apache-2.0", "dependencies": { - "@smithy/chunked-blob-reader": "^3.0.0", - "@smithy/chunked-blob-reader-native": "^3.0.0", - "@smithy/types": "^3.5.0", + "@smithy/chunked-blob-reader": "^4.0.0", + "@smithy/chunked-blob-reader-native": "^3.0.1", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/hash-node": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.7.tgz", - "integrity": "sha512-SAGHN+QkrwcHFjfWzs/czX94ZEjPJ0CrWJS3M43WswDXVEuP4AVy9gJ3+AF6JQHZD13bojmuf/Ap/ItDeZ+Qfw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.8.tgz", + "integrity": "sha512-tlNQYbfpWXHimHqrvgo14DrMAgUBua/cNoz9fMYcDmYej7MAmUcjav/QKQbFc3NrcPxeJ7QClER4tWZmfwoPng==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -2615,12 +2680,12 @@ } }, "node_modules/@smithy/hash-stream-node": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.6.tgz", - "integrity": "sha512-sFSSt7cmCpFWZPfVx7k80Bgb1K2VJ27VmMxH8X+dDhp7Wv8IBgID4K2VK5ehMJROF8hQgcj4WywnkHIwX/xlwQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.7.tgz", + "integrity": "sha512-xMAsvJ3hLG63lsBVi1Hl6BBSfhd8/Qnp8fC06kjOpJvyyCEXdwHITa5Kvdsk6gaAXLhbZMhQMIGvgUbfnJDP6Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -2629,12 +2694,12 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.7.tgz", - "integrity": "sha512-Bq00GsAhHeYSuZX8Kpu4sbI9agH2BNYnqUmmbTGWOhki9NVsWn2jFr896vvoTMH8KAjNX/ErC/8t5QHuEXG+IA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.8.tgz", + "integrity": "sha512-7Qynk6NWtTQhnGTTZwks++nJhQ1O54Mzi7fz4PqZOiYXb4Z1Flpb2yRvdALoggTS8xjtohWUM+RygOtB30YL3Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" } }, @@ -2651,24 +2716,24 @@ } }, "node_modules/@smithy/md5-js": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.7.tgz", - "integrity": "sha512-+wco9IN9uOW4tNGkZIqTR6IXyfO7Z8A+IOq82QCRn/f/xcmt7H1fXwmQVbfDSvbeFwfNnhv7s+u0G9PzPG6o2w==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.8.tgz", + "integrity": "sha512-LwApfTK0OJ/tCyNUXqnWCKoE2b4rDSr4BJlDAVCkiWYeHESr+y+d5zlAanuLW6fnitVJRD/7d9/kN/ZM9Su4mA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/middleware-content-length": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.9.tgz", - "integrity": "sha512-t97PidoGElF9hTtLCrof32wfWMqC5g2SEJNxaVH3NjlatuNGsdxXRYO/t+RPnxA15RpYiS0f+zG7FuE2DeGgjA==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.10.tgz", + "integrity": "sha512-T4dIdCs1d/+/qMpwhJ1DzOhxCZjZHbHazEPJWdB4GDi2HjIZllVzeBEcdJUN0fomV8DURsgOyrbEUzg3vzTaOg==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^4.1.4", - "@smithy/types": "^3.5.0", + "@smithy/protocol-http": "^4.1.5", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2676,17 +2741,18 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.4.tgz", - "integrity": "sha512-/ChcVHekAyzUbyPRI8CzPPLj6y8QRAfJngWcLMgsWxKVzw/RzBV69mSOzJYDD3pRwushA1+5tHtPF8fjmzBnrQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.1.tgz", + "integrity": "sha512-wWO3xYmFm6WRW8VsEJ5oU6h7aosFXfszlz3Dj176pTij6o21oZnzkCLzShfmRaaCHDkBXWBdO0c4sQAvLFP6zA==", "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-serde": "^3.0.7", - "@smithy/node-config-provider": "^3.1.8", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", - "@smithy/url-parser": "^3.0.7", - "@smithy/util-middleware": "^3.0.7", + "@smithy/core": "^2.5.1", + "@smithy/middleware-serde": "^3.0.8", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", + "@smithy/url-parser": "^3.0.8", + "@smithy/util-middleware": "^3.0.8", "tslib": "^2.6.2" }, "engines": { @@ -2694,18 +2760,18 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.23.tgz", - "integrity": "sha512-x9PbGXxkcXIpm6L26qRSCC+eaYcHwybRmqU8LO/WM2RRlW0g8lz6FIiKbKgGvHuoK3dLZRiQVSQJveiCzwnA5A==", + "version": "3.0.25", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.25.tgz", + "integrity": "sha512-m1F70cPaMBML4HiTgCw5I+jFNtjgz5z5UdGnUbG37vw6kh4UvizFYjqJGHvicfgKMkDL6mXwyPp5mhZg02g5sg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.8", - "@smithy/protocol-http": "^4.1.4", - "@smithy/service-error-classification": "^3.0.7", - "@smithy/smithy-client": "^3.4.0", - "@smithy/types": "^3.5.0", - "@smithy/util-middleware": "^3.0.7", - "@smithy/util-retry": "^3.0.7", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/protocol-http": "^4.1.5", + "@smithy/service-error-classification": "^3.0.8", + "@smithy/smithy-client": "^3.4.2", + "@smithy/types": "^3.6.0", + "@smithy/util-middleware": "^3.0.8", + "@smithy/util-retry": "^3.0.8", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -2714,12 +2780,12 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.7.tgz", - "integrity": "sha512-VytaagsQqtH2OugzVTq4qvjkLNbWehHfGcGr0JLJmlDRrNCeZoWkWsSOw1nhS/4hyUUWF/TLGGml4X/OnEep5g==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.8.tgz", + "integrity": "sha512-Xg2jK9Wc/1g/MBMP/EUn2DLspN8LNt+GMe7cgF+Ty3vl+Zvu+VeZU5nmhveU+H8pxyTsjrAkci8NqY6OuvZnjA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2727,12 +2793,12 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.7.tgz", - "integrity": "sha512-EyTbMCdqS1DoeQsO4gI7z2Gzq1MoRFAeS8GkFYIwbedB7Lp5zlLHJdg+56tllIIG5Hnf9ZWX48YKSHlsKvugGA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.8.tgz", + "integrity": "sha512-d7ZuwvYgp1+3682Nx0MD3D/HtkmZd49N3JUndYWQXfRZrYEnCWYc8BHcNmVsPAp9gKvlurdg/mubE6b/rPS9MA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2740,14 +2806,14 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2755,15 +2821,15 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.2.4.tgz", - "integrity": "sha512-49reY3+JgLMFNm7uTAKBWiKCA6XSvkNp9FqhVmusm2jpVnHORYFeFZ704LShtqWfjZW/nhX+7Iexyb6zQfXYIQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.2.5.tgz", + "integrity": "sha512-PkOwPNeKdvX/jCpn0A8n9/TyoxjGZB8WVoJmm9YzsnAgggTj4CrjpRHlTQw7dlLZ320n1mY1y+nTRUDViKi/3w==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^3.1.5", - "@smithy/protocol-http": "^4.1.4", - "@smithy/querystring-builder": "^3.0.7", - "@smithy/types": "^3.5.0", + "@smithy/abort-controller": "^3.1.6", + "@smithy/protocol-http": "^4.1.5", + "@smithy/querystring-builder": "^3.0.8", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2771,12 +2837,12 @@ } }, "node_modules/@smithy/property-provider": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.7.tgz", - "integrity": "sha512-QfzLi1GPMisY7bAM5hOUqBdGYnY5S2JAlr201pghksrQv139f8iiiMalXtjczIP5f6owxFn3MINLNUNvUkgtPw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.8.tgz", + "integrity": "sha512-ukNUyo6rHmusG64lmkjFeXemwYuKge1BJ8CtpVKmrxQxc6rhUX0vebcptFA9MmrGsnLhwnnqeH83VTU9hwOpjA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2784,12 +2850,12 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.4.tgz", - "integrity": "sha512-MlWK8eqj0JlpZBnWmjQLqmFp71Ug00P+m72/1xQB3YByXD4zZ+y9N4hYrR0EDmrUCZIkyATWHOXFgtavwGDTzQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.5.tgz", + "integrity": "sha512-hsjtwpIemmCkm3ZV5fd/T0bPIugW1gJXwZ/hpuVubt2hEUApIoUTrf6qIdh9MAWlw0vjMrA1ztJLAwtNaZogvg==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2797,12 +2863,12 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.7.tgz", - "integrity": "sha512-65RXGZZ20rzqqxTsChdqSpbhA6tdt5IFNgG6o7e1lnPVLCe6TNWQq4rTl4N87hTDD8mV4IxJJnvyE7brbnRkQw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.8.tgz", + "integrity": "sha512-btYxGVqFUARbUrN6VhL9c3dnSviIwBYD9Rz1jHuN1hgh28Fpv2xjU1HeCeDJX68xctz7r4l1PBnFhGg1WBBPuA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "@smithy/util-uri-escape": "^3.0.0", "tslib": "^2.6.2" }, @@ -2811,12 +2877,12 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.7.tgz", - "integrity": "sha512-Fouw4KJVWqqUVIu1gZW8BH2HakwLz6dvdrAhXeXfeymOBrZw+hcqaWs+cS1AZPVp4nlbeIujYrKA921ZW2WMPA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.8.tgz", + "integrity": "sha512-BtEk3FG7Ks64GAbt+JnKqwuobJNX8VmFLBsKIwWr1D60T426fGrV2L3YS5siOcUhhp6/Y6yhBw1PSPxA5p7qGg==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2824,24 +2890,24 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.7.tgz", - "integrity": "sha512-91PRkTfiBf9hxkIchhRKJfl1rsplRDyBnmyFca3y0Z3x/q0JJN480S83LBd8R6sBCkm2bBbqw2FHp0Mbh+ecSA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.8.tgz", + "integrity": "sha512-uEC/kCCFto83bz5ZzapcrgGqHOh/0r69sZ2ZuHlgoD5kYgXJEThCoTuw/y1Ub3cE7aaKdznb+jD9xRPIfIwD7g==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0" + "@smithy/types": "^3.6.0" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2849,16 +2915,16 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.0.tgz", - "integrity": "sha512-LafbclHNKnsorMgUkKm7Tk7oJ7xizsZ1VwqhGKqoCIrXh4fqDDp73fK99HOEEgcsQbtemmeY/BPv0vTVYYUNEQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.1.tgz", + "integrity": "sha512-NsV1jF4EvmO5wqmaSzlnTVetemBS3FZHdyc5CExbDljcyJCEEkJr8ANu2JvtNbVg/9MvKAWV44kTrGS+Pi4INg==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^3.0.0", - "@smithy/protocol-http": "^4.1.4", - "@smithy/types": "^3.5.0", + "@smithy/protocol-http": "^4.1.5", + "@smithy/types": "^3.6.0", "@smithy/util-hex-encoding": "^3.0.0", - "@smithy/util-middleware": "^3.0.7", + "@smithy/util-middleware": "^3.0.8", "@smithy/util-uri-escape": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -2868,16 +2934,17 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.0.tgz", - "integrity": "sha512-nOfJ1nVQsxiP6srKt43r2My0Gp5PLWCW2ASqUioxIiGmu6d32v4Nekidiv5qOmmtzIrmaD+ADX5SKHUuhReeBQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.2.tgz", + "integrity": "sha512-dxw1BDxJiY9/zI3cBqfVrInij6ShjpV4fmGHesGZZUiP9OSE/EVfdwdRz0PgvkEvrZHpsj2htRaHJfftE8giBA==", "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-endpoint": "^3.1.4", - "@smithy/middleware-stack": "^3.0.7", - "@smithy/protocol-http": "^4.1.4", - "@smithy/types": "^3.5.0", - "@smithy/util-stream": "^3.1.9", + "@smithy/core": "^2.5.1", + "@smithy/middleware-endpoint": "^3.2.1", + "@smithy/middleware-stack": "^3.0.8", + "@smithy/protocol-http": "^4.1.5", + "@smithy/types": "^3.6.0", + "@smithy/util-stream": "^3.2.1", "tslib": "^2.6.2" }, "engines": { @@ -2885,9 +2952,9 @@ } }, "node_modules/@smithy/types": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.5.0.tgz", - "integrity": "sha512-QN0twHNfe8mNJdH9unwsCK13GURU7oEAZqkBI+rsvpv1jrmserO+WnLE7jidR9W/1dxwZ0u/CB01mV2Gms/K2Q==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.6.0.tgz", + "integrity": "sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2897,13 +2964,13 @@ } }, "node_modules/@smithy/url-parser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.7.tgz", - "integrity": "sha512-70UbSSR8J97c1rHZOWhl+VKiZDqHWxs/iW8ZHrHp5fCCPLSBE7GcUlUvKSle3Ca+J9LLbYCj/A79BxztBvAfpA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.8.tgz", + "integrity": "sha512-4FdOhwpTW7jtSFWm7SpfLGKIBC9ZaTKG5nBF0wK24aoQKQyDIKUw3+KFWCQ9maMzrgTJIuOvOnsV2lLGW5XjTg==", "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^3.0.7", - "@smithy/types": "^3.5.0", + "@smithy/querystring-parser": "^3.0.8", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" } }, @@ -2968,14 +3035,14 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.23.tgz", - "integrity": "sha512-Y07qslyRtXDP/C5aWKqxTPBl4YxplEELG3xRrz2dnAQ6Lq/FgNrcKWmV561nNaZmFH+EzeGOX3ZRMbU8p1T6Nw==", + "version": "3.0.25", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.25.tgz", + "integrity": "sha512-fRw7zymjIDt6XxIsLwfJfYUfbGoO9CmCJk6rjJ/X5cd20+d2Is7xjU5Kt/AiDt6hX8DAf5dztmfP5O82gR9emA==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/smithy-client": "^3.4.0", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/smithy-client": "^3.4.2", + "@smithy/types": "^3.6.0", "bowser": "^2.11.0", "tslib": "^2.6.2" }, @@ -2984,17 +3051,17 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.23.tgz", - "integrity": "sha512-9Y4WH7f0vnDGuHUa4lGX9e2p+sMwODibsceSV6rfkZOvMC+BY3StB2LdO1NHafpsyHJLpwAgChxQ38tFyd6vkg==", + "version": "3.0.25", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.25.tgz", + "integrity": "sha512-H3BSZdBDiVZGzt8TG51Pd2FvFO0PAx/A0mJ0EH8a13KJ6iUCdYnw/Dk/MdC1kTd0eUuUGisDFaxXVXo4HHFL1g==", "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^3.0.9", - "@smithy/credential-provider-imds": "^3.2.4", - "@smithy/node-config-provider": "^3.1.8", - "@smithy/property-provider": "^3.1.7", - "@smithy/smithy-client": "^3.4.0", - "@smithy/types": "^3.5.0", + "@smithy/config-resolver": "^3.0.10", + "@smithy/credential-provider-imds": "^3.2.5", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/property-provider": "^3.1.8", + "@smithy/smithy-client": "^3.4.2", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -3002,13 +3069,13 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.3.tgz", - "integrity": "sha512-34eACeKov6jZdHqS5hxBMJ4KyWKztTMulhuQ2UdOoP6vVxMLrOKUqIXAwJe/wiWMhXhydLW664B02CNpQBQ4Aw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.4.tgz", + "integrity": "sha512-kPt8j4emm7rdMWQyL0F89o92q10gvCUa6sBkBtDJ7nV2+P7wpXczzOfoDJ49CKXe5CCqb8dc1W+ZdLlrKzSAnQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -3028,12 +3095,12 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.7.tgz", - "integrity": "sha512-OVA6fv/3o7TMJTpTgOi1H5OTwnuUa8hzRzhSFDtZyNxi6OZ70L/FHattSmhE212I7b6WSOJAAmbYnvcjTHOJCA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.8.tgz", + "integrity": "sha512-p7iYAPaQjoeM+AKABpYWeDdtwQNxasr4aXQEA/OmbOaug9V0odRVDy3Wx4ci8soljE/JXQo+abV0qZpW8NX0yA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -3041,13 +3108,13 @@ } }, "node_modules/@smithy/util-retry": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.7.tgz", - "integrity": "sha512-nh1ZO1vTeo2YX1plFPSe/OXaHkLAHza5jpokNiiKX2M5YpNUv6RxGJZhpfmiR4jSvVHCjIDmILjrxKmP+/Ghug==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.8.tgz", + "integrity": "sha512-TCEhLnY581YJ+g1x0hapPz13JFqzmh/pMWL2KEFASC51qCfw3+Y47MrTmea4bUE5vsdxQ4F6/KFbUeSz22Q1ow==", "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^3.0.7", - "@smithy/types": "^3.5.0", + "@smithy/service-error-classification": "^3.0.8", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -3055,14 +3122,14 @@ } }, "node_modules/@smithy/util-stream": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.1.9.tgz", - "integrity": "sha512-7YAR0Ub3MwTMjDfjnup4qa6W8gygZMxikBhFMPESi6ASsl/rZJhwLpF/0k9TuezScCojsM0FryGdz4LZtjKPPQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.2.1.tgz", + "integrity": "sha512-R3ufuzJRxSJbE58K9AEnL/uSZyVdHzud9wLS8tIbXclxKzoe09CRohj2xV8wpx5tj7ZbiJaKYcutMm1eYgz/0A==", "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^3.2.9", - "@smithy/node-http-handler": "^3.2.4", - "@smithy/types": "^3.5.0", + "@smithy/fetch-http-handler": "^4.0.0", + "@smithy/node-http-handler": "^3.2.5", + "@smithy/types": "^3.6.0", "@smithy/util-base64": "^3.0.0", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-hex-encoding": "^3.0.0", @@ -3073,6 +3140,19 @@ "node": ">=16.0.0" } }, + "node_modules/@smithy/util-stream/node_modules/@smithy/fetch-http-handler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.0.0.tgz", + "integrity": "sha512-MLb1f5tbBO2X6K4lMEKJvxeLooyg7guq48C2zKr4qM7F2Gpkz4dc+hdSgu77pCJ76jVqFBjZczHYAs6dp15N+g==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^4.1.5", + "@smithy/querystring-builder": "^3.0.8", + "@smithy/types": "^3.6.0", + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, "node_modules/@smithy/util-uri-escape": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz", @@ -3099,13 +3179,13 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.6.tgz", - "integrity": "sha512-xs/KAwWOeCklq8aMlnpk25LgxEYHKOEodfjfKclDMLcBJEVEKzDLxZxBQyztcuPJ7F54213NJS8PxoiHNMdItQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.7.tgz", + "integrity": "sha512-d5yGlQtmN/z5eoTtIYgkvOw27US2Ous4VycnXatyoImIF9tzlcpnKqQ/V7qhvJmb2p6xZne1NopCLakdTnkBBQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^3.1.5", - "@smithy/types": "^3.5.0", + "@smithy/abort-controller": "^3.1.6", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -3154,9 +3234,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.16.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", - "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", + "version": "20.17.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", + "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3199,17 +3279,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.1.tgz", - "integrity": "sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz", + "integrity": "sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.8.1", - "@typescript-eslint/type-utils": "8.8.1", - "@typescript-eslint/utils": "8.8.1", - "@typescript-eslint/visitor-keys": "8.8.1", + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/type-utils": "8.12.2", + "@typescript-eslint/utils": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3233,16 +3313,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz", - "integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.12.2.tgz", + "integrity": "sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.8.1", - "@typescript-eslint/types": "8.8.1", - "@typescript-eslint/typescript-estree": "8.8.1", - "@typescript-eslint/visitor-keys": "8.8.1", + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/typescript-estree": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", "debug": "^4.3.4" }, "engines": { @@ -3262,14 +3342,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.1.tgz", - "integrity": "sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz", + "integrity": "sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.8.1", - "@typescript-eslint/visitor-keys": "8.8.1" + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3280,14 +3360,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.1.tgz", - "integrity": "sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz", + "integrity": "sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.8.1", - "@typescript-eslint/utils": "8.8.1", + "@typescript-eslint/typescript-estree": "8.12.2", + "@typescript-eslint/utils": "8.12.2", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -3305,9 +3385,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.1.tgz", - "integrity": "sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.12.2.tgz", + "integrity": "sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==", "dev": true, "license": "MIT", "engines": { @@ -3319,14 +3399,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.1.tgz", - "integrity": "sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz", + "integrity": "sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.8.1", - "@typescript-eslint/visitor-keys": "8.8.1", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3348,16 +3428,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.1.tgz", - "integrity": "sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.12.2.tgz", + "integrity": "sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.8.1", - "@typescript-eslint/types": "8.8.1", - "@typescript-eslint/typescript-estree": "8.8.1" + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/typescript-estree": "8.12.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3371,13 +3451,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.1.tgz", - "integrity": "sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz", + "integrity": "sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/types": "8.12.2", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -3403,30 +3483,30 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.6.tgz", - "integrity": "sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.8.tgz", + "integrity": "sha512-K/GxMOXGq997bO00cdFhTNuR85xPxj0BEEAy+BaqqayTmy9Tmhfgmq2wpJcVspRhcwfgPoE2/mEJa26emUhG/g==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.6" + "@volar/source-map": "2.4.8" } }, "node_modules/@volar/source-map": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.6.tgz", - "integrity": "sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.8.tgz", + "integrity": "sha512-jeWJBkC/WivdelMwxKkpFL811uH/jJ1kVxa+c7OvG48DXc3VrP7pplSWPP2W1dLMqBxD+awRlg55FQQfiup4cA==", "dev": true, "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.6.tgz", - "integrity": "sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.8.tgz", + "integrity": "sha512-6xkIYJ5xxghVBhVywMoPMidDDAFT1OoQeXwa27HSgJ6AiIKRe61RXLoik+14Z7r0JvnblXVsjsRLmCr42SGzqg==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.6", + "@volar/language-core": "2.4.8", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -3499,9 +3579,9 @@ "license": "MIT" }, "node_modules/@vue/eslint-config-prettier": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-10.0.0.tgz", - "integrity": "sha512-iDEjsfT+UXQTJfe+4mstb/B5BSZ5RpL6FO3F97XxElIXdD04gkH+F7PR4fBMEVyJi4892G4LQVPQ8oXxVyp8Dw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-10.1.0.tgz", + "integrity": "sha512-J6wV91y2pXc0Phha01k0WOHBTPsoSTf4xlmMjoKaeSxBpAdsgTppGF5RZRdOHM7OA74zAXD+VLANrtYXpiPKkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3514,14 +3594,14 @@ } }, "node_modules/@vue/eslint-config-typescript": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.0.1.tgz", - "integrity": "sha512-jE5myCG9OiXQOuTSiwCqmM5ktGuiL/xI2SC1DUf+AntvFTDOW5+RZtGKw8L+Af5jlSe0k45RNVh0a/wklcckGQ==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.1.3.tgz", + "integrity": "sha512-L4NUJQz/0We2QYtrNwRAGRy4KfpOagl5V3MpZZ+rQ51a+bKjlKYYrugi7lp7PIX8LolRgu06ZwDoswnSGWnAmA==", "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/eslint-plugin": "^8.8.1", - "@typescript-eslint/parser": "^8.8.1", + "fast-glob": "^3.3.2", "typescript-eslint": "^8.8.1", "vue-eslint-parser": "^9.4.3" }, @@ -3540,17 +3620,17 @@ } }, "node_modules/@vue/language-core": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz", - "integrity": "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.10.tgz", + "integrity": "sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "~2.4.1", - "@vue/compiler-dom": "^3.4.0", + "@volar/language-core": "~2.4.8", + "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", - "@vue/shared": "^3.4.0", - "computeds": "^0.0.1", + "@vue/shared": "^3.5.0", + "alien-signals": "^0.2.0", "minimatch": "^9.0.3", "muggle-string": "^0.4.1", "path-browserify": "^1.0.1" @@ -3622,9 +3702,9 @@ "license": "MIT" }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -3660,6 +3740,13 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/alien-signals": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.2.0.tgz", + "integrity": "sha512-StlonZhBBrsPPwrDjiPAiVTf/rolxffLxVPT60Qv/t88BZ81BvUVzHgGqEFvJ1ii8HXtm1+zU2Icr59tfWEcag==", + "dev": true, + "license": "MIT" + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4131,9 +4218,9 @@ } }, "node_modules/chart.js": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.4.tgz", - "integrity": "sha512-emICKGBABnxhMjUjlYRR12PmOXhJ2eJjEHL2/dZlWjxRAZT1D8xplLFq5M0tMQK8ja+wBS/tuVEJB5C6r7VxJA==", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.6.tgz", + "integrity": "sha512-8Y406zevUPbbIBA/HRk33khEmQPk5+cxeflWE/2rx1NJsjVWMPw/9mSP9rxHP5eqi6LNoPBVMfZHxbwLSgldYA==", "license": "MIT", "dependencies": { "@kurkle/color": "^0.3.0" @@ -4244,13 +4331,6 @@ "node": ">=18" } }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", - "dev": true, - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -4365,26 +4445,30 @@ } }, "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", "dev": true, "license": "MIT", "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" }, "engines": { - "node": "*" + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/cssesc": { @@ -4574,6 +4658,7 @@ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, "license": "Apache-2.0", + "optional": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -4633,9 +4718,9 @@ } }, "node_modules/elliptic": { - "version": "6.5.7", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", - "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz", + "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", "dev": true, "license": "MIT", "dependencies": { @@ -4963,9 +5048,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.29.0.tgz", - "integrity": "sha512-hamyjrBhNH6Li6R1h1VF9KHfshJlKgKEg3ARbGTn72CMNDSMhWbgC7NdkRDEh25AFW+4SDATzyNM+3gWuZii8g==", + "version": "9.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.30.0.tgz", + "integrity": "sha512-CyqlRgShvljFkOeYK8wN5frh/OGTvkj1S7wlr2Q2pUvwq+X5VYiLd6ZjujpgSgLnys2W8qrBLkXQ41SUYaoPIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5002,9 +5087,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", - "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -5060,9 +5145,9 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", - "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -5093,15 +5178,15 @@ } }, "node_modules/espree": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", - "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.12.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.1.0" + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5111,9 +5196,9 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", - "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -5277,10 +5362,10 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", - "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", - "license": "MIT" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" }, "node_modules/fast-xml-parser": { "version": "4.4.1", @@ -6297,9 +6382,9 @@ } }, "node_modules/jiti": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.3.3.tgz", - "integrity": "sha512-EX4oNDwcXSivPrw2qKH2LB5PoFxEvgtv2JgwW0bU858HoLQ+kutSvjLMUqBd0PeJYEinLWhoI9Ol0eYMqj/wNQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.0.tgz", + "integrity": "sha512-H5UpaUI+aHOqZXlYOaFP/8AzKsg+guWu+Pr3Y8i7+Y3zr1aXAvCvTAQ1RxSc6oVD8R8c7brgNtTVP91E7upH/g==", "dev": true, "license": "MIT", "bin": { @@ -6695,7 +6780,8 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/node-fetch-native": { "version": "1.6.4", @@ -7324,9 +7410,9 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { @@ -7366,9 +7452,9 @@ } }, "node_modules/pinia": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.4.tgz", - "integrity": "sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.6.tgz", + "integrity": "sha512-vIsR8JkDN5Ga2vAxqOE2cJj4VtsHnzpR1Fz30kClxlh0yCHfec6uoMeM3e/ddqmwFUejK3NlrcQa/shnpyT4hA==", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.3", @@ -7380,7 +7466,7 @@ "peerDependencies": { "@vue/composition-api": "^1.4.0", "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.3.0" + "vue": "^2.6.14 || ^3.5.11" }, "peerDependenciesMeta": { "@vue/composition-api": { @@ -7785,9 +7871,9 @@ } }, "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.3.tgz", + "integrity": "sha512-HBW896xR5HGmoksbi3JBDtmVzWiPAYqp7wip50hjQ67JbDz61nyoMPdqu1DvVW9asYb2M65Z20ZHsyJCMqMyDg==", "dev": true, "license": "MIT", "dependencies": { @@ -7801,22 +7887,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", + "@rollup/rollup-android-arm-eabi": "4.24.3", + "@rollup/rollup-android-arm64": "4.24.3", + "@rollup/rollup-darwin-arm64": "4.24.3", + "@rollup/rollup-darwin-x64": "4.24.3", + "@rollup/rollup-freebsd-arm64": "4.24.3", + "@rollup/rollup-freebsd-x64": "4.24.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.3", + "@rollup/rollup-linux-arm-musleabihf": "4.24.3", + "@rollup/rollup-linux-arm64-gnu": "4.24.3", + "@rollup/rollup-linux-arm64-musl": "4.24.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.3", + "@rollup/rollup-linux-riscv64-gnu": "4.24.3", + "@rollup/rollup-linux-s390x-gnu": "4.24.3", + "@rollup/rollup-linux-x64-gnu": "4.24.3", + "@rollup/rollup-linux-x64-musl": "4.24.3", + "@rollup/rollup-win32-arm64-msvc": "4.24.3", + "@rollup/rollup-win32-ia32-msvc": "4.24.3", + "@rollup/rollup-win32-x64-msvc": "4.24.3", "fsevents": "~2.3.2" } }, @@ -7902,13 +7990,12 @@ } }, "node_modules/sass": { - "version": "1.79.5", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.5.tgz", - "integrity": "sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.6.tgz", + "integrity": "sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==", "dev": true, "license": "MIT", "dependencies": { - "@parcel/watcher": "^2.4.1", "chokidar": "^4.0.0", "immutable": "^4.0.0", "source-map-js": ">=0.6.2 <2.0.0" @@ -7918,6 +8005,9 @@ }, "engines": { "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, "node_modules/semver": { @@ -8362,15 +8452,6 @@ "node": ">=0.6.0" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -8385,9 +8466,9 @@ } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", + "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", "dev": true, "license": "MIT", "engines": { @@ -8398,9 +8479,9 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/tty-browserify": { @@ -8528,15 +8609,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.8.1.tgz", - "integrity": "sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.12.2.tgz", + "integrity": "sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.8.1", - "@typescript-eslint/parser": "8.8.1", - "@typescript-eslint/utils": "8.8.1" + "@typescript-eslint/eslint-plugin": "8.12.2", + "@typescript-eslint/parser": "8.12.2", + "@typescript-eslint/utils": "8.12.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8674,9 +8755,9 @@ } }, "node_modules/vite": { - "version": "5.4.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz", - "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==", + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", + "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8871,14 +8952,14 @@ } }, "node_modules/vue-tsc": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.6.tgz", - "integrity": "sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.10.tgz", + "integrity": "sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==", "dev": true, "license": "MIT", "dependencies": { - "@volar/typescript": "~2.4.1", - "@vue/language-core": "2.1.6", + "@volar/typescript": "~2.4.8", + "@vue/language-core": "2.1.10", "semver": "^7.5.4" }, "bin": { diff --git a/package.json b/package.json index 0ae94ecac2da95988f8ffdd38a8c38b29832ea82..50c691bc2e34eb20de902cc779564a4b42c5ed23 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ }, "devDependencies": { "@eslint/compat": "^1.2.0", - "@hey-api/openapi-ts": "^0.53.9", + "@hey-api/openapi-ts": "^0.54.0", "@rushstack/eslint-patch": "~1.10.0", "@tsconfig/node20": "^20.1.2", "@types/bootstrap": "~5.2.0", @@ -50,11 +50,11 @@ "@types/showdown": "~2.0.1", "@types/sortablejs": "^1.15.7", "@vitejs/plugin-vue": "~5.1.0", - "@vue/eslint-config-prettier": "~10.0.0", - "@vue/eslint-config-typescript": "~14.0.0", + "@vue/eslint-config-prettier": "~10.1.0", + "@vue/eslint-config-typescript": "~14.1.0", "@vue/tsconfig": "~0.5.0", "eslint": "~9.12.0", - "eslint-plugin-vue": "~9.29.0", + "eslint-plugin-vue": "~9.30.0", "highlight.js": "^11.9.0", "npm-run-all": "~4.1.5", "prettier": "~3.3.0", diff --git a/src/App.vue b/src/App.vue index cf641530a85f5003aec824e0fdb32ff9202bd93d..64eb9a5147a8b52d93741c2bb3ba2f2ec5b6e867 100644 --- a/src/App.vue +++ b/src/App.vue @@ -170,10 +170,16 @@ onMounted(() => { <template> <AppHeader /> - <div class="container-xxl mt-2 flex-grow-1 py-2"> + <div class="container-fluid container-xxxl mt-2 flex-grow-1 py-2"> <router-view /> </div> <AppFooter /> </template> -<style scoped></style> +<style scoped> +@media (min-width: 1550px) { + .container-xxxl { + max-width: 1500px !important; + } +} +</style> diff --git a/src/client/services.gen.ts b/src/client/services.gen.ts index a501638e1c19b611c26ea1226550eda6ceea9911..633fd0c6ee3340cfd21d0059d9b1eae7464093e7 100644 --- a/src/client/services.gen.ts +++ b/src/client/services.gen.ts @@ -7,8 +7,6 @@ import { formDataBodySerializer, } from "@hey-api/client-axios"; import type { - AuthLoginData, - AuthLoginCallbackData, ApiTokenListTokenData, ApiTokenListTokenError, ApiTokenListTokenResponse, @@ -21,38 +19,8 @@ import type { ApiTokenDeleteTokenData, ApiTokenDeleteTokenError, ApiTokenDeleteTokenResponse, - UserCreateUserData, - UserCreateUserError, - UserCreateUserResponse, - UserListUsersData, - UserListUsersError, - UserListUsersResponse, - UserSearchUsersData, - UserSearchUsersError, - UserSearchUsersResponse, - UserGetLoggedInUserError, - UserGetLoggedInUserResponse, - UserGetUserData, - UserGetUserError, - UserGetUserResponse, - UserUpdateRolesData, - UserUpdateRolesError, - UserUpdateRolesResponse, - UserResendInvitationData, - UserResendInvitationError, - UserResendInvitationResponse, - S3KeyGetUserKeysData, - S3KeyGetUserKeysError, - S3KeyGetUserKeysResponse, - S3KeyCreateUserKeyData, - S3KeyCreateUserKeyError, - S3KeyCreateUserKeyResponse, - S3KeyGetUserKeyData, - S3KeyGetUserKeyError, - S3KeyGetUserKeyResponse, - S3KeyDeleteUserKeyData, - S3KeyDeleteUserKeyError, - S3KeyDeleteUserKeyResponse, + AuthLoginData, + AuthLoginCallbackData, BucketListBucketsData, BucketListBucketsError, BucketListBucketsResponse, @@ -107,6 +75,114 @@ import type { BucketPermissionDeletePermissionData, BucketPermissionDeletePermissionError, BucketPermissionDeletePermissionResponse, + NewsCreateNewsData, + NewsCreateNewsError, + NewsCreateNewsResponse, + NewsListNewsData, + NewsListNewsError, + NewsListNewsResponse, + NewsListLatestNewsError, + NewsListLatestNewsResponse, + NewsGetNewsData, + NewsGetNewsError, + NewsGetNewsResponse, + NewsDeleteNewsData, + NewsDeleteNewsError, + NewsDeleteNewsResponse, + ResourceCreateResourceData, + ResourceCreateResourceError, + ResourceCreateResourceResponse, + ResourceListResourcesData, + ResourceListResourcesError, + ResourceListResourcesResponse, + ResourceListSyncRequestsError, + ResourceListSyncRequestsResponse, + ResourceListResourceOtrsData, + ResourceListResourceOtrsError, + ResourceListResourceOtrsResponse, + ResourceGetResourceData, + ResourceGetResourceError, + ResourceGetResourceResponse, + ResourceDeleteResourceData, + ResourceDeleteResourceError, + ResourceDeleteResourceResponse, + ResourceGetResourceOtrData, + ResourceGetResourceOtrError, + ResourceGetResourceOtrResponse, + ResourceCreateResourceOtrData, + ResourceCreateResourceOtrError, + ResourceCreateResourceOtrResponse, + ResourceAcceptResourceOtrData, + ResourceAcceptResourceOtrError, + ResourceAcceptResourceOtrResponse, + ResourceDeleteResourceOtrData, + ResourceDeleteResourceOtrError, + ResourceDeleteResourceOtrResponse, + ResourceVersionListResourceVersionsData, + ResourceVersionListResourceVersionsError, + ResourceVersionListResourceVersionsResponse, + ResourceVersionRequestResourceVersionData, + ResourceVersionRequestResourceVersionError, + ResourceVersionRequestResourceVersionResponse, + ResourceVersionGetResourceVersionData, + ResourceVersionGetResourceVersionError, + ResourceVersionGetResourceVersionResponse, + ResourceVersionResourceFileTreeData, + ResourceVersionResourceFileTreeError, + ResourceVersionResourceFileTreeResponse, + ResourceVersionRequestResourceVersionReviewData, + ResourceVersionRequestResourceVersionReviewError, + ResourceVersionRequestResourceVersionReviewResponse, + ResourceVersionRequestResourceVersionSyncData, + ResourceVersionRequestResourceVersionSyncError, + ResourceVersionRequestResourceVersionSyncResponse, + ResourceVersionResourceVersionReviewData, + ResourceVersionResourceVersionReviewError, + ResourceVersionResourceVersionReviewResponse, + ResourceVersionResourceVersionSyncData, + ResourceVersionResourceVersionSyncError, + ResourceVersionResourceVersionSyncResponse, + ResourceVersionResourceVersionLatestData, + ResourceVersionResourceVersionLatestError, + ResourceVersionResourceVersionLatestResponse, + ResourceVersionDeleteResourceVersionClusterData, + ResourceVersionDeleteResourceVersionClusterError, + ResourceVersionDeleteResourceVersionClusterResponse, + ResourceVersionDeleteResourceVersionS3Data, + ResourceVersionDeleteResourceVersionS3Error, + ResourceVersionDeleteResourceVersionS3Response, + S3KeyGetUserKeysData, + S3KeyGetUserKeysError, + S3KeyGetUserKeysResponse, + S3KeyCreateUserKeyData, + S3KeyCreateUserKeyError, + S3KeyCreateUserKeyResponse, + S3KeyGetUserKeyData, + S3KeyGetUserKeyError, + S3KeyGetUserKeyResponse, + S3KeyDeleteUserKeyData, + S3KeyDeleteUserKeyError, + S3KeyDeleteUserKeyResponse, + UserCreateUserData, + UserCreateUserError, + UserCreateUserResponse, + UserListUsersData, + UserListUsersError, + UserListUsersResponse, + UserSearchUsersData, + UserSearchUsersError, + UserSearchUsersResponse, + UserGetLoggedInUserError, + UserGetLoggedInUserResponse, + UserGetUserData, + UserGetUserError, + UserGetUserResponse, + UserUpdateRolesData, + UserUpdateRolesError, + UserUpdateRolesResponse, + UserResendInvitationData, + UserResendInvitationError, + UserResendInvitationResponse, WorkflowCreateWorkflowData, WorkflowCreateWorkflowError, WorkflowCreateWorkflowResponse, @@ -143,6 +219,39 @@ import type { WorkflowUpdateWorkflowData, WorkflowUpdateWorkflowError, WorkflowUpdateWorkflowResponse, + WorkflowCredentialsGetWorkflowCredentialsData, + WorkflowCredentialsGetWorkflowCredentialsError, + WorkflowCredentialsGetWorkflowCredentialsResponse, + WorkflowCredentialsUpdateWorkflowCredentialsData, + WorkflowCredentialsUpdateWorkflowCredentialsError, + WorkflowCredentialsUpdateWorkflowCredentialsResponse, + WorkflowCredentialsDeleteWorkflowCredentialsData, + WorkflowCredentialsDeleteWorkflowCredentialsError, + WorkflowCredentialsDeleteWorkflowCredentialsResponse, + WorkflowExecutionStartWorkflowData, + WorkflowExecutionStartWorkflowError, + WorkflowExecutionStartWorkflowResponse, + WorkflowExecutionListWorkflowExecutionsData, + WorkflowExecutionListWorkflowExecutionsError, + WorkflowExecutionListWorkflowExecutionsResponse, + WorkflowExecutionStartArbitraryWorkflowData, + WorkflowExecutionStartArbitraryWorkflowError, + WorkflowExecutionStartArbitraryWorkflowResponse, + WorkflowExecutionGetWorkflowExecutionData, + WorkflowExecutionGetWorkflowExecutionError, + WorkflowExecutionGetWorkflowExecutionResponse, + WorkflowExecutionDeleteWorkflowExecutionData, + WorkflowExecutionDeleteWorkflowExecutionError, + WorkflowExecutionDeleteWorkflowExecutionResponse, + WorkflowExecutionGetWorkflowExecutionParamsData, + WorkflowExecutionGetWorkflowExecutionParamsError, + WorkflowExecutionGetWorkflowExecutionParamsResponse, + WorkflowExecutionCancelWorkflowExecutionData, + WorkflowExecutionCancelWorkflowExecutionError, + WorkflowExecutionCancelWorkflowExecutionResponse, + WorkflowModeGetWorkflowModeData, + WorkflowModeGetWorkflowModeError, + WorkflowModeGetWorkflowModeResponse, WorkflowVersionListWorkflowVersionData, WorkflowVersionListWorkflowVersionError, WorkflowVersionListWorkflowVersionResponse, @@ -170,155 +279,10 @@ import type { WorkflowVersionDeleteWorkflowVersionIconData, WorkflowVersionDeleteWorkflowVersionIconError, WorkflowVersionDeleteWorkflowVersionIconResponse, - WorkflowExecutionStartWorkflowData, - WorkflowExecutionStartWorkflowError, - WorkflowExecutionStartWorkflowResponse, - WorkflowExecutionListWorkflowExecutionsData, - WorkflowExecutionListWorkflowExecutionsError, - WorkflowExecutionListWorkflowExecutionsResponse, - WorkflowExecutionStartArbitraryWorkflowData, - WorkflowExecutionStartArbitraryWorkflowError, - WorkflowExecutionStartArbitraryWorkflowResponse, - WorkflowExecutionGetWorkflowExecutionData, - WorkflowExecutionGetWorkflowExecutionError, - WorkflowExecutionGetWorkflowExecutionResponse, - WorkflowExecutionDeleteWorkflowExecutionData, - WorkflowExecutionDeleteWorkflowExecutionError, - WorkflowExecutionDeleteWorkflowExecutionResponse, - WorkflowExecutionGetWorkflowExecutionParamsData, - WorkflowExecutionGetWorkflowExecutionParamsError, - WorkflowExecutionGetWorkflowExecutionParamsResponse, - WorkflowExecutionCancelWorkflowExecutionData, - WorkflowExecutionCancelWorkflowExecutionError, - WorkflowExecutionCancelWorkflowExecutionResponse, - WorkflowCredentialsGetWorkflowCredentialsData, - WorkflowCredentialsGetWorkflowCredentialsError, - WorkflowCredentialsGetWorkflowCredentialsResponse, - WorkflowCredentialsUpdateWorkflowCredentialsData, - WorkflowCredentialsUpdateWorkflowCredentialsError, - WorkflowCredentialsUpdateWorkflowCredentialsResponse, - WorkflowCredentialsDeleteWorkflowCredentialsData, - WorkflowCredentialsDeleteWorkflowCredentialsError, - WorkflowCredentialsDeleteWorkflowCredentialsResponse, - WorkflowModeGetWorkflowModeData, - WorkflowModeGetWorkflowModeError, - WorkflowModeGetWorkflowModeResponse, - ResourceCreateResourceData, - ResourceCreateResourceError, - ResourceCreateResourceResponse, - ResourceListResourcesData, - ResourceListResourcesError, - ResourceListResourcesResponse, - ResourceListSyncRequestsError, - ResourceListSyncRequestsResponse, - ResourceListResourceOtrsData, - ResourceListResourceOtrsError, - ResourceListResourceOtrsResponse, - ResourceGetResourceData, - ResourceGetResourceError, - ResourceGetResourceResponse, - ResourceDeleteResourceData, - ResourceDeleteResourceError, - ResourceDeleteResourceResponse, - ResourceGetResourceOtrData, - ResourceGetResourceOtrError, - ResourceGetResourceOtrResponse, - ResourceCreateResourceOtrData, - ResourceCreateResourceOtrError, - ResourceCreateResourceOtrResponse, - ResourceAcceptResourceOtrData, - ResourceAcceptResourceOtrError, - ResourceAcceptResourceOtrResponse, - ResourceDeleteResourceOtrData, - ResourceDeleteResourceOtrError, - ResourceDeleteResourceOtrResponse, - ResourceVersionListResourceVersionsData, - ResourceVersionListResourceVersionsError, - ResourceVersionListResourceVersionsResponse, - ResourceVersionRequestResourceVersionData, - ResourceVersionRequestResourceVersionError, - ResourceVersionRequestResourceVersionResponse, - ResourceVersionGetResourceVersionData, - ResourceVersionGetResourceVersionError, - ResourceVersionGetResourceVersionResponse, - ResourceVersionResourceFileTreeData, - ResourceVersionResourceFileTreeError, - ResourceVersionResourceFileTreeResponse, - ResourceVersionRequestResourceVersionReviewData, - ResourceVersionRequestResourceVersionReviewError, - ResourceVersionRequestResourceVersionReviewResponse, - ResourceVersionRequestResourceVersionSyncData, - ResourceVersionRequestResourceVersionSyncError, - ResourceVersionRequestResourceVersionSyncResponse, - ResourceVersionResourceVersionReviewData, - ResourceVersionResourceVersionReviewError, - ResourceVersionResourceVersionReviewResponse, - ResourceVersionResourceVersionSyncData, - ResourceVersionResourceVersionSyncError, - ResourceVersionResourceVersionSyncResponse, - ResourceVersionResourceVersionLatestData, - ResourceVersionResourceVersionLatestError, - ResourceVersionResourceVersionLatestResponse, - ResourceVersionDeleteResourceVersionClusterData, - ResourceVersionDeleteResourceVersionClusterError, - ResourceVersionDeleteResourceVersionClusterResponse, - ResourceVersionDeleteResourceVersionS3Data, - ResourceVersionDeleteResourceVersionS3Error, - ResourceVersionDeleteResourceVersionS3Response, } from "./types.gen"; export const client = createClient(createConfig()); -export class AuthService { - /** - * Kickstart the login flow - * Redirect route to OIDC provider to kickstart the login process. - */ - public static authLogin<ThrowOnError extends boolean = false>( - options?: Options<AuthLoginData, ThrowOnError>, - ) { - return (options?.client ?? client).get<void, unknown, ThrowOnError>({ - ...options, - url: "/auth/login", - }); - } - - /** - * LifeScience Login Callback - * Callback for the Life Science Identity Provider. - * - * Visit the route login route to start the login process. - * - * If the user is already known to the system, then a JWT token will be created and sent via the 'set-cookie' header. - * The key for this Cookie is 'bearer'. - * - * If the user is new, he will be created and then a JWT token is issued. - * - * This JWT has to be sent to all authorized endpoints via the HTTPBearer scheme. - */ - public static authLoginCallback<ThrowOnError extends boolean = false>( - options: Options<AuthLoginCallbackData, ThrowOnError>, - ) { - return (options?.client ?? client).get<void, unknown, ThrowOnError>({ - ...options, - url: "/auth/callback/{provider}", - }); - } - - /** - * Logout - * Logout the user from the system by deleting the bearer cookie. - */ - public static authLogout<ThrowOnError extends boolean = false>( - options?: Options<unknown, ThrowOnError>, - ) { - return (options?.client ?? client).get<void, unknown, ThrowOnError>({ - ...options, - url: "/auth/logout", - }); - } -} - export class ApiTokenService { /** * List API token @@ -399,365 +363,202 @@ export class ApiTokenService { } } -export class UserService { +export class AuthService { /** - * Create User - * Create a new user in the system and notify him. - * - * Permission `user:create` required. + * Kickstart the login flow + * Redirect route to OIDC provider to kickstart the login process. */ - public static userCreateUser<ThrowOnError extends boolean = false>( - options: Options<UserCreateUserData, ThrowOnError>, + public static authLogin<ThrowOnError extends boolean = false>( + options?: Options<AuthLoginData, ThrowOnError>, ) { - return (options?.client ?? client).post< - UserCreateUserResponse, - UserCreateUserError, - ThrowOnError - >({ + return (options?.client ?? client).get<void, unknown, ThrowOnError>({ ...options, - url: "/users", + url: "/auth/login", }); } /** - * List users and search by their name - * List all users in the system.. + * LifeScience Login Callback + * Callback for the Life Science Identity Provider. * - * Permission `user:list` required. + * Visit the route login route to start the login process. + * + * If the user is already known to the system, then a JWT token will be created and sent via the 'set-cookie' header. + * The key for this Cookie is 'bearer'. + * + * If the user is new, he will be created and then a JWT token is issued. + * + * This JWT has to be sent to all authorized endpoints via the HTTPBearer scheme. */ - public static userListUsers<ThrowOnError extends boolean = false>( - options?: Options<UserListUsersData, ThrowOnError>, + public static authLoginCallback<ThrowOnError extends boolean = false>( + options: Options<AuthLoginCallbackData, ThrowOnError>, ) { - return (options?.client ?? client).get< - UserListUsersResponse, - UserListUsersError, - ThrowOnError - >({ + return (options?.client ?? client).get<void, unknown, ThrowOnError>({ ...options, - url: "/users", + url: "/auth/callback/{provider}", }); } /** - * Search Users - * Search for users in the system by their name. - * - * Permission `user: search` required. + * Logout + * Logout the user from the system by deleting the bearer cookie. */ - public static userSearchUsers<ThrowOnError extends boolean = false>( - options: Options<UserSearchUsersData, ThrowOnError>, + public static authLogout<ThrowOnError extends boolean = false>( + options?: Options<unknown, ThrowOnError>, ) { - return (options?.client ?? client).get< - UserSearchUsersResponse, - UserSearchUsersError, - ThrowOnError - >({ + return (options?.client ?? client).get<void, unknown, ThrowOnError>({ ...options, - url: "/users/search", + url: "/auth/logout", }); } +} +export class BucketService { /** - * Get the logged in user - * Return the user associated with the used JWT. + * List buckets + * List all the buckets in the system or of the desired user where the user has permissions for. * - * Permission `user:read` required. + * Permission `bucket:list_all` required. See parameter `owner_id` for exception. */ - public static userGetLoggedInUser<ThrowOnError extends boolean = false>( - options?: Options<unknown, ThrowOnError>, + public static bucketListBuckets<ThrowOnError extends boolean = false>( + options?: Options<BucketListBucketsData, ThrowOnError>, ) { return (options?.client ?? client).get< - UserGetLoggedInUserResponse, - UserGetLoggedInUserError, + BucketListBucketsResponse, + BucketListBucketsError, ThrowOnError >({ ...options, - url: "/users/me", + url: "/buckets", }); } /** - * Get a user by its uid - * Return the user with the specific uid. + * Create a bucket for the current user + * Create a bucket for the current user. * - * Permission `user:read` required. + * The name of the bucket has some constraints. + * For more information see the + * [Ceph documentation](https://docs.ceph.com/en/quincy/radosgw/s3/bucketops/#constraints) + * + * Permission `bucket:create` required. */ - public static userGetUser<ThrowOnError extends boolean = false>( - options: Options<UserGetUserData, ThrowOnError>, + public static bucketCreateBucket<ThrowOnError extends boolean = false>( + options: Options<BucketCreateBucketData, ThrowOnError>, ) { - return (options?.client ?? client).get< - UserGetUserResponse, - UserGetUserError, + return (options?.client ?? client).post< + BucketCreateBucketResponse, + BucketCreateBucketError, ThrowOnError >({ ...options, - url: "/users/{uid}", + url: "/buckets", }); } /** - * Update user roles - * Update the roles of a user. + * List bucket OTRs + * Get the ownership transfer requests for buckets. * - * Permission `user:update` required. + * Permission `bucket:list` required if `current_owner_id` or `new_owner_id` is the current users id, + * otherwise `bucket:list_all` */ - public static userUpdateRoles<ThrowOnError extends boolean = false>( - options: Options<UserUpdateRolesData, ThrowOnError>, + public static bucketListBucketOtrs<ThrowOnError extends boolean = false>( + options?: Options<BucketListBucketOtrsData, ThrowOnError>, ) { - return (options?.client ?? client).put< - UserUpdateRolesResponse, - UserUpdateRolesError, + return (options?.client ?? client).get< + BucketListBucketOtrsResponse, + BucketListBucketOtrsError, ThrowOnError >({ ...options, - url: "/users/{uid}/roles", + url: "/buckets/ownership_transfer_request", }); } /** - * Resend Invitation - * Resend the invitation link for an user that has an open invitation. + * Get a bucket by its name + * Get a bucket by its name if the current user has READ permissions for the bucket. * - * Permission `user:create` required. + * Permission `bucket:read` required if the current user is the owner of the bucket, + * otherwise `bucket:read_any` required. */ - public static userResendInvitation<ThrowOnError extends boolean = false>( - options: Options<UserResendInvitationData, ThrowOnError>, + public static bucketGetBucket<ThrowOnError extends boolean = false>( + options: Options<BucketGetBucketData, ThrowOnError>, ) { - return (options?.client ?? client).patch< - UserResendInvitationResponse, - UserResendInvitationError, + return (options?.client ?? client).get< + BucketGetBucketResponse, + BucketGetBucketError, ThrowOnError >({ ...options, - url: "/users/{uid}/invitation", + url: "/buckets/{bucket_name}", }); } -} -export class S3KeyService { /** - * Get the S3 Access keys from a user - * Get all the S3 Access keys for a specific user. + * Delete a bucket + * Delete a bucket by its name. Only the owner of the bucket can delete the bucket. * - * Permission `s3_key:list` required. + * Permission `bucket:delete` required if the current user is the owner of the bucket, + * otherwise `bucket:delete_any` required. */ - public static s3KeyGetUserKeys<ThrowOnError extends boolean = false>( - options: Options<S3KeyGetUserKeysData, ThrowOnError>, + public static bucketDeleteBucket<ThrowOnError extends boolean = false>( + options: Options<BucketDeleteBucketData, ThrowOnError>, ) { - return (options?.client ?? client).get< - S3KeyGetUserKeysResponse, - S3KeyGetUserKeysError, + return (options?.client ?? client).delete< + BucketDeleteBucketResponse, + BucketDeleteBucketError, ThrowOnError >({ ...options, - url: "/users/{uid}/keys", + url: "/buckets/{bucket_name}", }); } /** - * Create a Access key for a user - * Create a S3 Access key for a specific user. + * Get a bucket OTR + * Get a specific bucket ownership transfer request. * - * Permission `s3_key:create` required. + * Permission `bucket:read` required if the current user is the current or new owner of the bucket, + * otherwise `bucket:read_any` required. */ - public static s3KeyCreateUserKey<ThrowOnError extends boolean = false>( - options: Options<S3KeyCreateUserKeyData, ThrowOnError>, + public static bucketGetBucketOtr<ThrowOnError extends boolean = false>( + options: Options<BucketGetBucketOtrData, ThrowOnError>, ) { - return (options?.client ?? client).post< - S3KeyCreateUserKeyResponse, - S3KeyCreateUserKeyError, + return (options?.client ?? client).get< + BucketGetBucketOtrResponse, + BucketGetBucketOtrError, ThrowOnError >({ ...options, - url: "/users/{uid}/keys", + url: "/buckets/{bucket_name}/ownership_transfer_request", }); } /** - * Get a specific S3 Access key from a user - * Get a specific S3 Access Key for a specific user. + * Create a bucket OTR + * Create a ownership transfer request for a specific bucket. * - * Permission `s3_key:read` required. + * Permission `bucket:update` required if the current user is the current owner of the bucket, + * otherwise `bucket:update_any` required. */ - public static s3KeyGetUserKey<ThrowOnError extends boolean = false>( - options: Options<S3KeyGetUserKeyData, ThrowOnError>, + public static bucketCreateBucketOtr<ThrowOnError extends boolean = false>( + options: Options<BucketCreateBucketOtrData, ThrowOnError>, ) { - return (options?.client ?? client).get< - S3KeyGetUserKeyResponse, - S3KeyGetUserKeyError, + return (options?.client ?? client).post< + BucketCreateBucketOtrResponse, + BucketCreateBucketOtrError, ThrowOnError >({ ...options, - url: "/users/{uid}/keys/{access_id}", + url: "/buckets/{bucket_name}/ownership_transfer_request", }); } /** - * Delete a specific S3 Access key from a user - * Delete a specific S3 Access key for a specific user. - * - * Permission `s3_key:delete` required if the current user is the target, otherwise `s3_key:delete_any` required. - */ - public static s3KeyDeleteUserKey<ThrowOnError extends boolean = false>( - options: Options<S3KeyDeleteUserKeyData, ThrowOnError>, - ) { - return (options?.client ?? client).delete< - S3KeyDeleteUserKeyResponse, - S3KeyDeleteUserKeyError, - ThrowOnError - >({ - ...options, - url: "/users/{uid}/keys/{access_id}", - }); - } -} - -export class BucketService { - /** - * List buckets - * List all the buckets in the system or of the desired user where the user has permissions for. - * - * Permission `bucket:list_all` required. See parameter `owner_id` for exception. - */ - public static bucketListBuckets<ThrowOnError extends boolean = false>( - options?: Options<BucketListBucketsData, ThrowOnError>, - ) { - return (options?.client ?? client).get< - BucketListBucketsResponse, - BucketListBucketsError, - ThrowOnError - >({ - ...options, - url: "/buckets", - }); - } - - /** - * Create a bucket for the current user - * Create a bucket for the current user. - * - * The name of the bucket has some constraints. - * For more information see the - * [Ceph documentation](https://docs.ceph.com/en/quincy/radosgw/s3/bucketops/#constraints) - * - * Permission `bucket:create` required. - */ - public static bucketCreateBucket<ThrowOnError extends boolean = false>( - options: Options<BucketCreateBucketData, ThrowOnError>, - ) { - return (options?.client ?? client).post< - BucketCreateBucketResponse, - BucketCreateBucketError, - ThrowOnError - >({ - ...options, - url: "/buckets", - }); - } - - /** - * List bucket OTRs - * Get the ownership transfer requests for buckets. - * - * Permission `bucket:list` required if `current_owner_id` or `new_owner_id` is the current users id, - * otherwise `bucket:list_all` - */ - public static bucketListBucketOtrs<ThrowOnError extends boolean = false>( - options?: Options<BucketListBucketOtrsData, ThrowOnError>, - ) { - return (options?.client ?? client).get< - BucketListBucketOtrsResponse, - BucketListBucketOtrsError, - ThrowOnError - >({ - ...options, - url: "/buckets/ownership_transfer_request", - }); - } - - /** - * Get a bucket by its name - * Get a bucket by its name if the current user has READ permissions for the bucket. - * - * Permission `bucket:read` required if the current user is the owner of the bucket, - * otherwise `bucket:read_any` required. - */ - public static bucketGetBucket<ThrowOnError extends boolean = false>( - options: Options<BucketGetBucketData, ThrowOnError>, - ) { - return (options?.client ?? client).get< - BucketGetBucketResponse, - BucketGetBucketError, - ThrowOnError - >({ - ...options, - url: "/buckets/{bucket_name}", - }); - } - - /** - * Delete a bucket - * Delete a bucket by its name. Only the owner of the bucket can delete the bucket. - * - * Permission `bucket:delete` required if the current user is the owner of the bucket, - * otherwise `bucket:delete_any` required. - */ - public static bucketDeleteBucket<ThrowOnError extends boolean = false>( - options: Options<BucketDeleteBucketData, ThrowOnError>, - ) { - return (options?.client ?? client).delete< - BucketDeleteBucketResponse, - BucketDeleteBucketError, - ThrowOnError - >({ - ...options, - url: "/buckets/{bucket_name}", - }); - } - - /** - * Get a bucket OTR - * Get a specific bucket ownership transfer request. - * - * Permission `bucket:read` required if the current user is the current or new owner of the bucket, - * otherwise `bucket:read_any` required. - */ - public static bucketGetBucketOtr<ThrowOnError extends boolean = false>( - options: Options<BucketGetBucketOtrData, ThrowOnError>, - ) { - return (options?.client ?? client).get< - BucketGetBucketOtrResponse, - BucketGetBucketOtrError, - ThrowOnError - >({ - ...options, - url: "/buckets/{bucket_name}/ownership_transfer_request", - }); - } - - /** - * Create a bucket OTR - * Create a ownership transfer request for a specific bucket. - * - * Permission `bucket:update` required if the current user is the current owner of the bucket, - * otherwise `bucket:update_any` required. - */ - public static bucketCreateBucketOtr<ThrowOnError extends boolean = false>( - options: Options<BucketCreateBucketOtrData, ThrowOnError>, - ) { - return (options?.client ?? client).post< - BucketCreateBucketOtrResponse, - BucketCreateBucketOtrError, - ThrowOnError - >({ - ...options, - url: "/buckets/{bucket_name}/ownership_transfer_request", - }); - } - - /** - * Accept a bucket OTR - * Accept an ownership transfer request for a specific workflow. + * Accept a bucket OTR + * Accept an ownership transfer request for a specific workflow. * * Permission `bucket:update` required if the current user is the new owner of the workflow, * otherwise `bucket:update_any` required. @@ -983,629 +784,984 @@ export class BucketPermissionService { } } -export class WorkflowService { +export class NewsService { /** - * Create a new workflow - * Create a new workflow. - * - * For private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed. + * Create news + * Create a news event. * - * For private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed. - * - * Permission `workflow:create` required. + * Permission `news:create` required. */ - public static workflowCreateWorkflow<ThrowOnError extends boolean = false>( - options: Options<WorkflowCreateWorkflowData, ThrowOnError>, + public static newsCreateNews<ThrowOnError extends boolean = false>( + options: Options<NewsCreateNewsData, ThrowOnError>, ) { return (options?.client ?? client).post< - WorkflowCreateWorkflowResponse, - WorkflowCreateWorkflowError, + NewsCreateNewsResponse, + NewsCreateNewsError, ThrowOnError >({ ...options, - url: "/workflows", + url: "/news", }); } /** - * List workflows - * List all workflows. + * List news + * List all news events with filters. * - * Permission `workflow:list` required. + * This endpoint enforces keyset pagination. To iterate over all news, follow the link provided in the `Link` header. + * A missing `Link` header indicates that you iterated over all news with the current filters. + * + * Permission `news:list` required. */ - public static workflowListWorkflows<ThrowOnError extends boolean = false>( - options?: Options<WorkflowListWorkflowsData, ThrowOnError>, + public static newsListNews<ThrowOnError extends boolean = false>( + options?: Options<NewsListNewsData, ThrowOnError>, ) { return (options?.client ?? client).get< - WorkflowListWorkflowsResponse, - WorkflowListWorkflowsError, + NewsListNewsResponse, + NewsListNewsError, ThrowOnError >({ ...options, - url: "/workflows", + url: "/news", }); } /** - * List workflow OTRs - * Get the ownership transfer requests for workflows. + * Get latest news + * List the current news events. * - * Permission `workflow:list` required if `current_owner_id` or `new_owner_id` is the current users id, - * otherwise `workflow:list_all` + * Permission `news:list` required. */ - public static workflowListWorkflowOtrs<ThrowOnError extends boolean = false>( - options?: Options<WorkflowListWorkflowOtrsData, ThrowOnError>, + public static newsListLatestNews<ThrowOnError extends boolean = false>( + options?: Options<unknown, ThrowOnError>, ) { return (options?.client ?? client).get< - WorkflowListWorkflowOtrsResponse, - WorkflowListWorkflowOtrsError, + NewsListLatestNewsResponse, + NewsListLatestNewsError, ThrowOnError >({ ...options, - url: "/workflows/ownership_transfer_request", + url: "/news/latest", }); } /** - * Get anonymized workflow execution - * Get the workflow executions with meta information and anonymized user IDs. + * Get a specific news + * Get a specified news event. * - * Permission `workflow:read` required if the `developer_id` is the same as the uid of the current user, - * other `workflow:read_any`. + * Permission `news:read` required. */ - public static workflowGetDeveloperWorkflowStatistics< - ThrowOnError extends boolean = false, - >( - options?: Options<WorkflowGetDeveloperWorkflowStatisticsData, ThrowOnError>, + public static newsGetNews<ThrowOnError extends boolean = false>( + options: Options<NewsGetNewsData, ThrowOnError>, ) { return (options?.client ?? client).get< - WorkflowGetDeveloperWorkflowStatisticsResponse, - WorkflowGetDeveloperWorkflowStatisticsError, + NewsGetNewsResponse, + NewsGetNewsError, ThrowOnError >({ ...options, - url: "/workflows/developer_statistics", + url: "/news/{nid}", }); } /** - * Get a workflow - * Get a specific workflow. + * Delete a specific news + * Delete a specified news event. * - * Permission `workflow:read` required. + * Permission `news:delete` required. */ - public static workflowGetWorkflow<ThrowOnError extends boolean = false>( - options: Options<WorkflowGetWorkflowData, ThrowOnError>, + public static newsDeleteNews<ThrowOnError extends boolean = false>( + options: Options<NewsDeleteNewsData, ThrowOnError>, ) { - return (options?.client ?? client).get< - WorkflowGetWorkflowResponse, - WorkflowGetWorkflowError, + return (options?.client ?? client).delete< + NewsDeleteNewsResponse, + NewsDeleteNewsError, ThrowOnError >({ ...options, - url: "/workflows/{wid}", + url: "/news/{nid}", }); } +} +export class ResourceService { /** - * Delete a workflow - * Delete a workflow. + * Request a new resource + * Request a new resources. * - * Permission `workflow:delete` required if the `developer_id` is the same as the uid of the current user, - * other `workflow:delete_any`. + * Permission `resource:create` required. */ - public static workflowDeleteWorkflow<ThrowOnError extends boolean = false>( - options: Options<WorkflowDeleteWorkflowData, ThrowOnError>, + public static resourceCreateResource<ThrowOnError extends boolean = false>( + options: Options<ResourceCreateResourceData, ThrowOnError>, ) { - return (options?.client ?? client).delete< - WorkflowDeleteWorkflowResponse, - WorkflowDeleteWorkflowError, + return (options?.client ?? client).post< + ResourceCreateResourceResponse, + ResourceCreateResourceError, ThrowOnError >({ ...options, - url: "/workflows/{wid}", + url: "/resources", }); } /** - * Get a workflow OTR - * Get a specific workflow ownership transfer request. + * List resources + * List all resources. * - * Permission `workflow:read` required if current user is the current or new owner of the workflow, - * otherwise `workflow:read_any` required. + * Permission `resource:list` required. */ - public static workflowGetWorkflowOtr<ThrowOnError extends boolean = false>( - options: Options<WorkflowGetWorkflowOtrData, ThrowOnError>, + public static resourceListResources<ThrowOnError extends boolean = false>( + options?: Options<ResourceListResourcesData, ThrowOnError>, ) { return (options?.client ?? client).get< - WorkflowGetWorkflowOtrResponse, - WorkflowGetWorkflowOtrError, + ResourceListResourcesResponse, + ResourceListResourcesError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/ownership_transfer_request", + url: "/resources", }); } /** - * Create a workflow OTR - * Create a ownership transfer request for a specific workflow. + * List resource sync requests + * List all resource sync requests. * - * Permission `workflow:update` required if the current user is the current owner of the workflow, - * otherwise `workflow:update_any` required. + * Permission `resource:update_any` required. */ - public static workflowCreateWorkflowOtr<ThrowOnError extends boolean = false>( - options: Options<WorkflowCreateWorkflowOtrData, ThrowOnError>, + public static resourceListSyncRequests<ThrowOnError extends boolean = false>( + options?: Options<unknown, ThrowOnError>, ) { - return (options?.client ?? client).post< - WorkflowCreateWorkflowOtrResponse, - WorkflowCreateWorkflowOtrError, + return (options?.client ?? client).get< + ResourceListSyncRequestsResponse, + ResourceListSyncRequestsError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/ownership_transfer_request", + url: "/resources/sync_requests", }); } /** - * Accept a workflow OTR - * Accept an ownership transfer request for a specific workflow. + * List resource OTRs + * Get the ownership transfer requests for resources. * - * Permission `workflow:update` required if the current user is the new owner of the workflow, - * otherwise `workflow:update_any` required. + * Permission `resource:list` required if `current_owner_id` or `new_owner_id` is the current users id, + * otherwise `resource:list_all` */ - public static workflowAcceptWorkflowOtr<ThrowOnError extends boolean = false>( - options: Options<WorkflowAcceptWorkflowOtrData, ThrowOnError>, + public static resourceListResourceOtrs<ThrowOnError extends boolean = false>( + options?: Options<ResourceListResourceOtrsData, ThrowOnError>, ) { - return (options?.client ?? client).patch< - WorkflowAcceptWorkflowOtrResponse, - WorkflowAcceptWorkflowOtrError, + return (options?.client ?? client).get< + ResourceListResourceOtrsResponse, + ResourceListResourceOtrsError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/ownership_transfer_request", + url: "/resources/ownership_transfer_request", }); } /** - * Delete a workflow OTR - * Delete/Reject a workflow ownership transfer request. + * Get a resource + * Get a specific resource. * - * Permission `workflow:update` required if current user is the current or new owner of the workflow, - * otherwise `workflow:update_any` required. + * Permission `resource:read` required. */ - public static workflowDeleteWorkflowOtr<ThrowOnError extends boolean = false>( - options: Options<WorkflowDeleteWorkflowOtrData, ThrowOnError>, + public static resourceGetResource<ThrowOnError extends boolean = false>( + options: Options<ResourceGetResourceData, ThrowOnError>, ) { - return (options?.client ?? client).delete< - WorkflowDeleteWorkflowOtrResponse, - WorkflowDeleteWorkflowOtrError, + return (options?.client ?? client).get< + ResourceGetResourceResponse, + ResourceGetResourceError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/ownership_transfer_request", + url: "/resources/{rid}", }); } /** - * Get statistics for a workflow - * Get the number of started workflow per day. + * Delete a resource + * Delete a resources. * - * Permission `workflow:read` required. + * Permission `resource:delete` required. */ - public static workflowGetWorkflowStatistics< - ThrowOnError extends boolean = false, - >(options: Options<WorkflowGetWorkflowStatisticsData, ThrowOnError>) { - return (options?.client ?? client).get< - WorkflowGetWorkflowStatisticsResponse, - WorkflowGetWorkflowStatisticsError, + public static resourceDeleteResource<ThrowOnError extends boolean = false>( + options: Options<ResourceDeleteResourceData, ThrowOnError>, + ) { + return (options?.client ?? client).delete< + ResourceDeleteResourceResponse, + ResourceDeleteResourceError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/statistics", + url: "/resources/{rid}", }); } /** - * Update a workflow - * Create a new workflow version. + * Get a resource OTR + * Get a specific resource ownership transfer request. * - * Permission `workflow:update` required. + * Permission `resource:read` required if the current user is the current or new owner of the resource, + * otherwise `resource:read_any` required. */ - public static workflowUpdateWorkflow<ThrowOnError extends boolean = false>( - options: Options<WorkflowUpdateWorkflowData, ThrowOnError>, + public static resourceGetResourceOtr<ThrowOnError extends boolean = false>( + options: Options<ResourceGetResourceOtrData, ThrowOnError>, ) { - return (options?.client ?? client).post< - WorkflowUpdateWorkflowResponse, - WorkflowUpdateWorkflowError, + return (options?.client ?? client).get< + ResourceGetResourceOtrResponse, + ResourceGetResourceOtrError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/update", + url: "/resources/{rid}/ownership_transfer_request", }); } -} -export class WorkflowVersionService { /** - * Get all versions of a workflow - * List all versions of a Workflow. + * Create a resource OTR + * Create a ownership transfer request for a specific resource. * - * Permission `workflow:list` required. + * Permission `resource:update` required if the current user is the current owner of the resource, + * otherwise `resource:update_any` required. */ - public static workflowVersionListWorkflowVersion< - ThrowOnError extends boolean = false, - >(options: Options<WorkflowVersionListWorkflowVersionData, ThrowOnError>) { - return (options?.client ?? client).get< - WorkflowVersionListWorkflowVersionResponse, - WorkflowVersionListWorkflowVersionError, + public static resourceCreateResourceOtr<ThrowOnError extends boolean = false>( + options: Options<ResourceCreateResourceOtrData, ThrowOnError>, + ) { + return (options?.client ?? client).post< + ResourceCreateResourceOtrResponse, + ResourceCreateResourceOtrError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/versions", + url: "/resources/{rid}/ownership_transfer_request", }); } /** - * Get a workflow version - * Get a specific version of a workflow. + * Accept a resource OTR + * Accept an ownership transfer request for a specific resource. * - * Permission `workflow:read` required if the version is public or you are the developer of the workflow, - * otherwise `workflow:read_any` + * Permission `resource:update` required if the current user is the new owner of the resource, + * otherwise `resource:update_any` required. */ - public static workflowVersionGetWorkflowVersion< - ThrowOnError extends boolean = false, - >(options: Options<WorkflowVersionGetWorkflowVersionData, ThrowOnError>) { - return (options?.client ?? client).get< - WorkflowVersionGetWorkflowVersionResponse, - WorkflowVersionGetWorkflowVersionError, + public static resourceAcceptResourceOtr<ThrowOnError extends boolean = false>( + options: Options<ResourceAcceptResourceOtrData, ThrowOnError>, + ) { + return (options?.client ?? client).patch< + ResourceAcceptResourceOtrResponse, + ResourceAcceptResourceOtrError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/versions/{git_commit_hash}", + url: "/resources/{rid}/ownership_transfer_request", }); } /** - * Update status of workflow version - * Update the status of a workflow version. + * Delete a resource OTR + * Delete/Reject a resource ownership transfer request. * - * Permission `workflow:update_status` + * Permission `resource:update` required if the current user is the current or new owner of the resource, + * otherwise `resource:update_any` required. */ - public static workflowVersionUpdateWorkflowVersionStatus< - ThrowOnError extends boolean = false, - >( - options: Options< - WorkflowVersionUpdateWorkflowVersionStatusData, - ThrowOnError - >, + public static resourceDeleteResourceOtr<ThrowOnError extends boolean = false>( + options: Options<ResourceDeleteResourceOtrData, ThrowOnError>, ) { - return (options?.client ?? client).patch< - WorkflowVersionUpdateWorkflowVersionStatusResponse, - WorkflowVersionUpdateWorkflowVersionStatusError, + return (options?.client ?? client).delete< + ResourceDeleteResourceOtrResponse, + ResourceDeleteResourceOtrError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/versions/{git_commit_hash}/status", + url: "/resources/{rid}/ownership_transfer_request", }); } +} +export class ResourceVersionService { /** - * Deprecate a workflow version - * Deprecate a workflow version. + * List versions of a resource + * List all the resource version for a specific resource. * - * Permission `workflow:update` required if you are the developer of the workflow, - * otherwise `workflow:update_status` + * Permission 'resource:read' required. */ - public static workflowVersionDeprecateWorkflowVersion< + public static resourceVersionListResourceVersions< ThrowOnError extends boolean = false, - >( - options: Options<WorkflowVersionDeprecateWorkflowVersionData, ThrowOnError>, - ) { - return (options?.client ?? client).patch< - WorkflowVersionDeprecateWorkflowVersionResponse, - WorkflowVersionDeprecateWorkflowVersionError, + >(options: Options<ResourceVersionListResourceVersionsData, ThrowOnError>) { + return (options?.client ?? client).get< + ResourceVersionListResourceVersionsResponse, + ResourceVersionListResourceVersionsError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/versions/{git_commit_hash}/deprecate", + url: "/resources/{rid}/versions", }); } /** - * Update parameter extension of workflow version - * Update the parameter extension of a workflow version. + * Request new version of a resource + * Request a new resource version. * - * Permission `workflow:update` required. + * Permission `resource:update` required if the current user is the maintainer, `resource:update_any` otherwise. */ - public static workflowVersionUpdateWorkflowVersionParameterExtension< + public static resourceVersionRequestResourceVersion< ThrowOnError extends boolean = false, - >( - options: Options< - WorkflowVersionUpdateWorkflowVersionParameterExtensionData, - ThrowOnError - >, - ) { - return (options?.client ?? client).patch< - WorkflowVersionUpdateWorkflowVersionParameterExtensionResponse, - WorkflowVersionUpdateWorkflowVersionParameterExtensionError, + >(options: Options<ResourceVersionRequestResourceVersionData, ThrowOnError>) { + return (options?.client ?? client).post< + ResourceVersionRequestResourceVersionResponse, + ResourceVersionRequestResourceVersionError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/versions/{git_commit_hash}/parameter-extension", + url: "/resources/{rid}/versions", }); } /** - * Delete parameter extension of workflow version - * Delete the parameter extension of a workflow version. + * Get version of a resource + * Get a specific resource version for a specific resource. * - * Permission `workflow:update` required. + * Permission `resource:read` required. If the status of the resource version is not `LATEST` or `SYNCHRONIZED` and + * the current user is not the maintainer, then the permission `resource:read_any` is required. */ - public static workflowVersionDeleteWorkflowVersionParameterExtension< + public static resourceVersionGetResourceVersion< ThrowOnError extends boolean = false, - >( - options: Options< - WorkflowVersionDeleteWorkflowVersionParameterExtensionData, - ThrowOnError - >, - ) { - return (options?.client ?? client).delete< - WorkflowVersionDeleteWorkflowVersionParameterExtensionResponse, - WorkflowVersionDeleteWorkflowVersionParameterExtensionError, + >(options: Options<ResourceVersionGetResourceVersionData, ThrowOnError>) { + return (options?.client ?? client).get< + ResourceVersionGetResourceVersionResponse, + ResourceVersionGetResourceVersionError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/versions/{git_commit_hash}/parameter-extension", + url: "/resources/{rid}/versions/{rvid}", }); } /** - * Fetch documentation for a workflow version - * Get the documentation for a specific workflow version. - * Streams the response directly from the right git repository. + * Download folder structure of resource + * Get the folder structure of the resources. Only available if the resource was previously downloaded to the cluster. * - * Permission `workflow:read` required. + * Permission `resource:read` required. */ - public static workflowVersionDownloadWorkflowDocumentation< + public static resourceVersionResourceFileTree< ThrowOnError extends boolean = false, - >( - options: Options< - WorkflowVersionDownloadWorkflowDocumentationData, - ThrowOnError - >, - ) { + >(options: Options<ResourceVersionResourceFileTreeData, ThrowOnError>) { return (options?.client ?? client).get< - WorkflowVersionDownloadWorkflowDocumentationResponse, - WorkflowVersionDownloadWorkflowDocumentationError, + ResourceVersionResourceFileTreeResponse, + ResourceVersionResourceFileTreeError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/versions/{git_commit_hash}/documentation", + url: "/resources/{rid}/versions/{rvid}/tree", }); } /** - * Upload icon for workflow version - * Upload an icon for the workflow version and returns the new icon URL. + * Request resource version review + * Request the review of a resource version. * - * Permission `workflow:update` required. + * Permission `resource:update` required. */ - public static workflowVersionUploadWorkflowVersionIcon< + public static resourceVersionRequestResourceVersionReview< ThrowOnError extends boolean = false, >( options: Options< - WorkflowVersionUploadWorkflowVersionIconData, + ResourceVersionRequestResourceVersionReviewData, ThrowOnError >, ) { - return (options?.client ?? client).post< - WorkflowVersionUploadWorkflowVersionIconResponse, - WorkflowVersionUploadWorkflowVersionIconError, + return (options?.client ?? client).put< + ResourceVersionRequestResourceVersionReviewResponse, + ResourceVersionRequestResourceVersionReviewError, ThrowOnError >({ ...options, - ...formDataBodySerializer, - headers: { - "Content-Type": null, - ...options?.headers, - }, - url: "/workflows/{wid}/versions/{git_commit_hash}/icon", + url: "/resources/{rid}/versions/{rvid}/request_review", }); } /** - * Delete icon of workflow version - * Delete the icon of the workflow version. + * Request resource version synchronization + * Request the synchronization of a resource version to the cluster. * - * Permission `workflow:update` required. + * Permission `resource:request_sync` required. */ - public static workflowVersionDeleteWorkflowVersionIcon< + public static resourceVersionRequestResourceVersionSync< ThrowOnError extends boolean = false, >( options: Options< - WorkflowVersionDeleteWorkflowVersionIconData, + ResourceVersionRequestResourceVersionSyncData, ThrowOnError >, ) { - return (options?.client ?? client).delete< - WorkflowVersionDeleteWorkflowVersionIconResponse, - WorkflowVersionDeleteWorkflowVersionIconError, + return (options?.client ?? client).put< + ResourceVersionRequestResourceVersionSyncResponse, + ResourceVersionRequestResourceVersionSyncError, ThrowOnError >({ ...options, - url: "/workflows/{wid}/versions/{git_commit_hash}/icon", + url: "/resources/{rid}/versions/{rvid}/request_sync", }); } -} -export class WorkflowExecutionService { /** - * Start a new workflow execution - * Start a new workflow execution. Workflow versions wit status `DEPRECATED` or `DENIED` can't be started. + * Review resource version + * Review answer the resource version. * - * Permission `workflow_execution:create` required if workflow versions status is `PUBLISHED`, - * otherwise `workflow_execution:create_any` required. + * Permission `resource:update_status` required. */ - public static workflowExecutionStartWorkflow< + public static resourceVersionResourceVersionReview< ThrowOnError extends boolean = false, - >(options: Options<WorkflowExecutionStartWorkflowData, ThrowOnError>) { - return (options?.client ?? client).post< - WorkflowExecutionStartWorkflowResponse, - WorkflowExecutionStartWorkflowError, + >(options: Options<ResourceVersionResourceVersionReviewData, ThrowOnError>) { + return (options?.client ?? client).put< + ResourceVersionResourceVersionReviewResponse, + ResourceVersionResourceVersionReviewError, ThrowOnError >({ ...options, - url: "/workflow_executions", + url: "/resources/{rid}/versions/{rvid}/review", }); } /** - * Get all workflow executions - * Get all workflow executions. + * Synchronize resource version with cluster + * Synchronize the resource version to the cluster. * - * This endpoint enforces keyset pagination. To iterate over all workflow executions, follow the link provided in the - * `Link` header. - * A missing `Link` header indicates that you iterated over all workflow executions with the current filters. + * Permission `resource:update_any` required. + */ + public static resourceVersionResourceVersionSync< + ThrowOnError extends boolean = false, + >(options: Options<ResourceVersionResourceVersionSyncData, ThrowOnError>) { + return (options?.client ?? client).put< + ResourceVersionResourceVersionSyncResponse, + ResourceVersionResourceVersionSyncError, + ThrowOnError + >({ + ...options, + url: "/resources/{rid}/versions/{rvid}/sync", + }); + } + + /** + * Set resource version to latest + * Set the resource version as the latest version. * - * Permission `workflow_execution:list` required, if `executor_id` is the same as the current user, - * otherwise `workflow_execution:list_all` required. + * Permission `resource:update_any` required. */ - public static workflowExecutionListWorkflowExecutions< + public static resourceVersionResourceVersionLatest< + ThrowOnError extends boolean = false, + >(options: Options<ResourceVersionResourceVersionLatestData, ThrowOnError>) { + return (options?.client ?? client).put< + ResourceVersionResourceVersionLatestResponse, + ResourceVersionResourceVersionLatestError, + ThrowOnError + >({ + ...options, + url: "/resources/{rid}/versions/{rvid}/latest", + }); + } + + /** + * Delete resource version on cluster + * Delete the resource version on the cluster. + * + * Permission `resource:delete_any` required. + */ + public static resourceVersionDeleteResourceVersionCluster< ThrowOnError extends boolean = false, >( - options?: Options< - WorkflowExecutionListWorkflowExecutionsData, + options: Options< + ResourceVersionDeleteResourceVersionClusterData, ThrowOnError >, ) { - return (options?.client ?? client).get< - WorkflowExecutionListWorkflowExecutionsResponse, - WorkflowExecutionListWorkflowExecutionsError, + return (options?.client ?? client).delete< + ResourceVersionDeleteResourceVersionClusterResponse, + ResourceVersionDeleteResourceVersionClusterError, ThrowOnError >({ ...options, - url: "/workflow_executions", + url: "/resources/{rid}/versions/{rvid}/cluster", }); } /** - * Start a workflow execution with arbitrary git repository - * Start a new workflow execution from an arbitrary git repository. - * - * For private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed. - * - * For private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed. + * Delete resource version in S3 + * Delete the resource version in the S3 bucket. * - * Permission `workflow:create` required. + * Permission `resource:delete_any` required. */ - public static workflowExecutionStartArbitraryWorkflow< + public static resourceVersionDeleteResourceVersionS3< ThrowOnError extends boolean = false, >( - options: Options<WorkflowExecutionStartArbitraryWorkflowData, ThrowOnError>, + options: Options<ResourceVersionDeleteResourceVersionS3Data, ThrowOnError>, ) { - return (options?.client ?? client).post< - WorkflowExecutionStartArbitraryWorkflowResponse, - WorkflowExecutionStartArbitraryWorkflowError, + return (options?.client ?? client).delete< + ResourceVersionDeleteResourceVersionS3Response, + ResourceVersionDeleteResourceVersionS3Error, ThrowOnError >({ ...options, - url: "/workflow_executions/arbitrary", + url: "/resources/{rid}/versions/{rvid}/s3", }); } +} +export class S3KeyService { /** - * Get a workflow execution - * Get a specific workflow execution. + * Get the S3 Access keys from a user + * Get all the S3 Access keys for a specific user. * - * Permission `workflow_execution:read` required if the current user started the workflow execution, - * otherwise `workflow_execution:read_any` required. + * Permission `s3_key:list` required. */ - public static workflowExecutionGetWorkflowExecution< - ThrowOnError extends boolean = false, - >(options: Options<WorkflowExecutionGetWorkflowExecutionData, ThrowOnError>) { + public static s3KeyGetUserKeys<ThrowOnError extends boolean = false>( + options: Options<S3KeyGetUserKeysData, ThrowOnError>, + ) { return (options?.client ?? client).get< - WorkflowExecutionGetWorkflowExecutionResponse, - WorkflowExecutionGetWorkflowExecutionError, + S3KeyGetUserKeysResponse, + S3KeyGetUserKeysError, ThrowOnError >({ ...options, - url: "/workflow_executions/{eid}", + url: "/users/{uid}/keys", }); } /** - * Delete a workflow execution - * Delete a specific workflow execution. + * Create a Access key for a user + * Create a S3 Access key for a specific user. * - * Permission `workflow_execution:delete` required if the current user started the workflow execution, - * otherwise `workflow_execution:delete_any` required. + * Permission `s3_key:create` required. */ - public static workflowExecutionDeleteWorkflowExecution< - ThrowOnError extends boolean = false, - >( - options: Options< - WorkflowExecutionDeleteWorkflowExecutionData, + public static s3KeyCreateUserKey<ThrowOnError extends boolean = false>( + options: Options<S3KeyCreateUserKeyData, ThrowOnError>, + ) { + return (options?.client ?? client).post< + S3KeyCreateUserKeyResponse, + S3KeyCreateUserKeyError, ThrowOnError - >, + >({ + ...options, + url: "/users/{uid}/keys", + }); + } + + /** + * Get a specific S3 Access key from a user + * Get a specific S3 Access Key for a specific user. + * + * Permission `s3_key:read` required. + */ + public static s3KeyGetUserKey<ThrowOnError extends boolean = false>( + options: Options<S3KeyGetUserKeyData, ThrowOnError>, + ) { + return (options?.client ?? client).get< + S3KeyGetUserKeyResponse, + S3KeyGetUserKeyError, + ThrowOnError + >({ + ...options, + url: "/users/{uid}/keys/{access_id}", + }); + } + + /** + * Delete a specific S3 Access key from a user + * Delete a specific S3 Access key for a specific user. + * + * Permission `s3_key:delete` required if the current user is the target, otherwise `s3_key:delete_any` required. + */ + public static s3KeyDeleteUserKey<ThrowOnError extends boolean = false>( + options: Options<S3KeyDeleteUserKeyData, ThrowOnError>, ) { return (options?.client ?? client).delete< - WorkflowExecutionDeleteWorkflowExecutionResponse, - WorkflowExecutionDeleteWorkflowExecutionError, + S3KeyDeleteUserKeyResponse, + S3KeyDeleteUserKeyError, + ThrowOnError + >({ + ...options, + url: "/users/{uid}/keys/{access_id}", + }); + } +} + +export class UserService { + /** + * Create User + * Create a new user in the system and notify him. + * + * Permission `user:create` required. + */ + public static userCreateUser<ThrowOnError extends boolean = false>( + options: Options<UserCreateUserData, ThrowOnError>, + ) { + return (options?.client ?? client).post< + UserCreateUserResponse, + UserCreateUserError, + ThrowOnError + >({ + ...options, + url: "/users", + }); + } + + /** + * List users and search by their name + * List all users in the system.. + * + * Permission `user:list` required. + */ + public static userListUsers<ThrowOnError extends boolean = false>( + options?: Options<UserListUsersData, ThrowOnError>, + ) { + return (options?.client ?? client).get< + UserListUsersResponse, + UserListUsersError, + ThrowOnError + >({ + ...options, + url: "/users", + }); + } + + /** + * Search Users + * Search for users in the system by their name. + * + * Permission `user: search` required. + */ + public static userSearchUsers<ThrowOnError extends boolean = false>( + options: Options<UserSearchUsersData, ThrowOnError>, + ) { + return (options?.client ?? client).get< + UserSearchUsersResponse, + UserSearchUsersError, + ThrowOnError + >({ + ...options, + url: "/users/search", + }); + } + + /** + * Get the logged in user + * Return the user associated with the used JWT. + * + * Permission `user:read` required. + */ + public static userGetLoggedInUser<ThrowOnError extends boolean = false>( + options?: Options<unknown, ThrowOnError>, + ) { + return (options?.client ?? client).get< + UserGetLoggedInUserResponse, + UserGetLoggedInUserError, + ThrowOnError + >({ + ...options, + url: "/users/me", + }); + } + + /** + * Get a user by its uid + * Return the user with the specific uid. + * + * Permission `user:read` required. + */ + public static userGetUser<ThrowOnError extends boolean = false>( + options: Options<UserGetUserData, ThrowOnError>, + ) { + return (options?.client ?? client).get< + UserGetUserResponse, + UserGetUserError, + ThrowOnError + >({ + ...options, + url: "/users/{uid}", + }); + } + + /** + * Update user roles + * Update the roles of a user. + * + * Permission `user:update` required. + */ + public static userUpdateRoles<ThrowOnError extends boolean = false>( + options: Options<UserUpdateRolesData, ThrowOnError>, + ) { + return (options?.client ?? client).put< + UserUpdateRolesResponse, + UserUpdateRolesError, + ThrowOnError + >({ + ...options, + url: "/users/{uid}/roles", + }); + } + + /** + * Resend Invitation + * Resend the invitation link for an user that has an open invitation. + * + * Permission `user:create` required. + */ + public static userResendInvitation<ThrowOnError extends boolean = false>( + options: Options<UserResendInvitationData, ThrowOnError>, + ) { + return (options?.client ?? client).patch< + UserResendInvitationResponse, + UserResendInvitationError, + ThrowOnError + >({ + ...options, + url: "/users/{uid}/invitation", + }); + } +} + +export class WorkflowService { + /** + * Create a new workflow + * Create a new workflow. + * + * For private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed. + * + * For private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed. + * + * Permission `workflow:create` required. + */ + public static workflowCreateWorkflow<ThrowOnError extends boolean = false>( + options: Options<WorkflowCreateWorkflowData, ThrowOnError>, + ) { + return (options?.client ?? client).post< + WorkflowCreateWorkflowResponse, + WorkflowCreateWorkflowError, + ThrowOnError + >({ + ...options, + url: "/workflows", + }); + } + + /** + * List workflows + * List all workflows. + * + * Permission `workflow:list` required. + */ + public static workflowListWorkflows<ThrowOnError extends boolean = false>( + options?: Options<WorkflowListWorkflowsData, ThrowOnError>, + ) { + return (options?.client ?? client).get< + WorkflowListWorkflowsResponse, + WorkflowListWorkflowsError, + ThrowOnError + >({ + ...options, + url: "/workflows", + }); + } + + /** + * List workflow OTRs + * Get the ownership transfer requests for workflows. + * + * Permission `workflow:list` required if `current_owner_id` or `new_owner_id` is the current users id, + * otherwise `workflow:list_all` + */ + public static workflowListWorkflowOtrs<ThrowOnError extends boolean = false>( + options?: Options<WorkflowListWorkflowOtrsData, ThrowOnError>, + ) { + return (options?.client ?? client).get< + WorkflowListWorkflowOtrsResponse, + WorkflowListWorkflowOtrsError, + ThrowOnError + >({ + ...options, + url: "/workflows/ownership_transfer_request", + }); + } + + /** + * Get anonymized workflow execution + * Get the workflow executions with meta information and anonymized user IDs. + * + * Permission `workflow:read` required if the `developer_id` is the same as the uid of the current user, + * other `workflow:read_any`. + */ + public static workflowGetDeveloperWorkflowStatistics< + ThrowOnError extends boolean = false, + >( + options?: Options<WorkflowGetDeveloperWorkflowStatisticsData, ThrowOnError>, + ) { + return (options?.client ?? client).get< + WorkflowGetDeveloperWorkflowStatisticsResponse, + WorkflowGetDeveloperWorkflowStatisticsError, + ThrowOnError + >({ + ...options, + url: "/workflows/developer_statistics", + }); + } + + /** + * Get a workflow + * Get a specific workflow. + * + * Permission `workflow:read` required. + */ + public static workflowGetWorkflow<ThrowOnError extends boolean = false>( + options: Options<WorkflowGetWorkflowData, ThrowOnError>, + ) { + return (options?.client ?? client).get< + WorkflowGetWorkflowResponse, + WorkflowGetWorkflowError, + ThrowOnError + >({ + ...options, + url: "/workflows/{wid}", + }); + } + + /** + * Delete a workflow + * Delete a workflow. + * + * Permission `workflow:delete` required if the `developer_id` is the same as the uid of the current user, + * other `workflow:delete_any`. + */ + public static workflowDeleteWorkflow<ThrowOnError extends boolean = false>( + options: Options<WorkflowDeleteWorkflowData, ThrowOnError>, + ) { + return (options?.client ?? client).delete< + WorkflowDeleteWorkflowResponse, + WorkflowDeleteWorkflowError, + ThrowOnError + >({ + ...options, + url: "/workflows/{wid}", + }); + } + + /** + * Get a workflow OTR + * Get a specific workflow ownership transfer request. + * + * Permission `workflow:read` required if current user is the current or new owner of the workflow, + * otherwise `workflow:read_any` required. + */ + public static workflowGetWorkflowOtr<ThrowOnError extends boolean = false>( + options: Options<WorkflowGetWorkflowOtrData, ThrowOnError>, + ) { + return (options?.client ?? client).get< + WorkflowGetWorkflowOtrResponse, + WorkflowGetWorkflowOtrError, + ThrowOnError + >({ + ...options, + url: "/workflows/{wid}/ownership_transfer_request", + }); + } + + /** + * Create a workflow OTR + * Create a ownership transfer request for a specific workflow. + * + * Permission `workflow:update` required if the current user is the current owner of the workflow, + * otherwise `workflow:update_any` required. + */ + public static workflowCreateWorkflowOtr<ThrowOnError extends boolean = false>( + options: Options<WorkflowCreateWorkflowOtrData, ThrowOnError>, + ) { + return (options?.client ?? client).post< + WorkflowCreateWorkflowOtrResponse, + WorkflowCreateWorkflowOtrError, + ThrowOnError + >({ + ...options, + url: "/workflows/{wid}/ownership_transfer_request", + }); + } + + /** + * Accept a workflow OTR + * Accept an ownership transfer request for a specific workflow. + * + * Permission `workflow:update` required if the current user is the new owner of the workflow, + * otherwise `workflow:update_any` required. + */ + public static workflowAcceptWorkflowOtr<ThrowOnError extends boolean = false>( + options: Options<WorkflowAcceptWorkflowOtrData, ThrowOnError>, + ) { + return (options?.client ?? client).patch< + WorkflowAcceptWorkflowOtrResponse, + WorkflowAcceptWorkflowOtrError, + ThrowOnError + >({ + ...options, + url: "/workflows/{wid}/ownership_transfer_request", + }); + } + + /** + * Delete a workflow OTR + * Delete/Reject a workflow ownership transfer request. + * + * Permission `workflow:update` required if current user is the current or new owner of the workflow, + * otherwise `workflow:update_any` required. + */ + public static workflowDeleteWorkflowOtr<ThrowOnError extends boolean = false>( + options: Options<WorkflowDeleteWorkflowOtrData, ThrowOnError>, + ) { + return (options?.client ?? client).delete< + WorkflowDeleteWorkflowOtrResponse, + WorkflowDeleteWorkflowOtrError, ThrowOnError >({ ...options, - url: "/workflow_executions/{eid}", + url: "/workflows/{wid}/ownership_transfer_request", }); } /** - * Get the parameters of a workflow execution - * Get the parameters of a specific workflow execution. + * Get statistics for a workflow + * Get the number of started workflow per day. * - * Permission `workflow_execution:read` required if the current user started the workflow execution, - * otherwise `workflow_execution:read_any` required. + * Permission `workflow:read` required. */ - public static workflowExecutionGetWorkflowExecutionParams< + public static workflowGetWorkflowStatistics< ThrowOnError extends boolean = false, - >( - options: Options< - WorkflowExecutionGetWorkflowExecutionParamsData, - ThrowOnError - >, - ) { + >(options: Options<WorkflowGetWorkflowStatisticsData, ThrowOnError>) { return (options?.client ?? client).get< - WorkflowExecutionGetWorkflowExecutionParamsResponse, - WorkflowExecutionGetWorkflowExecutionParamsError, + WorkflowGetWorkflowStatisticsResponse, + WorkflowGetWorkflowStatisticsError, ThrowOnError >({ ...options, - url: "/workflow_executions/{eid}/params", + url: "/workflows/{wid}/statistics", }); } /** - * Cancel a workflow execution - * Cancel a running workflow execution. + * Update a workflow + * Create a new workflow version. * - * Permission `workflow_execution:cancel` required if the current user started the workflow execution, - * otherwise `workflow_execution:cancel_any` required. + * Permission `workflow:update` required. */ - public static workflowExecutionCancelWorkflowExecution< - ThrowOnError extends boolean = false, - >( - options: Options< - WorkflowExecutionCancelWorkflowExecutionData, - ThrowOnError - >, + public static workflowUpdateWorkflow<ThrowOnError extends boolean = false>( + options: Options<WorkflowUpdateWorkflowData, ThrowOnError>, ) { return (options?.client ?? client).post< - WorkflowExecutionCancelWorkflowExecutionResponse, - WorkflowExecutionCancelWorkflowExecutionError, + WorkflowUpdateWorkflowResponse, + WorkflowUpdateWorkflowError, ThrowOnError >({ ...options, - url: "/workflow_executions/{eid}/cancel", + url: "/workflows/{wid}/update", }); } } @@ -1685,449 +1841,407 @@ export class WorkflowCredentialsService { } } -export class WorkflowModeService { +export class WorkflowExecutionService { /** - * Get workflow mode - * Get a workflow mode + * Start a new workflow execution + * Start a new workflow execution. Workflow versions wit status `DEPRECATED` or `DENIED` can't be started. * - * Permission `workflow:read` required + * Permission `workflow_execution:create` required if workflow versions status is `PUBLISHED`, + * otherwise `workflow_execution:create_any` required. */ - public static workflowModeGetWorkflowMode< + public static workflowExecutionStartWorkflow< ThrowOnError extends boolean = false, - >(options: Options<WorkflowModeGetWorkflowModeData, ThrowOnError>) { - return (options?.client ?? client).get< - WorkflowModeGetWorkflowModeResponse, - WorkflowModeGetWorkflowModeError, - ThrowOnError - >({ - ...options, - url: "/workflow_modes/{mode_id}", - }); - } -} - -export class ResourceService { - /** - * Request a new resource - * Request a new resources. - * - * Permission `resource:create` required. - */ - public static resourceCreateResource<ThrowOnError extends boolean = false>( - options: Options<ResourceCreateResourceData, ThrowOnError>, - ) { + >(options: Options<WorkflowExecutionStartWorkflowData, ThrowOnError>) { return (options?.client ?? client).post< - ResourceCreateResourceResponse, - ResourceCreateResourceError, + WorkflowExecutionStartWorkflowResponse, + WorkflowExecutionStartWorkflowError, ThrowOnError >({ ...options, - url: "/resources", + url: "/workflow_executions", }); } /** - * List resources - * List all resources. + * List all workflow executions + * Get all workflow executions. * - * Permission `resource:list` required. - */ - public static resourceListResources<ThrowOnError extends boolean = false>( - options?: Options<ResourceListResourcesData, ThrowOnError>, - ) { - return (options?.client ?? client).get< - ResourceListResourcesResponse, - ResourceListResourcesError, - ThrowOnError - >({ - ...options, - url: "/resources", - }); - } - - /** - * List resource sync requests - * List all resource sync requests. + * This endpoint enforces keyset pagination. To iterate over all workflow executions, follow the link provided in the + * `Link` header. + * A missing `Link` header indicates that you iterated over all workflow executions with the current filters. * - * Permission `resource:update_any` required. + * Permission `workflow_execution:list` required, if `executor_id` is the same as the current user, + * otherwise `workflow_execution:list_all` required. */ - public static resourceListSyncRequests<ThrowOnError extends boolean = false>( - options?: Options<unknown, ThrowOnError>, - ) { - return (options?.client ?? client).get< - ResourceListSyncRequestsResponse, - ResourceListSyncRequestsError, + public static workflowExecutionListWorkflowExecutions< + ThrowOnError extends boolean = false, + >( + options?: Options< + WorkflowExecutionListWorkflowExecutionsData, ThrowOnError - >({ - ...options, - url: "/resources/sync_requests", - }); - } - - /** - * List resource OTRs - * Get the ownership transfer requests for resources. - * - * Permission `resource:list` required if `current_owner_id` or `new_owner_id` is the current users id, - * otherwise `resource:list_all` - */ - public static resourceListResourceOtrs<ThrowOnError extends boolean = false>( - options?: Options<ResourceListResourceOtrsData, ThrowOnError>, + >, ) { return (options?.client ?? client).get< - ResourceListResourceOtrsResponse, - ResourceListResourceOtrsError, + WorkflowExecutionListWorkflowExecutionsResponse, + WorkflowExecutionListWorkflowExecutionsError, ThrowOnError >({ ...options, - url: "/resources/ownership_transfer_request", + url: "/workflow_executions", }); } /** - * Get a resource - * Get a specific resource. + * Start a workflow execution with arbitrary git repository + * Start a new workflow execution from an arbitrary git repository. * - * Permission `resource:read` required. - */ - public static resourceGetResource<ThrowOnError extends boolean = false>( - options: Options<ResourceGetResourceData, ThrowOnError>, - ) { - return (options?.client ?? client).get< - ResourceGetResourceResponse, - ResourceGetResourceError, - ThrowOnError - >({ - ...options, - url: "/resources/{rid}", - }); - } - - /** - * Delete a resource - * Delete a resources. + * For private Gitlab repositories, a Project Access Token with the role Reporter and scope `read_api` is needed. * - * Permission `resource:delete` required. + * For private GitHub repositories, a Personal Access Token (classic) with scope `repo` is needed. + * + * Permission `workflow:create` required. */ - public static resourceDeleteResource<ThrowOnError extends boolean = false>( - options: Options<ResourceDeleteResourceData, ThrowOnError>, + public static workflowExecutionStartArbitraryWorkflow< + ThrowOnError extends boolean = false, + >( + options: Options<WorkflowExecutionStartArbitraryWorkflowData, ThrowOnError>, ) { - return (options?.client ?? client).delete< - ResourceDeleteResourceResponse, - ResourceDeleteResourceError, + return (options?.client ?? client).post< + WorkflowExecutionStartArbitraryWorkflowResponse, + WorkflowExecutionStartArbitraryWorkflowError, ThrowOnError >({ ...options, - url: "/resources/{rid}", + url: "/workflow_executions/arbitrary", }); } /** - * Get a resource OTR - * Get a specific resource ownership transfer request. + * Get a workflow execution + * Get a specific workflow execution. * - * Permission `resource:read` required if the current user is the current or new owner of the resource, - * otherwise `resource:read_any` required. + * Permission `workflow_execution:read` required if the current user started the workflow execution, + * otherwise `workflow_execution:read_any` required. */ - public static resourceGetResourceOtr<ThrowOnError extends boolean = false>( - options: Options<ResourceGetResourceOtrData, ThrowOnError>, - ) { + public static workflowExecutionGetWorkflowExecution< + ThrowOnError extends boolean = false, + >(options: Options<WorkflowExecutionGetWorkflowExecutionData, ThrowOnError>) { return (options?.client ?? client).get< - ResourceGetResourceOtrResponse, - ResourceGetResourceOtrError, + WorkflowExecutionGetWorkflowExecutionResponse, + WorkflowExecutionGetWorkflowExecutionError, ThrowOnError >({ ...options, - url: "/resources/{rid}/ownership_transfer_request", + url: "/workflow_executions/{eid}", }); } /** - * Create a resource OTR - * Create a ownership transfer request for a specific resource. + * Delete a workflow execution + * Delete a specific workflow execution. * - * Permission `resource:update` required if the current user is the current owner of the resource, - * otherwise `resource:update_any` required. + * Permission `workflow_execution:delete` required if the current user started the workflow execution, + * otherwise `workflow_execution:delete_any` required. */ - public static resourceCreateResourceOtr<ThrowOnError extends boolean = false>( - options: Options<ResourceCreateResourceOtrData, ThrowOnError>, - ) { - return (options?.client ?? client).post< - ResourceCreateResourceOtrResponse, - ResourceCreateResourceOtrError, + public static workflowExecutionDeleteWorkflowExecution< + ThrowOnError extends boolean = false, + >( + options: Options< + WorkflowExecutionDeleteWorkflowExecutionData, ThrowOnError - >({ - ...options, - url: "/resources/{rid}/ownership_transfer_request", - }); - } - - /** - * Accept a resource OTR - * Accept an ownership transfer request for a specific resource. - * - * Permission `resource:update` required if the current user is the new owner of the resource, - * otherwise `resource:update_any` required. - */ - public static resourceAcceptResourceOtr<ThrowOnError extends boolean = false>( - options: Options<ResourceAcceptResourceOtrData, ThrowOnError>, + >, ) { - return (options?.client ?? client).patch< - ResourceAcceptResourceOtrResponse, - ResourceAcceptResourceOtrError, + return (options?.client ?? client).delete< + WorkflowExecutionDeleteWorkflowExecutionResponse, + WorkflowExecutionDeleteWorkflowExecutionError, ThrowOnError >({ ...options, - url: "/resources/{rid}/ownership_transfer_request", + url: "/workflow_executions/{eid}", }); } /** - * Delete a resource OTR - * Delete/Reject a resource ownership transfer request. + * Get the parameters of a workflow execution + * Get the parameters of a specific workflow execution. * - * Permission `resource:update` required if the current user is the current or new owner of the resource, - * otherwise `resource:update_any` required. + * Permission `workflow_execution:read` required if the current user started the workflow execution, + * otherwise `workflow_execution:read_any` required. */ - public static resourceDeleteResourceOtr<ThrowOnError extends boolean = false>( - options: Options<ResourceDeleteResourceOtrData, ThrowOnError>, + public static workflowExecutionGetWorkflowExecutionParams< + ThrowOnError extends boolean = false, + >( + options: Options< + WorkflowExecutionGetWorkflowExecutionParamsData, + ThrowOnError + >, ) { - return (options?.client ?? client).delete< - ResourceDeleteResourceOtrResponse, - ResourceDeleteResourceOtrError, + return (options?.client ?? client).get< + WorkflowExecutionGetWorkflowExecutionParamsResponse, + WorkflowExecutionGetWorkflowExecutionParamsError, ThrowOnError >({ ...options, - url: "/resources/{rid}/ownership_transfer_request", + url: "/workflow_executions/{eid}/params", }); } -} -export class ResourceVersionService { /** - * List versions of a resource - * List all the resource version for a specific resource. + * Cancel a workflow execution + * Cancel a running workflow execution. * - * Permission 'resource:read' required. + * Permission `workflow_execution:cancel` required if the current user started the workflow execution, + * otherwise `workflow_execution:cancel_any` required. */ - public static resourceVersionListResourceVersions< + public static workflowExecutionCancelWorkflowExecution< ThrowOnError extends boolean = false, - >(options: Options<ResourceVersionListResourceVersionsData, ThrowOnError>) { - return (options?.client ?? client).get< - ResourceVersionListResourceVersionsResponse, - ResourceVersionListResourceVersionsError, + >( + options: Options< + WorkflowExecutionCancelWorkflowExecutionData, + ThrowOnError + >, + ) { + return (options?.client ?? client).post< + WorkflowExecutionCancelWorkflowExecutionResponse, + WorkflowExecutionCancelWorkflowExecutionError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions", + url: "/workflow_executions/{eid}/cancel", }); } +} +export class WorkflowModeService { /** - * Request new version of a resource - * Request a new resource version. + * Get workflow mode + * Get a workflow mode * - * Permission `resource:update` required if the current user is the maintainer, `resource:update_any` otherwise. + * Permission `workflow:read` required */ - public static resourceVersionRequestResourceVersion< + public static workflowModeGetWorkflowMode< ThrowOnError extends boolean = false, - >(options: Options<ResourceVersionRequestResourceVersionData, ThrowOnError>) { - return (options?.client ?? client).post< - ResourceVersionRequestResourceVersionResponse, - ResourceVersionRequestResourceVersionError, + >(options: Options<WorkflowModeGetWorkflowModeData, ThrowOnError>) { + return (options?.client ?? client).get< + WorkflowModeGetWorkflowModeResponse, + WorkflowModeGetWorkflowModeError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions", + url: "/workflow_modes/{mode_id}", }); } +} +export class WorkflowVersionService { /** - * Get version of a resource - * Get a specific resource version for a specific resource. + * Get all versions of a workflow + * List all versions of a Workflow. * - * Permission `resource:read` required. If the status of the resource version is not `LATEST` or `SYNCHRONIZED` and - * the current user is not the maintainer, then the permission `resource:read_any` is required. + * Permission `workflow:list` required. */ - public static resourceVersionGetResourceVersion< + public static workflowVersionListWorkflowVersion< ThrowOnError extends boolean = false, - >(options: Options<ResourceVersionGetResourceVersionData, ThrowOnError>) { + >(options: Options<WorkflowVersionListWorkflowVersionData, ThrowOnError>) { return (options?.client ?? client).get< - ResourceVersionGetResourceVersionResponse, - ResourceVersionGetResourceVersionError, + WorkflowVersionListWorkflowVersionResponse, + WorkflowVersionListWorkflowVersionError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions/{rvid}", + url: "/workflows/{wid}/versions", }); } /** - * Download folder structure of resource - * Get the folder structure of the resources. Only available if the resource was previously downloaded to the cluster. + * Get a workflow version + * Get a specific version of a workflow. * - * Permission `resource:read` required. + * Permission `workflow:read` required if the version is public or you are the developer of the workflow, + * otherwise `workflow:read_any` */ - public static resourceVersionResourceFileTree< + public static workflowVersionGetWorkflowVersion< ThrowOnError extends boolean = false, - >(options: Options<ResourceVersionResourceFileTreeData, ThrowOnError>) { + >(options: Options<WorkflowVersionGetWorkflowVersionData, ThrowOnError>) { return (options?.client ?? client).get< - ResourceVersionResourceFileTreeResponse, - ResourceVersionResourceFileTreeError, + WorkflowVersionGetWorkflowVersionResponse, + WorkflowVersionGetWorkflowVersionError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions/{rvid}/tree", + url: "/workflows/{wid}/versions/{git_commit_hash}", }); } /** - * Request resource version review - * Request the review of a resource version. + * Update status of workflow version + * Update the status of a workflow version. * - * Permission `resource:update` required. + * Permission `workflow:update_status` */ - public static resourceVersionRequestResourceVersionReview< + public static workflowVersionUpdateWorkflowVersionStatus< ThrowOnError extends boolean = false, >( options: Options< - ResourceVersionRequestResourceVersionReviewData, + WorkflowVersionUpdateWorkflowVersionStatusData, ThrowOnError >, ) { - return (options?.client ?? client).put< - ResourceVersionRequestResourceVersionReviewResponse, - ResourceVersionRequestResourceVersionReviewError, + return (options?.client ?? client).patch< + WorkflowVersionUpdateWorkflowVersionStatusResponse, + WorkflowVersionUpdateWorkflowVersionStatusError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions/{rvid}/request_review", + url: "/workflows/{wid}/versions/{git_commit_hash}/status", }); } /** - * Request resource version synchronization - * Request the synchronization of a resource version to the cluster. + * Deprecate a workflow version + * Deprecate a workflow version. * - * Permission `resource:request_sync` required. + * Permission `workflow:update` required if you are the developer of the workflow, + * otherwise `workflow:update_status` */ - public static resourceVersionRequestResourceVersionSync< + public static workflowVersionDeprecateWorkflowVersion< ThrowOnError extends boolean = false, >( - options: Options< - ResourceVersionRequestResourceVersionSyncData, - ThrowOnError - >, + options: Options<WorkflowVersionDeprecateWorkflowVersionData, ThrowOnError>, ) { - return (options?.client ?? client).put< - ResourceVersionRequestResourceVersionSyncResponse, - ResourceVersionRequestResourceVersionSyncError, + return (options?.client ?? client).patch< + WorkflowVersionDeprecateWorkflowVersionResponse, + WorkflowVersionDeprecateWorkflowVersionError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions/{rvid}/request_sync", + url: "/workflows/{wid}/versions/{git_commit_hash}/deprecate", }); } /** - * Review resource version - * Review answer the resource version. + * Update parameter extension of workflow version + * Update the parameter extension of a workflow version. * - * Permission `resource:update_status` required. + * Permission `workflow:update` required. */ - public static resourceVersionResourceVersionReview< + public static workflowVersionUpdateWorkflowVersionParameterExtension< ThrowOnError extends boolean = false, - >(options: Options<ResourceVersionResourceVersionReviewData, ThrowOnError>) { - return (options?.client ?? client).put< - ResourceVersionResourceVersionReviewResponse, - ResourceVersionResourceVersionReviewError, + >( + options: Options< + WorkflowVersionUpdateWorkflowVersionParameterExtensionData, + ThrowOnError + >, + ) { + return (options?.client ?? client).patch< + WorkflowVersionUpdateWorkflowVersionParameterExtensionResponse, + WorkflowVersionUpdateWorkflowVersionParameterExtensionError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions/{rvid}/review", + url: "/workflows/{wid}/versions/{git_commit_hash}/parameter-extension", }); } /** - * Synchronize resource version with cluster - * Synchronize the resource version to the cluster. + * Delete parameter extension of workflow version + * Delete the parameter extension of a workflow version. * - * Permission `resource:update_any` required. + * Permission `workflow:update` required. */ - public static resourceVersionResourceVersionSync< + public static workflowVersionDeleteWorkflowVersionParameterExtension< ThrowOnError extends boolean = false, - >(options: Options<ResourceVersionResourceVersionSyncData, ThrowOnError>) { - return (options?.client ?? client).put< - ResourceVersionResourceVersionSyncResponse, - ResourceVersionResourceVersionSyncError, + >( + options: Options< + WorkflowVersionDeleteWorkflowVersionParameterExtensionData, + ThrowOnError + >, + ) { + return (options?.client ?? client).delete< + WorkflowVersionDeleteWorkflowVersionParameterExtensionResponse, + WorkflowVersionDeleteWorkflowVersionParameterExtensionError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions/{rvid}/sync", + url: "/workflows/{wid}/versions/{git_commit_hash}/parameter-extension", }); } /** - * Set resource version to latest - * Set the resource version as the latest version. + * Fetch documentation for a workflow version + * Get the documentation for a specific workflow version. + * Streams the response directly from the right git repository. * - * Permission `resource:update_any` required. + * Permission `workflow:read` required. */ - public static resourceVersionResourceVersionLatest< + public static workflowVersionDownloadWorkflowDocumentation< ThrowOnError extends boolean = false, - >(options: Options<ResourceVersionResourceVersionLatestData, ThrowOnError>) { - return (options?.client ?? client).put< - ResourceVersionResourceVersionLatestResponse, - ResourceVersionResourceVersionLatestError, + >( + options: Options< + WorkflowVersionDownloadWorkflowDocumentationData, + ThrowOnError + >, + ) { + return (options?.client ?? client).get< + WorkflowVersionDownloadWorkflowDocumentationResponse, + WorkflowVersionDownloadWorkflowDocumentationError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions/{rvid}/latest", + url: "/workflows/{wid}/versions/{git_commit_hash}/documentation", }); } /** - * Delete resource version on cluster - * Delete the resource version on the cluster. + * Upload icon for workflow version + * Upload an icon for the workflow version and returns the new icon URL. * - * Permission `resource:delete_any` required. + * Permission `workflow:update` required. */ - public static resourceVersionDeleteResourceVersionCluster< + public static workflowVersionUploadWorkflowVersionIcon< ThrowOnError extends boolean = false, >( options: Options< - ResourceVersionDeleteResourceVersionClusterData, + WorkflowVersionUploadWorkflowVersionIconData, ThrowOnError >, ) { - return (options?.client ?? client).delete< - ResourceVersionDeleteResourceVersionClusterResponse, - ResourceVersionDeleteResourceVersionClusterError, + return (options?.client ?? client).post< + WorkflowVersionUploadWorkflowVersionIconResponse, + WorkflowVersionUploadWorkflowVersionIconError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions/{rvid}/cluster", + ...formDataBodySerializer, + headers: { + "Content-Type": null, + ...options?.headers, + }, + url: "/workflows/{wid}/versions/{git_commit_hash}/icon", }); } /** - * Delete resource version in S3 - * Delete the resource version in the S3 bucket. + * Delete icon of workflow version + * Delete the icon of the workflow version. * - * Permission `resource:delete_any` required. + * Permission `workflow:update` required. */ - public static resourceVersionDeleteResourceVersionS3< + public static workflowVersionDeleteWorkflowVersionIcon< ThrowOnError extends boolean = false, >( - options: Options<ResourceVersionDeleteResourceVersionS3Data, ThrowOnError>, + options: Options< + WorkflowVersionDeleteWorkflowVersionIconData, + ThrowOnError + >, ) { return (options?.client ?? client).delete< - ResourceVersionDeleteResourceVersionS3Response, - ResourceVersionDeleteResourceVersionS3Error, + WorkflowVersionDeleteWorkflowVersionIconResponse, + WorkflowVersionDeleteWorkflowVersionIconError, ThrowOnError >({ ...options, - url: "/resources/{rid}/versions/{rvid}/s3", + url: "/workflows/{wid}/versions/{git_commit_hash}/icon", }); } } diff --git a/src/client/types.gen.ts b/src/client/types.gen.ts index b3835a4585c11c4c63bccc1d70873d2011467489..5b778e384de375536e68886c01aacabcb6ee23d8 100644 --- a/src/client/types.gen.ts +++ b/src/client/types.gen.ts @@ -47,7 +47,7 @@ export type ApiTokenIn = { /** * List of scopes this Api token has */ - scopes: Array<ScopeEnum>; + scopes: Array<"read" | "write">; }; export type ApiTokenOut = { @@ -62,7 +62,7 @@ export type ApiTokenOut = { /** * List of scopes this Api token has */ - scopes: Array<ScopeEnum>; + scopes: Array<"read" | "write">; /** * The ID of the token */ @@ -93,7 +93,7 @@ export type ApiTokenPrivateOut = { /** * List of scopes this Api token has */ - scopes: Array<ScopeEnum>; + scopes: Array<"read" | "write">; /** * The ID of the token */ @@ -118,7 +118,7 @@ export type ApiTokenPrivateOut = { export type Body_Bucket_update_bucket_public_state = { /** - * New State + * New public state */ public: boolean; }; @@ -165,7 +165,7 @@ export type BucketOut = { */ description: string; /** - * Time when the bucket was created as UNIX timestamp + * UNIX timestamp when the bucket was created */ created_at: number; /** @@ -192,9 +192,9 @@ export type BucketPermissionIn = { */ file_prefix?: string | null; /** - * Permission + * Scopes of the bucket permission */ - permission?: Permission | "READ" | "WRITE" | "READWRITE"; + scopes: Array<"read" | "write">; /** * UID of the grantee */ @@ -222,9 +222,9 @@ export type BucketPermissionOut = { */ file_prefix?: string | null; /** - * Permission + * Scopes of the bucket permission */ - permission?: Permission | "READ" | "WRITE" | "READWRITE"; + scopes: Array<"read" | "write">; /** * UID of the grantee */ @@ -252,9 +252,9 @@ export type BucketPermissionParameters = { */ file_prefix?: string | null; /** - * Permission + * Scopes of the bucket permission */ - permission?: Permission | "READ" | "WRITE" | "READWRITE"; + scopes: Array<"read" | "write">; }; /** @@ -369,6 +369,65 @@ export type IconUpdateOut = { icon_url: string; }; +export type NewsIn = { + /** + * Content of the news. Can contain Markdown. + */ + content: string; + /** + * Title of the news + */ + title: string; + /** + * UNIX timestamp till the news is important. + */ + important_till?: number | null; + /** + * Category of the news event + */ + category?: "workflow" | "resource" | "system"; +}; + +/** + * Category of the news event + */ +export enum category { + WORKFLOW = "workflow", + RESOURCE = "resource", + SYSTEM = "system", +} + +export type NewsOut = { + /** + * Content of the news. Can contain Markdown. + */ + content: string; + /** + * Title of the news + */ + title: string; + /** + * UNIX timestamp till the news is important. + */ + important_till?: number | null; + /** + * Category of the news event + */ + category: "workflow" | "resource" | "system"; + /** + * ID of the news event + */ + news_id: string; + /** + * ID of the creator + */ + creator_id?: string | null; + /** + * UNIX timestamp when the bucket was created + */ + created_at: number; +}; + export enum NextflowVersion { _22_10_0 = "22.10.0", _22_10_1 = "22.10.1", @@ -469,15 +528,6 @@ export type ParameterExtension = { }; }; -/** - * Enumeration for the possible permission on a bucket. - */ -export enum Permission { - READ = "READ", - WRITE = "WRITE", - READWRITE = "READWRITE", -} - /** * Status of a bucket permission. Can be either `ACTIVE` or `INACTIVE`. A permission can only get `INACTIVE` if the * permission itself has a time limit and the current time is not in the timespan. @@ -630,11 +680,6 @@ export type S3Key = { secret_key: string; }; -export enum ScopeEnum { - READ = "read", - WRITE = "write", -} - export type UserIn = { /** * Full Name of the user @@ -1042,35 +1087,12 @@ export type WorkflowVersionStatusSchema = { status: WorkflowVersionStatus; }; -export type AuthLoginData = { - query?: { - /** - * Unique token to validate an invitation - */ - invitation_token?: string; - /** - * Will be appended to redirect response in the callback route as URL query parameter `next` - */ - next?: string; - /** - * The OIDC provider to use for login - */ - provider?: OIDCProvider; - }; -}; - -export type AuthLoginCallbackData = { - path: { - provider: OIDCProvider; - }; -}; - export type ApiTokenListTokenData = { query?: { /** * UID of the user to filter for. Permission `api_token:list` required if current users is the target. */ - uid?: string; + uid?: string | null; }; }; @@ -1112,148 +1134,29 @@ export type ApiTokenDeleteTokenResponse = void; export type ApiTokenDeleteTokenError = ErrorDetail | HTTPValidationError; -export type UserCreateUserData = { - body: UserIn; -}; - -export type UserCreateUserResponse = UserOutExtended; - -export type UserCreateUserError = ErrorDetail | HTTPValidationError; - -export type UserListUsersData = { +export type AuthLoginData = { query?: { /** - * Filter users by their role. If multiple are selected, they are concatenating by an OR Expression. - */ - filter_roles?: Array<RoleEnum>; - /** - * Filter users by a substring in their name. - */ - name_substring?: string; - }; -}; - -export type UserListUsersResponse = Array<UserOutExtended>; - -export type UserListUsersError = ErrorDetail | HTTPValidationError; - -export type UserSearchUsersData = { - query: { - /** - * Filter users by a substring in their name. - */ - name_substring: string; - }; -}; - -export type UserSearchUsersResponse = Array<UserOut>; - -export type UserSearchUsersError = ErrorDetail | HTTPValidationError; - -export type UserGetLoggedInUserResponse = UserOutExtended; - -export type UserGetLoggedInUserError = ErrorDetail; - -export type UserGetUserData = { - path: { - /** - * UID of a user - */ - uid: string; - }; -}; - -export type UserGetUserResponse = UserOut; - -export type UserGetUserError = ErrorDetail | HTTPValidationError; - -export type UserUpdateRolesData = { - body: UserRoles; - path: { - /** - * UID of a user - */ - uid: string; - }; -}; - -export type UserUpdateRolesResponse = UserOutExtended; - -export type UserUpdateRolesError = ErrorDetail | HTTPValidationError; - -export type UserResendInvitationData = { - path: { - /** - * UID of a user - */ - uid: string; - }; -}; - -export type UserResendInvitationResponse = UserOutExtended; - -export type UserResendInvitationError = ErrorDetail | HTTPValidationError; - -export type S3KeyGetUserKeysData = { - path: { - /** - * UID of a user - */ - uid: string; - }; -}; - -export type S3KeyGetUserKeysResponse = Array<S3Key>; - -export type S3KeyGetUserKeysError = ErrorDetail | HTTPValidationError; - -export type S3KeyCreateUserKeyData = { - path: { - /** - * UID of a user + * Unique token to validate an invitation */ - uid: string; - }; -}; - -export type S3KeyCreateUserKeyResponse = S3Key; - -export type S3KeyCreateUserKeyError = ErrorDetail | HTTPValidationError; - -export type S3KeyGetUserKeyData = { - path: { + invitation_token?: string | null; /** - * ID of the S3 access key + * Will be appended to redirect response in the callback route as URL query parameter `next` */ - access_id: string; + next?: string | null; /** - * UID of a user + * The OIDC provider to use for login */ - uid: string; + provider?: OIDCProvider; }; }; -export type S3KeyGetUserKeyResponse = S3Key; - -export type S3KeyGetUserKeyError = ErrorDetail | HTTPValidationError; - -export type S3KeyDeleteUserKeyData = { +export type AuthLoginCallbackData = { path: { - /** - * ID of the S3 access key - */ - access_id: string; - /** - * UID of a user - */ - uid: string; + provider: OIDCProvider; }; }; -export type S3KeyDeleteUserKeyResponse = void; - -export type S3KeyDeleteUserKeyError = ErrorDetail | HTTPValidationError; - export type BucketListBucketsData = { query?: { /** @@ -1263,7 +1166,7 @@ export type BucketListBucketsData = { /** * UID of the user for whom to fetch the buckets for. Permission `bucket:read_any` required if current user is not the target. */ - owner_id?: string; + owner_id?: string | null; }; }; @@ -1284,11 +1187,11 @@ export type BucketListBucketOtrsData = { /** * UID of user who is the current owner. */ - current_owner_id?: string; + current_owner_id?: string | null; /** * UID of user who will be the new owner. */ - new_owner_id?: string; + new_owner_id?: string | null; }; }; @@ -1299,7 +1202,7 @@ export type BucketListBucketOtrsError = ErrorDetail | HTTPValidationError; export type BucketGetBucketData = { path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; }; @@ -1312,7 +1215,7 @@ export type BucketGetBucketError = ErrorDetail | HTTPValidationError; export type BucketDeleteBucketData = { path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; }; @@ -1331,7 +1234,7 @@ export type BucketDeleteBucketError = ErrorDetail | HTTPValidationError; export type BucketGetBucketOtrData = { path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; }; @@ -1345,7 +1248,7 @@ export type BucketCreateBucketOtrData = { body: OwnershipTransferRequestIn; path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; }; @@ -1358,7 +1261,7 @@ export type BucketCreateBucketOtrError = ErrorDetail | HTTPValidationError; export type BucketAcceptBucketOtrData = { path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; }; @@ -1371,7 +1274,7 @@ export type BucketAcceptBucketOtrError = ErrorDetail | HTTPValidationError; export type BucketDeleteBucketOtrData = { path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; }; @@ -1385,7 +1288,7 @@ export type BucketUpdateBucketPublicStateData = { body: Body_Bucket_update_bucket_public_state; path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; }; @@ -1401,7 +1304,7 @@ export type BucketUpdateBucketLimitsData = { body: BucketSizeLimits; path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; }; @@ -1414,13 +1317,13 @@ export type BucketUpdateBucketLimitsError = ErrorDetail | HTTPValidationError; export type BucketPermissionListPermissionsData = { query?: { /** - * Status of Bucket Permissions to fetch + * Scopes of Bucket Permissions to fetch */ - permission_status?: PermissionStatus; + permission_scopes?: Array<"read" | "write"> | null; /** - * Type of Bucket Permissions to fetch + * Status of Bucket Permissions to fetch */ - permission_types?: Array<Permission>; + permission_status?: PermissionStatus | null; }; }; @@ -1450,13 +1353,13 @@ export type BucketPermissionListPermissionsPerUserData = { }; query?: { /** - * Status of Bucket Permissions to fetch + * Scopes of Bucket Permissions to fetch */ - permission_status?: PermissionStatus; + permission_scopes?: Array<"read" | "write"> | null; /** - * Type of Bucket Permissions to fetch + * Status of Bucket Permissions to fetch */ - permission_types?: Array<Permission>; + permission_status?: PermissionStatus | null; }; }; @@ -1470,19 +1373,19 @@ export type BucketPermissionListPermissionsPerUserError = export type BucketPermissionListPermissionsPerBucketData = { path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; }; query?: { /** - * Status of Bucket Permissions to fetch + * Scopes of Bucket Permissions to fetch */ - permission_status?: PermissionStatus; + permission_scopes?: Array<"read" | "write"> | null; /** - * Type of Bucket Permissions to fetch + * Status of Bucket Permissions to fetch */ - permission_types?: Array<Permission>; + permission_status?: PermissionStatus | null; }; }; @@ -1496,7 +1399,7 @@ export type BucketPermissionListPermissionsPerBucketError = export type BucketPermissionGetPermissionForBucketData = { path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; /** @@ -1517,7 +1420,7 @@ export type BucketPermissionUpdatePermissionData = { body: BucketPermissionParameters; path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; /** @@ -1536,7 +1439,7 @@ export type BucketPermissionUpdatePermissionError = export type BucketPermissionDeletePermissionData = { path: { /** - * Name of bucket + * Name of a bucket */ bucket_name: string; /** @@ -1552,516 +1455,760 @@ export type BucketPermissionDeletePermissionError = | ErrorDetail | HTTPValidationError; -export type WorkflowCreateWorkflowData = { - body: WorkflowIn; +export type NewsCreateNewsData = { + body: NewsIn; }; -export type WorkflowCreateWorkflowResponse = WorkflowOut; +export type NewsCreateNewsResponse = NewsOut; -export type WorkflowCreateWorkflowError = ErrorDetail | HTTPValidationError; +export type NewsCreateNewsError = ErrorDetail | HTTPValidationError; -export type WorkflowListWorkflowsData = { +export type NewsListNewsData = { query?: { /** - * Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`. + * Filter for news that are created after this UNIX timestamp */ - developer_id?: string; + created_after?: number | null; /** - * Filter workflows by a substring in their name. + * Filter for news created by a specific user */ - name_substring?: string; + creator_id?: string | null; /** - * Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`. + * Id of the item to start the query from. DO NOT SET MANUALLY. */ - version_status?: Array<WorkflowVersionStatus>; + id_after?: string | null; + /** + * Number of items to list per page + */ + per_page?: number; + /** + * Sort order of items with creation time + */ + sort?: "asc" | "desc"; }; }; -export type WorkflowListWorkflowsResponse = Array<WorkflowOut>; +export type NewsListNewsResponse = Array<NewsOut>; -export type WorkflowListWorkflowsError = ErrorDetail | HTTPValidationError; +export type NewsListNewsError = ErrorDetail | HTTPValidationError; -export type WorkflowListWorkflowOtrsData = { - query?: { +export type NewsListLatestNewsResponse = Array<NewsOut>; + +export type NewsListLatestNewsError = ErrorDetail; + +export type NewsGetNewsData = { + path: { /** - * UID of user who is the current owner. + * ID of a news event */ - current_owner_id?: string; + nid: string; + }; +}; + +export type NewsGetNewsResponse = NewsOut; + +export type NewsGetNewsError = ErrorDetail | HTTPValidationError; + +export type NewsDeleteNewsData = { + path: { /** - * UID of user who will be the new owner. + * ID of a news event */ - new_owner_id?: string; + nid: string; }; }; -export type WorkflowListWorkflowOtrsResponse = - Array<OwnershipTransferRequestOut>; +export type NewsDeleteNewsResponse = void; -export type WorkflowListWorkflowOtrsError = ErrorDetail | HTTPValidationError; +export type NewsDeleteNewsError = ErrorDetail | HTTPValidationError; -export type WorkflowGetDeveloperWorkflowStatisticsData = { +export type ResourceCreateResourceData = { + body: ResourceIn; +}; + +export type ResourceCreateResourceResponse = ResourceOut; + +export type ResourceCreateResourceError = ErrorDetail | HTTPValidationError; + +export type ResourceListResourcesData = { query?: { /** - * Filter by the developer of the workflows + * Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`. */ - developer_id?: string; + maintainer_id?: string | null; /** - * Filter by workflow executions before this date + * Filter resources by a substring in their name. */ - end?: string; + name_substring?: string | null; /** - * Filter by workflow executions after this date + * Filter resources to by the public flag */ - start?: string; + public?: boolean | null; /** - * Filter by workflow IDs + * Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required. */ - workflow_id?: Array<string>; + version_status?: Array<ResourceVersionStatus> | null; }; }; -export type WorkflowGetDeveloperWorkflowStatisticsResponse = - Array<AnonymizedWorkflowExecution>; +export type ResourceListResourcesResponse = Array<ResourceOut>; -export type WorkflowGetDeveloperWorkflowStatisticsError = - | ErrorDetail - | HTTPValidationError; +export type ResourceListResourcesError = ErrorDetail | HTTPValidationError; -export type WorkflowGetWorkflowData = { +export type ResourceListSyncRequestsResponse = + Array<UserSynchronizationRequestOut>; + +export type ResourceListSyncRequestsError = ErrorDetail; + +export type ResourceListResourceOtrsData = { + query?: { + /** + * UID of user who is the current owner. + */ + current_owner_id?: string | null; + /** + * UID of user who will be the new owner. + */ + new_owner_id?: string | null; + }; +}; + +export type ResourceListResourceOtrsResponse = + Array<OwnershipTransferRequestOut>; + +export type ResourceListResourceOtrsError = ErrorDetail | HTTPValidationError; + +export type ResourceGetResourceData = { path: { /** - * ID of a workflow + * ID of a resource */ - wid: string; + rid: string; }; query?: { /** - * Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED` + * Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required. */ - version_status?: Array<WorkflowVersionStatus>; + version_status?: Array<ResourceVersionStatus> | null; }; }; -export type WorkflowGetWorkflowResponse = WorkflowOut; +export type ResourceGetResourceResponse = ResourceOut; -export type WorkflowGetWorkflowError = ErrorDetail | HTTPValidationError; +export type ResourceGetResourceError = ErrorDetail | HTTPValidationError; -export type WorkflowDeleteWorkflowData = { +export type ResourceDeleteResourceData = { path: { /** - * ID of a workflow + * ID of a resource */ - wid: string; + rid: string; }; }; -export type WorkflowDeleteWorkflowResponse = void; +export type ResourceDeleteResourceResponse = void; -export type WorkflowDeleteWorkflowError = ErrorDetail | HTTPValidationError; +export type ResourceDeleteResourceError = ErrorDetail | HTTPValidationError; -export type WorkflowGetWorkflowOtrData = { +export type ResourceGetResourceOtrData = { path: { /** - * ID of a workflow + * ID of a resource */ - wid: string; + rid: string; }; }; -export type WorkflowGetWorkflowOtrResponse = OwnershipTransferRequestOut; +export type ResourceGetResourceOtrResponse = OwnershipTransferRequestOut; -export type WorkflowGetWorkflowOtrError = ErrorDetail | HTTPValidationError; +export type ResourceGetResourceOtrError = ErrorDetail | HTTPValidationError; -export type WorkflowCreateWorkflowOtrData = { +export type ResourceCreateResourceOtrData = { body: OwnershipTransferRequestIn; path: { /** - * ID of a workflow + * ID of a resource */ - wid: string; + rid: string; }; }; -export type WorkflowCreateWorkflowOtrResponse = OwnershipTransferRequestOut; +export type ResourceCreateResourceOtrResponse = OwnershipTransferRequestOut; -export type WorkflowCreateWorkflowOtrError = ErrorDetail | HTTPValidationError; +export type ResourceCreateResourceOtrError = ErrorDetail | HTTPValidationError; -export type WorkflowAcceptWorkflowOtrData = { +export type ResourceAcceptResourceOtrData = { path: { /** - * ID of a workflow + * ID of a resource */ - wid: string; + rid: string; }; }; -export type WorkflowAcceptWorkflowOtrResponse = WorkflowOut; +export type ResourceAcceptResourceOtrResponse = ResourceOut; -export type WorkflowAcceptWorkflowOtrError = ErrorDetail | HTTPValidationError; +export type ResourceAcceptResourceOtrError = ErrorDetail | HTTPValidationError; -export type WorkflowDeleteWorkflowOtrData = { +export type ResourceDeleteResourceOtrData = { path: { /** - * ID of a workflow + * ID of a resource */ - wid: string; + rid: string; }; }; -export type WorkflowDeleteWorkflowOtrResponse = void; +export type ResourceDeleteResourceOtrResponse = void; -export type WorkflowDeleteWorkflowOtrError = ErrorDetail | HTTPValidationError; +export type ResourceDeleteResourceOtrError = ErrorDetail | HTTPValidationError; -export type WorkflowGetWorkflowStatisticsData = { +export type ResourceVersionListResourceVersionsData = { path: { /** - * ID of a workflow + * ID of a resource */ - wid: string; + rid: string; + }; + query?: { + /** + * Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required. + */ + version_status?: Array<ResourceVersionStatus> | null; }; }; -export type WorkflowGetWorkflowStatisticsResponse = Array<WorkflowStatistic>; +export type ResourceVersionListResourceVersionsResponse = + Array<ResourceVersionOut>; -export type WorkflowGetWorkflowStatisticsError = +export type ResourceVersionListResourceVersionsError = | ErrorDetail | HTTPValidationError; -export type WorkflowUpdateWorkflowData = { - body: WorkflowUpdate; +export type ResourceVersionRequestResourceVersionData = { + body: ResourceVersionIn; path: { /** - * ID of a workflow + * ID of a resource */ - wid: string; + rid: string; }; }; -export type WorkflowUpdateWorkflowResponse = WorkflowVersion; +export type ResourceVersionRequestResourceVersionResponse = ResourceVersionOut; -export type WorkflowUpdateWorkflowError = ErrorDetail | HTTPValidationError; +export type ResourceVersionRequestResourceVersionError = + | ErrorDetail + | HTTPValidationError; -export type WorkflowVersionListWorkflowVersionData = { +export type ResourceVersionGetResourceVersionData = { path: { /** - * ID of a workflow + * ID of a resource */ - wid: string; - }; - query?: { + rid: string; /** - * Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED` + * ID of a resource version */ - version_status?: Array<WorkflowVersionStatus>; + rvid: string; }; }; -export type WorkflowVersionListWorkflowVersionResponse = Array<WorkflowVersion>; +export type ResourceVersionGetResourceVersionResponse = ResourceVersionOut; -export type WorkflowVersionListWorkflowVersionError = +export type ResourceVersionGetResourceVersionError = | ErrorDetail | HTTPValidationError; -export type WorkflowVersionGetWorkflowVersionData = { +export type ResourceVersionResourceFileTreeData = { path: { /** - * Git commit `git_commit_hash` of specific version or `latest`. + * ID of a resource */ - git_commit_hash: string; + rid: string; /** - * ID of a workflow + * ID of a resource version */ - wid: string; + rvid: string; }; }; -export type WorkflowVersionGetWorkflowVersionResponse = WorkflowVersion; +export type ResourceVersionResourceFileTreeResponse = Array<FileTree>; -export type WorkflowVersionGetWorkflowVersionError = +export type ResourceVersionResourceFileTreeError = | ErrorDetail | HTTPValidationError; -export type WorkflowVersionUpdateWorkflowVersionStatusData = { - body: WorkflowVersionStatusSchema; +export type ResourceVersionRequestResourceVersionReviewData = { path: { /** - * Git commit git_commit_hash of specific version. + * ID of a resource */ - git_commit_hash: string; + rid: string; /** - * ID of a workflow + * ID of a resource version */ - wid: string; + rvid: string; }; }; -export type WorkflowVersionUpdateWorkflowVersionStatusResponse = - WorkflowVersion; +export type ResourceVersionRequestResourceVersionReviewResponse = + ResourceVersionOut; -export type WorkflowVersionUpdateWorkflowVersionStatusError = +export type ResourceVersionRequestResourceVersionReviewError = | ErrorDetail | HTTPValidationError; -export type WorkflowVersionDeprecateWorkflowVersionData = { +export type ResourceVersionRequestResourceVersionSyncData = { + body: UserSynchronizationRequestIn; path: { /** - * Git commit git_commit_hash of specific version. + * ID of a resource */ - git_commit_hash: string; + rid: string; /** - * ID of a workflow + * ID of a resource version */ - wid: string; + rvid: string; }; }; -export type WorkflowVersionDeprecateWorkflowVersionResponse = WorkflowVersion; +export type ResourceVersionRequestResourceVersionSyncResponse = + ResourceVersionOut; -export type WorkflowVersionDeprecateWorkflowVersionError = +export type ResourceVersionRequestResourceVersionSyncError = | ErrorDetail | HTTPValidationError; -export type WorkflowVersionUpdateWorkflowVersionParameterExtensionData = { - body: ParameterExtension; +export type ResourceVersionResourceVersionReviewData = { + body: UserRequestAnswer; path: { /** - * Git commit git_commit_hash of specific version. + * ID of a resource */ - git_commit_hash: string; + rid: string; /** - * ID of a workflow + * ID of a resource version */ - wid: string; + rvid: string; }; }; -export type WorkflowVersionUpdateWorkflowVersionParameterExtensionResponse = - WorkflowVersion; +export type ResourceVersionResourceVersionReviewResponse = ResourceVersionOut; -export type WorkflowVersionUpdateWorkflowVersionParameterExtensionError = +export type ResourceVersionResourceVersionReviewError = | ErrorDetail | HTTPValidationError; -export type WorkflowVersionDeleteWorkflowVersionParameterExtensionData = { +export type ResourceVersionResourceVersionSyncData = { + body: UserRequestAnswer; path: { /** - * Git commit git_commit_hash of specific version. + * ID of a resource */ - git_commit_hash: string; + rid: string; /** - * ID of a workflow + * ID of a resource version */ - wid: string; + rvid: string; }; }; -export type WorkflowVersionDeleteWorkflowVersionParameterExtensionResponse = - void; +export type ResourceVersionResourceVersionSyncResponse = ResourceVersionOut; -export type WorkflowVersionDeleteWorkflowVersionParameterExtensionError = +export type ResourceVersionResourceVersionSyncError = | ErrorDetail | HTTPValidationError; -export type WorkflowVersionDownloadWorkflowDocumentationData = { +export type ResourceVersionResourceVersionLatestData = { path: { /** - * Git commit git_commit_hash of specific version. - */ - git_commit_hash: string; - /** - * ID of a workflow - */ - wid: string; - }; - query?: { - /** - * Specify which type of documentation the client wants to fetch + * ID of a resource */ - document?: DocumentationEnum; + rid: string; /** - * Workflow Mode + * ID of a resource version */ - mode_id?: string; + rvid: string; }; }; -export type WorkflowVersionDownloadWorkflowDocumentationResponse = unknown; +export type ResourceVersionResourceVersionLatestResponse = ResourceVersionOut; -export type WorkflowVersionDownloadWorkflowDocumentationError = +export type ResourceVersionResourceVersionLatestError = | ErrorDetail | HTTPValidationError; -export type WorkflowVersionUploadWorkflowVersionIconData = { - body: Body_Workflow_Version_upload_workflow_version_icon; +export type ResourceVersionDeleteResourceVersionClusterData = { path: { /** - * Git commit git_commit_hash of specific version. + * ID of a resource */ - git_commit_hash: string; + rid: string; /** - * ID of a workflow + * ID of a resource version */ - wid: string; + rvid: string; }; }; -export type WorkflowVersionUploadWorkflowVersionIconResponse = IconUpdateOut; +export type ResourceVersionDeleteResourceVersionClusterResponse = + ResourceVersionOut; -export type WorkflowVersionUploadWorkflowVersionIconError = +export type ResourceVersionDeleteResourceVersionClusterError = | ErrorDetail | HTTPValidationError; -export type WorkflowVersionDeleteWorkflowVersionIconData = { +export type ResourceVersionDeleteResourceVersionS3Data = { path: { /** - * Git commit git_commit_hash of specific version. + * ID of a resource */ - git_commit_hash: string; + rid: string; /** - * ID of a workflow + * ID of a resource version */ - wid: string; + rvid: string; }; }; -export type WorkflowVersionDeleteWorkflowVersionIconResponse = void; +export type ResourceVersionDeleteResourceVersionS3Response = ResourceVersionOut; -export type WorkflowVersionDeleteWorkflowVersionIconError = +export type ResourceVersionDeleteResourceVersionS3Error = | ErrorDetail | HTTPValidationError; -export type WorkflowExecutionStartWorkflowData = { - body: WorkflowExecutionIn; +export type S3KeyGetUserKeysData = { + path: { + /** + * UID of a user + */ + uid: string; + }; }; -export type WorkflowExecutionStartWorkflowResponse = WorkflowExecutionOut; +export type S3KeyGetUserKeysResponse = Array<S3Key>; -export type WorkflowExecutionStartWorkflowError = - | ErrorDetail - | HTTPValidationError; +export type S3KeyGetUserKeysError = ErrorDetail | HTTPValidationError; -export type WorkflowExecutionListWorkflowExecutionsData = { - query?: { - /** - * Filter for status of workflow execution +export type S3KeyCreateUserKeyData = { + path: { + /** + * UID of a user */ - execution_status?: Array<WorkflowExecutionStatus>; + uid: string; + }; +}; + +export type S3KeyCreateUserKeyResponse = S3Key; + +export type S3KeyCreateUserKeyError = ErrorDetail | HTTPValidationError; + +export type S3KeyGetUserKeyData = { + path: { /** - * Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required. + * ID of the S3 access key */ - executor_id?: string; + access_id: string; /** - * Id of the item to start the query from. DO NOT SET MANUALLY. + * UID of a user */ - id_after?: string; + uid: string; + }; +}; + +export type S3KeyGetUserKeyResponse = S3Key; + +export type S3KeyGetUserKeyError = ErrorDetail | HTTPValidationError; + +export type S3KeyDeleteUserKeyData = { + path: { /** - * Number of items to list per page + * ID of the S3 access key */ - per_page?: number; + access_id: string; /** - * Sort order of items with creation time + * UID of a user */ - sort?: "asc" | "desc"; + uid: string; + }; +}; + +export type S3KeyDeleteUserKeyResponse = void; + +export type S3KeyDeleteUserKeyError = ErrorDetail | HTTPValidationError; + +export type UserCreateUserData = { + body: UserIn; +}; + +export type UserCreateUserResponse = UserOutExtended; + +export type UserCreateUserError = ErrorDetail | HTTPValidationError; + +export type UserListUsersData = { + query?: { /** - * Filter for workflow executions that started after this UNIX timestamp + * Filter users by their role. If multiple are selected, they are concatenating by an OR Expression. */ - start_after?: number; + filter_roles?: Array<RoleEnum> | null; /** - * Filter for workflow executions that started before this UNIX timestamp + * Filter users by a substring in their name. */ - start_before?: number; + name_substring?: string | null; + }; +}; + +export type UserListUsersResponse = Array<UserOutExtended>; + +export type UserListUsersError = ErrorDetail | HTTPValidationError; + +export type UserSearchUsersData = { + query: { /** - * Filter for workflow + * Filter users by a substring in their name. */ - workflow_id?: string; + name_substring: string; + }; +}; + +export type UserSearchUsersResponse = Array<UserOut>; + +export type UserSearchUsersError = ErrorDetail | HTTPValidationError; + +export type UserGetLoggedInUserResponse = UserOutExtended; + +export type UserGetLoggedInUserError = ErrorDetail; + +export type UserGetUserData = { + path: { /** - * Filter for workflow version + * UID of a user */ - workflow_version_id?: string; + uid: string; }; }; -export type WorkflowExecutionListWorkflowExecutionsResponse = - Array<WorkflowExecutionOut>; +export type UserGetUserResponse = UserOut; -export type WorkflowExecutionListWorkflowExecutionsError = - | ErrorDetail - | HTTPValidationError; +export type UserGetUserError = ErrorDetail | HTTPValidationError; -export type WorkflowExecutionStartArbitraryWorkflowData = { - body: DevWorkflowExecutionIn; +export type UserUpdateRolesData = { + body: UserRoles; + path: { + /** + * UID of a user + */ + uid: string; + }; }; -export type WorkflowExecutionStartArbitraryWorkflowResponse = - WorkflowExecutionOut; +export type UserUpdateRolesResponse = UserOutExtended; -export type WorkflowExecutionStartArbitraryWorkflowError = - | ErrorDetail - | HTTPValidationError; +export type UserUpdateRolesError = ErrorDetail | HTTPValidationError; -export type WorkflowExecutionGetWorkflowExecutionData = { +export type UserResendInvitationData = { path: { /** - * ID of a workflow execution. + * UID of a user */ - eid: string; + uid: string; }; }; -export type WorkflowExecutionGetWorkflowExecutionResponse = - WorkflowExecutionOut; +export type UserResendInvitationResponse = UserOutExtended; -export type WorkflowExecutionGetWorkflowExecutionError = +export type UserResendInvitationError = ErrorDetail | HTTPValidationError; + +export type WorkflowCreateWorkflowData = { + body: WorkflowIn; +}; + +export type WorkflowCreateWorkflowResponse = WorkflowOut; + +export type WorkflowCreateWorkflowError = ErrorDetail | HTTPValidationError; + +export type WorkflowListWorkflowsData = { + query?: { + /** + * Filter for workflow by developer. If current user is the developer, permission `workflow:list` required, otherwise `workflow:list_filter`. + */ + developer_id?: string | null; + /** + * Filter workflows by a substring in their name. + */ + name_substring?: string | null; + /** + * Which versions of the workflow to include in the response. Permission `workflow:list_filter` required, unless `developer_id` is provided and current user is developer, then only permission `workflow:list` required. Default `PUBLISHED` and `DEPRECATED`. + */ + version_status?: Array<WorkflowVersionStatus> | null; + }; +}; + +export type WorkflowListWorkflowsResponse = Array<WorkflowOut>; + +export type WorkflowListWorkflowsError = ErrorDetail | HTTPValidationError; + +export type WorkflowListWorkflowOtrsData = { + query?: { + /** + * UID of user who is the current owner. + */ + current_owner_id?: string | null; + /** + * UID of user who will be the new owner. + */ + new_owner_id?: string | null; + }; +}; + +export type WorkflowListWorkflowOtrsResponse = + Array<OwnershipTransferRequestOut>; + +export type WorkflowListWorkflowOtrsError = ErrorDetail | HTTPValidationError; + +export type WorkflowGetDeveloperWorkflowStatisticsData = { + query?: { + /** + * Filter by the developer of the workflows + */ + developer_id?: string | null; + /** + * Filter by workflow executions before this date + */ + end?: string | null; + /** + * Filter by workflow executions after this date + */ + start?: string | null; + /** + * Filter by workflow IDs + */ + workflow_id?: Array<string> | null; + }; +}; + +export type WorkflowGetDeveloperWorkflowStatisticsResponse = + Array<AnonymizedWorkflowExecution>; + +export type WorkflowGetDeveloperWorkflowStatisticsError = | ErrorDetail | HTTPValidationError; -export type WorkflowExecutionDeleteWorkflowExecutionData = { +export type WorkflowGetWorkflowData = { path: { /** - * ID of a workflow execution. + * ID of a workflow */ - eid: string; + wid: string; + }; + query?: { + /** + * Which versions of the workflow to include in the response. Permission `workflow:read_any` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED` + */ + version_status?: Array<WorkflowVersionStatus> | null; }; }; -export type WorkflowExecutionDeleteWorkflowExecutionResponse = void; +export type WorkflowGetWorkflowResponse = WorkflowOut; -export type WorkflowExecutionDeleteWorkflowExecutionError = - | ErrorDetail - | HTTPValidationError; +export type WorkflowGetWorkflowError = ErrorDetail | HTTPValidationError; -export type WorkflowExecutionGetWorkflowExecutionParamsData = { +export type WorkflowDeleteWorkflowData = { path: { /** - * ID of a workflow execution. + * ID of a workflow */ - eid: string; + wid: string; }; }; -export type WorkflowExecutionGetWorkflowExecutionParamsResponse = { - [key: string]: unknown; +export type WorkflowDeleteWorkflowResponse = void; + +export type WorkflowDeleteWorkflowError = ErrorDetail | HTTPValidationError; + +export type WorkflowGetWorkflowOtrData = { + path: { + /** + * ID of a workflow + */ + wid: string; + }; }; -export type WorkflowExecutionGetWorkflowExecutionParamsError = - | ErrorDetail - | HTTPValidationError; +export type WorkflowGetWorkflowOtrResponse = OwnershipTransferRequestOut; -export type WorkflowExecutionCancelWorkflowExecutionData = { +export type WorkflowGetWorkflowOtrError = ErrorDetail | HTTPValidationError; + +export type WorkflowCreateWorkflowOtrData = { + body: OwnershipTransferRequestIn; path: { /** - * ID of a workflow execution. + * ID of a workflow */ - eid: string; + wid: string; }; }; -export type WorkflowExecutionCancelWorkflowExecutionResponse = void; +export type WorkflowCreateWorkflowOtrResponse = OwnershipTransferRequestOut; -export type WorkflowExecutionCancelWorkflowExecutionError = +export type WorkflowCreateWorkflowOtrError = ErrorDetail | HTTPValidationError; + +export type WorkflowAcceptWorkflowOtrData = { + path: { + /** + * ID of a workflow + */ + wid: string; + }; +}; + +export type WorkflowAcceptWorkflowOtrResponse = WorkflowOut; + +export type WorkflowAcceptWorkflowOtrError = ErrorDetail | HTTPValidationError; + +export type WorkflowDeleteWorkflowOtrData = { + path: { + /** + * ID of a workflow + */ + wid: string; + }; +}; + +export type WorkflowDeleteWorkflowOtrResponse = void; + +export type WorkflowDeleteWorkflowOtrError = ErrorDetail | HTTPValidationError; + +export type WorkflowGetWorkflowStatisticsData = { + path: { + /** + * ID of a workflow + */ + wid: string; + }; +}; + +export type WorkflowGetWorkflowStatisticsResponse = Array<WorkflowStatistic>; + +export type WorkflowGetWorkflowStatisticsError = | ErrorDetail | HTTPValidationError; +export type WorkflowUpdateWorkflowData = { + body: WorkflowUpdate; + path: { + /** + * ID of a workflow + */ + wid: string; + }; +}; + +export type WorkflowUpdateWorkflowResponse = WorkflowVersion; + +export type WorkflowUpdateWorkflowError = ErrorDetail | HTTPValidationError; + export type WorkflowCredentialsGetWorkflowCredentialsData = { path: { /** @@ -2109,295 +2256,338 @@ export type WorkflowCredentialsDeleteWorkflowCredentialsError = | ErrorDetail | HTTPValidationError; -export type WorkflowModeGetWorkflowModeData = { - path: { - /** - * ID of a workflow mode - */ - mode_id: string; - }; +export type WorkflowExecutionStartWorkflowData = { + body: WorkflowExecutionIn; }; -export type WorkflowModeGetWorkflowModeResponse = WorkflowModeOut; +export type WorkflowExecutionStartWorkflowResponse = WorkflowExecutionOut; -export type WorkflowModeGetWorkflowModeError = +export type WorkflowExecutionStartWorkflowError = | ErrorDetail | HTTPValidationError; -export type ResourceCreateResourceData = { - body: ResourceIn; -}; - -export type ResourceCreateResourceResponse = ResourceOut; - -export type ResourceCreateResourceError = ErrorDetail | HTTPValidationError; - -export type ResourceListResourcesData = { +export type WorkflowExecutionListWorkflowExecutionsData = { query?: { /** - * Filter for resource by maintainer. If current user is the same as maintainer ID, permission `resource:list` required, otherwise `resource:list_filter`. + * Filter for status of workflow execution */ - maintainer_id?: string; + execution_status?: Array<WorkflowExecutionStatus> | null; /** - * Filter resources by a substring in their name. + * Filter for workflow executions by a user. If none, Permission `workflow_execution:read_any` required. */ - name_substring?: string; + executor_id?: string | null; /** - * Filter resources to by the public flag + * Id of the item to start the query from. DO NOT SET MANUALLY. */ - public?: boolean; + id_after?: string | null; /** - * Which versions of the resource to include in the response. Permission `resource:list_filter` required if None or querying for non-public resources, otherwise only permission `resource:list` required. + * Number of items to list per page */ - version_status?: Array<ResourceVersionStatus>; - }; -}; - -export type ResourceListResourcesResponse = Array<ResourceOut>; - -export type ResourceListResourcesError = ErrorDetail | HTTPValidationError; - -export type ResourceListSyncRequestsResponse = - Array<UserSynchronizationRequestOut>; - -export type ResourceListSyncRequestsError = ErrorDetail; - -export type ResourceListResourceOtrsData = { - query?: { + per_page?: number; /** - * UID of user who is the current owner. + * Sort order of items with creation time */ - current_owner_id?: string; + sort?: "asc" | "desc"; /** - * UID of user who will be the new owner. + * Filter for workflow executions that started after this UNIX timestamp */ - new_owner_id?: string; - }; -}; - -export type ResourceListResourceOtrsResponse = - Array<OwnershipTransferRequestOut>; - -export type ResourceListResourceOtrsError = ErrorDetail | HTTPValidationError; - -export type ResourceGetResourceData = { - path: { - rid: string; - }; - query?: { + start_after?: number | null; /** - * Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required. + * Filter for workflow executions that started before this UNIX timestamp */ - version_status?: Array<ResourceVersionStatus>; - }; -}; - -export type ResourceGetResourceResponse = ResourceOut; - -export type ResourceGetResourceError = ErrorDetail | HTTPValidationError; - -export type ResourceDeleteResourceData = { - path: { - rid: string; + start_before?: number | null; + /** + * Filter for workflow + */ + workflow_id?: string | null; + /** + * Filter for workflow version + */ + workflow_version_id?: string | null; }; }; -export type ResourceDeleteResourceResponse = void; +export type WorkflowExecutionListWorkflowExecutionsResponse = + Array<WorkflowExecutionOut>; -export type ResourceDeleteResourceError = ErrorDetail | HTTPValidationError; +export type WorkflowExecutionListWorkflowExecutionsError = + | ErrorDetail + | HTTPValidationError; -export type ResourceGetResourceOtrData = { - path: { - rid: string; - }; +export type WorkflowExecutionStartArbitraryWorkflowData = { + body: DevWorkflowExecutionIn; }; -export type ResourceGetResourceOtrResponse = OwnershipTransferRequestOut; +export type WorkflowExecutionStartArbitraryWorkflowResponse = + WorkflowExecutionOut; -export type ResourceGetResourceOtrError = ErrorDetail | HTTPValidationError; +export type WorkflowExecutionStartArbitraryWorkflowError = + | ErrorDetail + | HTTPValidationError; -export type ResourceCreateResourceOtrData = { - body: OwnershipTransferRequestIn; +export type WorkflowExecutionGetWorkflowExecutionData = { path: { - rid: string; + /** + * ID of a workflow execution. + */ + eid: string; }; }; -export type ResourceCreateResourceOtrResponse = OwnershipTransferRequestOut; +export type WorkflowExecutionGetWorkflowExecutionResponse = + WorkflowExecutionOut; -export type ResourceCreateResourceOtrError = ErrorDetail | HTTPValidationError; +export type WorkflowExecutionGetWorkflowExecutionError = + | ErrorDetail + | HTTPValidationError; -export type ResourceAcceptResourceOtrData = { +export type WorkflowExecutionDeleteWorkflowExecutionData = { path: { - rid: string; + /** + * ID of a workflow execution. + */ + eid: string; }; }; -export type ResourceAcceptResourceOtrResponse = ResourceOut; +export type WorkflowExecutionDeleteWorkflowExecutionResponse = void; -export type ResourceAcceptResourceOtrError = ErrorDetail | HTTPValidationError; +export type WorkflowExecutionDeleteWorkflowExecutionError = + | ErrorDetail + | HTTPValidationError; -export type ResourceDeleteResourceOtrData = { +export type WorkflowExecutionGetWorkflowExecutionParamsData = { path: { - rid: string; + /** + * ID of a workflow execution. + */ + eid: string; }; }; -export type ResourceDeleteResourceOtrResponse = void; +export type WorkflowExecutionGetWorkflowExecutionParamsResponse = { + [key: string]: unknown; +}; -export type ResourceDeleteResourceOtrError = ErrorDetail | HTTPValidationError; +export type WorkflowExecutionGetWorkflowExecutionParamsError = + | ErrorDetail + | HTTPValidationError; -export type ResourceVersionListResourceVersionsData = { +export type WorkflowExecutionCancelWorkflowExecutionData = { path: { - rid: string; - }; - query?: { /** - * Which versions of the resource to include in the response. Permission `resource:read_any` required if None or querying for non-public resources, otherwise only permission `resource:read` required. + * ID of a workflow execution. */ - version_status?: Array<ResourceVersionStatus>; + eid: string; }; }; -export type ResourceVersionListResourceVersionsResponse = - Array<ResourceVersionOut>; +export type WorkflowExecutionCancelWorkflowExecutionResponse = void; -export type ResourceVersionListResourceVersionsError = +export type WorkflowExecutionCancelWorkflowExecutionError = | ErrorDetail | HTTPValidationError; -export type ResourceVersionRequestResourceVersionData = { - body: ResourceVersionIn; +export type WorkflowModeGetWorkflowModeData = { path: { - rid: string; + /** + * ID of a workflow mode + */ + mode_id: string; }; }; -export type ResourceVersionRequestResourceVersionResponse = ResourceVersionOut; +export type WorkflowModeGetWorkflowModeResponse = WorkflowModeOut; -export type ResourceVersionRequestResourceVersionError = +export type WorkflowModeGetWorkflowModeError = | ErrorDetail | HTTPValidationError; -export type ResourceVersionGetResourceVersionData = { +export type WorkflowVersionListWorkflowVersionData = { path: { - rid: string; - rvid: string; + /** + * ID of a workflow + */ + wid: string; + }; + query?: { + /** + * Which versions of the workflow to include in the response. Permission `workflow:list_filter` required if you are not the developer of this workflow. Default `PUBLISHED` and `DEPRECATED` + */ + version_status?: Array<WorkflowVersionStatus> | null; }; }; -export type ResourceVersionGetResourceVersionResponse = ResourceVersionOut; +export type WorkflowVersionListWorkflowVersionResponse = Array<WorkflowVersion>; -export type ResourceVersionGetResourceVersionError = +export type WorkflowVersionListWorkflowVersionError = | ErrorDetail | HTTPValidationError; -export type ResourceVersionResourceFileTreeData = { +export type WorkflowVersionGetWorkflowVersionData = { path: { - rid: string; - rvid: string; + /** + * Git commit `git_commit_hash` of specific version or `latest`. + */ + git_commit_hash: string; + /** + * ID of a workflow + */ + wid: string; }; }; -export type ResourceVersionResourceFileTreeResponse = Array<FileTree>; +export type WorkflowVersionGetWorkflowVersionResponse = WorkflowVersion; -export type ResourceVersionResourceFileTreeError = +export type WorkflowVersionGetWorkflowVersionError = | ErrorDetail | HTTPValidationError; -export type ResourceVersionRequestResourceVersionReviewData = { +export type WorkflowVersionUpdateWorkflowVersionStatusData = { + body: WorkflowVersionStatusSchema; path: { - rid: string; - rvid: string; + /** + * Git commit git_commit_hash of specific version. + */ + git_commit_hash: string; + /** + * ID of a workflow + */ + wid: string; }; }; -export type ResourceVersionRequestResourceVersionReviewResponse = - ResourceVersionOut; +export type WorkflowVersionUpdateWorkflowVersionStatusResponse = + WorkflowVersion; -export type ResourceVersionRequestResourceVersionReviewError = +export type WorkflowVersionUpdateWorkflowVersionStatusError = | ErrorDetail | HTTPValidationError; -export type ResourceVersionRequestResourceVersionSyncData = { - body: UserSynchronizationRequestIn; +export type WorkflowVersionDeprecateWorkflowVersionData = { path: { - rid: string; - rvid: string; + /** + * Git commit git_commit_hash of specific version. + */ + git_commit_hash: string; + /** + * ID of a workflow + */ + wid: string; }; }; -export type ResourceVersionRequestResourceVersionSyncResponse = - ResourceVersionOut; +export type WorkflowVersionDeprecateWorkflowVersionResponse = WorkflowVersion; -export type ResourceVersionRequestResourceVersionSyncError = +export type WorkflowVersionDeprecateWorkflowVersionError = | ErrorDetail | HTTPValidationError; -export type ResourceVersionResourceVersionReviewData = { - body: UserRequestAnswer; +export type WorkflowVersionUpdateWorkflowVersionParameterExtensionData = { + body: ParameterExtension; path: { - rid: string; - rvid: string; + /** + * Git commit git_commit_hash of specific version. + */ + git_commit_hash: string; + /** + * ID of a workflow + */ + wid: string; }; }; -export type ResourceVersionResourceVersionReviewResponse = ResourceVersionOut; +export type WorkflowVersionUpdateWorkflowVersionParameterExtensionResponse = + WorkflowVersion; -export type ResourceVersionResourceVersionReviewError = +export type WorkflowVersionUpdateWorkflowVersionParameterExtensionError = | ErrorDetail | HTTPValidationError; -export type ResourceVersionResourceVersionSyncData = { - body: UserRequestAnswer; +export type WorkflowVersionDeleteWorkflowVersionParameterExtensionData = { path: { - rid: string; - rvid: string; + /** + * Git commit git_commit_hash of specific version. + */ + git_commit_hash: string; + /** + * ID of a workflow + */ + wid: string; }; }; -export type ResourceVersionResourceVersionSyncResponse = ResourceVersionOut; +export type WorkflowVersionDeleteWorkflowVersionParameterExtensionResponse = + void; -export type ResourceVersionResourceVersionSyncError = +export type WorkflowVersionDeleteWorkflowVersionParameterExtensionError = | ErrorDetail | HTTPValidationError; -export type ResourceVersionResourceVersionLatestData = { +export type WorkflowVersionDownloadWorkflowDocumentationData = { path: { - rid: string; - rvid: string; + /** + * Git commit git_commit_hash of specific version. + */ + git_commit_hash: string; + /** + * ID of a workflow + */ + wid: string; + }; + query?: { + /** + * Specify which type of documentation the client wants to fetch + */ + document?: DocumentationEnum; + /** + * Workflow Mode + */ + mode_id?: string | null; }; }; -export type ResourceVersionResourceVersionLatestResponse = ResourceVersionOut; +export type WorkflowVersionDownloadWorkflowDocumentationResponse = unknown; -export type ResourceVersionResourceVersionLatestError = +export type WorkflowVersionDownloadWorkflowDocumentationError = | ErrorDetail | HTTPValidationError; -export type ResourceVersionDeleteResourceVersionClusterData = { +export type WorkflowVersionUploadWorkflowVersionIconData = { + body: Body_Workflow_Version_upload_workflow_version_icon; path: { - rid: string; - rvid: string; + /** + * Git commit git_commit_hash of specific version. + */ + git_commit_hash: string; + /** + * ID of a workflow + */ + wid: string; }; }; -export type ResourceVersionDeleteResourceVersionClusterResponse = - ResourceVersionOut; +export type WorkflowVersionUploadWorkflowVersionIconResponse = IconUpdateOut; -export type ResourceVersionDeleteResourceVersionClusterError = +export type WorkflowVersionUploadWorkflowVersionIconError = | ErrorDetail | HTTPValidationError; -export type ResourceVersionDeleteResourceVersionS3Data = { +export type WorkflowVersionDeleteWorkflowVersionIconData = { path: { - rid: string; - rvid: string; + /** + * Git commit git_commit_hash of specific version. + */ + git_commit_hash: string; + /** + * ID of a workflow + */ + wid: string; }; }; -export type ResourceVersionDeleteResourceVersionS3Response = ResourceVersionOut; +export type WorkflowVersionDeleteWorkflowVersionIconResponse = void; -export type ResourceVersionDeleteResourceVersionS3Error = +export type WorkflowVersionDeleteWorkflowVersionIconError = | ErrorDetail | HTTPValidationError; diff --git a/src/components/admin/CreateUserModal.vue b/src/components/admin/CreateUserModal.vue index b6cfa1cb4b6f7a4e6e8f54067fd2a0887cdc235a..6addbd80ea783592877287820a624037bfd4924e 100644 --- a/src/components/admin/CreateUserModal.vue +++ b/src/components/admin/CreateUserModal.vue @@ -62,7 +62,7 @@ function createUser() { modal?.hide(); }) .catch((err) => { - formState.errorMessage = err.body?.detail; + formState.errorMessage = err.response?.data?.["detail"]; errorToast?.show(); }) .finally(() => { diff --git a/src/components/object-storage/BucketListItem.vue b/src/components/object-storage/BucketListItem.vue index 5600517a50fe2fa338f1878fb49138d6e4599edb..ffa79c7ddfda06370986ba0b0a989e57387b727f 100644 --- a/src/components/object-storage/BucketListItem.vue +++ b/src/components/object-storage/BucketListItem.vue @@ -78,7 +78,7 @@ function toggleBucketPublicState() { successToast?.show(); }) .catch((err) => { - requestState.error = err.toString(); + requestState.error = err.response?.data?.["detail"]; if (publicCheckbox.value) { publicCheckbox.value.checked = props.bucket.public; } diff --git a/src/components/object-storage/modals/CopyObjectModal.vue b/src/components/object-storage/modals/CopyObjectModal.vue index f784c5001c1877163aaecd16acfc5720ecf2c628..2ecf9d2e1272ba60f59c8370abe8034738c21c92 100644 --- a/src/components/object-storage/modals/CopyObjectModal.vue +++ b/src/components/object-storage/modals/CopyObjectModal.vue @@ -74,8 +74,8 @@ function copyObject() { formState.moveObject = false; formState.destBucket = ""; }) - .catch((e) => { - formState.err = e.Code; + .catch((err) => { + formState.err = err.response?.status; errorToast?.show(); }) .finally(() => { diff --git a/src/components/object-storage/modals/CreateBucketModal.vue b/src/components/object-storage/modals/CreateBucketModal.vue index 09bd3c5153a44453227d047a36e8301b8a35a323..dcfecef3f1c2bc66e601c4cbcc35ce25a56c879a 100644 --- a/src/components/object-storage/modals/CreateBucketModal.vue +++ b/src/components/object-storage/modals/CreateBucketModal.vue @@ -58,8 +58,8 @@ function createBucket() { }) .catch((error) => { if ( - error.status === 400 && - error.body["detail"] === "Bucket name is already taken" + error.response?.status === 400 && + error.response?.data?.["detail"] === "Bucket name is already taken" ) { formState.bucketNameTaken = true; bucketNameElement.value?.setCustomValidity( diff --git a/src/components/object-storage/modals/PermissionListModal.vue b/src/components/object-storage/modals/PermissionListModal.vue index 7cd75ae35722ce621e93482be8a64b6d6ee602b6..1da4cb7129464651fe48a51ec27bffd3d8f5f8d9 100644 --- a/src/components/object-storage/modals/PermissionListModal.vue +++ b/src/components/object-storage/modals/PermissionListModal.vue @@ -29,7 +29,7 @@ const state = reactive<{ currentPermission: { bucket_name: "bucketname", uid: "uid", - permission: "READ", + scopes: ["read"], from_timestamp: null, to_timestamp: null, file_prefix: null, @@ -103,7 +103,7 @@ onBeforeMount(() => { > <div class="row"> <span class="text-info col-2 text-start">{{ - permission.permission + permission.scopes.join("").toUpperCase() }}</span> <span class="col-9 text-center"> {{ nameRepository.getName(permission.uid) }}</span diff --git a/src/components/object-storage/modals/PermissionModal.vue b/src/components/object-storage/modals/PermissionModal.vue index 25fd80a034e0baf9834360d38587c9904dd9cb00..14593023023847d3f2ad92f48678b07098edd2f7 100644 --- a/src/components/object-storage/modals/PermissionModal.vue +++ b/src/components/object-storage/modals/PermissionModal.vue @@ -12,7 +12,6 @@ import type { UserOut, } from "@/client/types.gen"; import type { FolderTree } from "@/types/PseudoFolder"; -import { Permission } from "@/client"; import { Toast } from "bootstrap"; import FontAwesomeIcon from "@/components/FontAwesomeIcon.vue"; import { useBucketStore } from "@/stores/buckets"; @@ -48,10 +47,12 @@ let successToast: Toast | null = null; const formState = reactive<{ loading: boolean; error: boolean; + duplicate: boolean; readonly: boolean; }>({ loading: false, error: false, + duplicate: false, readonly: props.readonly, }); @@ -59,13 +60,15 @@ const permission = reactive<BucketPermissionIn>({ from_timestamp: undefined, to_timestamp: undefined, file_prefix: undefined, - permission: undefined, + scopes: [], uid: "", bucket_name: props.bucketName, }); const permissionDeleted = ref<boolean>(false); const permissionForm = ref<HTMLFormElement | undefined>(undefined); +const permissionReadScope = ref<HTMLInputElement | undefined>(undefined); +const permissionWriteScope = ref<HTMLInputElement | undefined>(undefined); // Computes Properties // ----------------------------------------------------------------------------- @@ -134,13 +137,13 @@ function updateLocalPermission() { permission.uid = props.editUserPermission.uid; permission.from_timestamp = props.editUserPermission.from_timestamp; permission.to_timestamp = props.editUserPermission.to_timestamp; - permission.permission = props.editUserPermission.permission; + permission.scopes = props.editUserPermission.scopes; } else { permission.file_prefix = undefined; permission.uid = ""; permission.from_timestamp = undefined; permission.to_timestamp = undefined; - permission.permission = undefined; + permission.scopes = []; } } @@ -170,12 +173,30 @@ function findSubFolders( return arr; } +function formCheckValidity(): boolean { + permissionWriteScope.value?.setCustomValidity(""); + permissionReadScope.value?.setCustomValidity(""); + if (permissionForm.value?.checkValidity()) { + if (permission.scopes.length === 0) { + permissionWriteScope.value?.setCustomValidity( + "At least one scope must be set", + ); + permissionReadScope.value?.setCustomValidity( + "At least one scope must be set", + ); + return false; + } + return true; + } + return false; +} + /** * Submit the form */ function formSubmit() { formState.error = false; - if (permissionForm.value?.checkValidity()) { + if (formCheckValidity()) { formState.loading = true; const serverAnswerPromise = editPermission.value ? bucketRepository.updateBucketPermission( @@ -184,7 +205,7 @@ function formSubmit() { { to_timestamp: permission.to_timestamp, from_timestamp: permission.from_timestamp, - permission: permission.permission, + scopes: permission.scopes, file_prefix: permission.file_prefix, } as BucketPermissionParameters, ) @@ -195,8 +216,10 @@ function formSubmit() { successToast?.show(); updateLocalPermission(); }) - .catch(() => { + .catch((e) => { formState.error = true; + formState.duplicate = + e.response?.data?.["detail"]?.includes("already exists"); }) .finally(() => { formState.loading = false; @@ -286,7 +309,7 @@ function toTimestampChanged(target?: HTMLInputElement | null) { modal-label="Permission Modal" v-on="{ 'hidden.bs.modal': modalClosed }" > - <template v-if="formState.readonly" #header>View Permission </template> + <template v-if="formState.readonly" #header>View Permission</template> <template v-else-if="props.editUserPermission !== undefined" #header >Edit Permission </template> @@ -351,22 +374,42 @@ function toTimestampChanged(target?: HTMLInputElement | null) { </div> </div> <div class="mb-3 row"> - <label for="permissionTypeInput" class="col-3 col-form-label"> - Permission Type<span v-if="!formState.readonly">*</span> - </label> - <div class="col-9"> - <select - id="permissionTypeInput" - v-model="permission.permission" - class="form-select text-lowercase" - required + <div class="mb-1"> + Scopes<span v-if="!formState.readonly">*</span> + </div> + <div class="form-check form-check-inline w-fit ms-3"> + <input + :id="`scope-permission-read-${randomIDSuffix}`" + ref="permissionReadScope" + v-model="permission.scopes" + class="form-check-input" + type="checkbox" :disabled="formState.readonly" + value="read" + /> + <label + class="form-check-label text-uppercase" + :for="`scope-permission-read-${randomIDSuffix}`" > - <option disabled selected>Select one...</option> - <option v-for="perm in Permission" :key="perm" :value="perm"> - {{ perm.toLowerCase() }} - </option> - </select> + read + </label> + </div> + <div class="form-check form-check-inline w-fit"> + <input + :id="`scope-permission-write-${randomIDSuffix}`" + ref="permissionWriteScope" + v-model="permission.scopes" + class="form-check-input" + type="checkbox" + :disabled="formState.readonly" + value="write" + /> + <label + class="form-check-label text-uppercase" + :for="`scope-permission-write-${randomIDSuffix}`" + > + write + </label> </div> </div> <div class="mb-3 row"> @@ -471,9 +514,12 @@ function toTimestampChanged(target?: HTMLInputElement | null) { </div> </div> </form> - <span v-if="formState.error" class="text-danger" - >There was some kind of error<br />Try again later</span - > + <div v-if="formState.error" class="text-danger"> + <span v-if="formState.duplicate" + >Permission for the user + {{ nameRepository.getName(permission.uid) }} already exists</span + ><span v-else>There was some kind of error<br />Try again later</span> + </div> </template> <template #footer> <button @@ -498,7 +544,11 @@ function toTimestampChanged(target?: HTMLInputElement | null) { type="submit" :form="'permissionCreateEditForm' + randomIDSuffix" class="btn btn-primary" - :disabled="formState.loading || permission.uid.length === 0" + :disabled=" + formState.loading || + permission.uid.length === 0 || + permission.scopes.length === 0 + " > <span v-if="formState.loading" diff --git a/src/components/resources/modals/CreateResourceModal.vue b/src/components/resources/modals/CreateResourceModal.vue index 1a573377b94ed2d00f221d4ace2e887b6a699474..960fb89882978b2d49e4f23b61c7328f1cb6e444 100644 --- a/src/components/resources/modals/CreateResourceModal.vue +++ b/src/components/resources/modals/CreateResourceModal.vue @@ -58,8 +58,8 @@ function createResource() { }) .catch((error) => { if ( - error.status === 400 && - error.body["detail"] === + error.response?.status === 400 && + error.response?.data?.["detail"] === `Resource with name '${resource.name}' already exists` ) { formState.resourceNameTaken = true; diff --git a/src/components/user/CreateApiTokenModal.vue b/src/components/user/CreateApiTokenModal.vue index ce4100db257acba9755dd0c5475ad31aa896116f..fa6341859f897d659bc01142bcb4fa0ef022ece5 100644 --- a/src/components/user/CreateApiTokenModal.vue +++ b/src/components/user/CreateApiTokenModal.vue @@ -1,10 +1,6 @@ <script setup lang="ts"> import { onMounted, reactive, ref } from "vue"; -import { - type ApiTokenIn, - type ApiTokenPrivateOut, - ScopeEnum, -} from "@/client/types.gen"; +import { type ApiTokenIn, type ApiTokenPrivateOut } from "@/client/types.gen"; import { Modal } from "bootstrap"; import BootstrapModal from "@/components/modals/BootstrapModal.vue"; import dayjs from "dayjs"; @@ -33,12 +29,6 @@ const userRepository = useUserStore(); const tokenCreateForm = ref<HTMLFormElement | undefined>(undefined); let createTokenModal: Modal | null = null; -const scopeDescription: Record<ScopeEnum, string> = { - read: "Grants read access to the CloWM API. All GET requests are allowed with this scope.", - write: - "Grants write access to the CloWM API. All POST, DELETE and PUT requests are allowed with this scope.", -}; - const emit = defineEmits<{ (e: "token-created", token: ApiTokenPrivateOut): void; }>(); @@ -144,27 +134,45 @@ onMounted(() => { </div> <div class="mb-3"> <div>Select scopes</div> - <div - v-for="scope in Object.values(ScopeEnum)" - :key="scope" - class="form-check mb-2" - > + <div class="form-check mb-2"> + <input + id="scope-input-read" + v-model="tokenIn.scopes" + class="form-check-input" + type="checkbox" + value="read" + /> + <label + class="form-check-label pt-1" + style="line-height: 0.8rem" + for="scope-input-read" + > + <span>read</span> + <br /> + <span class="text-secondary" style="font-size: 0.8rem"> + Grants read access to the CloWM API. All GET requests are + allowed with this scope. + </span> + </label> + </div> + <div class="form-check mb-2"> <input - :id="`scope-input-${scope}`" + id="scope-input-write" v-model="tokenIn.scopes" class="form-check-input" type="checkbox" - :value="scope" + value="write" /> <label class="form-check-label pt-1" style="line-height: 0.8rem" - :for="`scope-input-${scope}`" + for="scope-input-write" > - <span>{{ scope.toLowerCase() }}</span> + <span>write</span> <br /> <span class="text-secondary" style="font-size: 0.8rem"> - {{ scopeDescription[scope] }} + Grants write access to the CloWM API. All POST, DELETE and PUT + requests are allowed with this scope. </span> </label> </div> diff --git a/src/components/workflows/modals/CreateWorkflowModal.vue b/src/components/workflows/modals/CreateWorkflowModal.vue index 3bd4a52778246142a65cc8fec02703b51cfc4c32..3062ae20734013dc372f9b08454547008c4f52be 100644 --- a/src/components/workflows/modals/CreateWorkflowModal.vue +++ b/src/components/workflows/modals/CreateWorkflowModal.vue @@ -185,7 +185,7 @@ function createWorkflow() { resetForm(); }) .catch((error) => { - const errorText = error.body["detail"]; + const errorText = error.response?.data?.["detail"] ?? ""; if (errorText.startsWith("Workflow with name")) { workflowNameElement.value?.setCustomValidity("Name is already taken"); } else if (errorText.startsWith("Workflow with git_commit_hash")) { diff --git a/src/components/workflows/modals/UpdateWorkflowModal.vue b/src/components/workflows/modals/UpdateWorkflowModal.vue index 10de393b4f9d31d1615787882641bbdd8f382cc5..399e27d99c545d5be404c560f9aba078b36843ad 100644 --- a/src/components/workflows/modals/UpdateWorkflowModal.vue +++ b/src/components/workflows/modals/UpdateWorkflowModal.vue @@ -266,7 +266,7 @@ function updateWorkflow() { resetForm(); }) .catch((error) => { - const errorText = error.body["detail"]; + const errorText = error.response?.data?.["detail"]; if (errorText.startsWith("Workflow with git_commit_hash")) { workflowGitCommitHashElement.value?.setCustomValidity( "Git commit is already used by a workflow", diff --git a/src/stores/buckets.ts b/src/stores/buckets.ts index 05765ab4cc5d4907f10d74e390c7f33fc69ab5e0..5fe24b28c8b812647172f4b866a3d2a0b8e818f0 100644 --- a/src/stores/buckets.ts +++ b/src/stores/buckets.ts @@ -56,7 +56,7 @@ export const useBucketStore = defineStore({ return (bucketName) => { // If this is a foreign bucket, check that the user has write permission if (this.ownPermissions[bucketName] != undefined) { - return this.ownPermissions[bucketName].permission !== "READ"; + return this.ownPermissions[bucketName].scopes.includes("write"); } return this.bucketMapping[bucketName]?.owner_id == authStore.currentUID; }; @@ -66,7 +66,7 @@ export const useBucketStore = defineStore({ return (bucketName) => { // If this is a foreign bucket, check that the user has read permission if (this.ownPermissions[bucketName] != undefined) { - return this.ownPermissions[bucketName].permission !== "WRITE"; + return this.ownPermissions[bucketName].scopes.includes("read"); } return this.bucketMapping[bucketName]?.owner_id == authStore.currentUID; }; @@ -79,6 +79,7 @@ export const useBucketStore = defineStore({ ): Promise<BucketOut[]> { return BucketService.bucketListBuckets({ query: { owner_id: ownerId, bucket_type: bucketType }, + throwOnError: true, }) .then((response) => response.data!) .then((buckets) => { @@ -100,6 +101,7 @@ export const useBucketStore = defineStore({ } return BucketPermissionService.bucketPermissionListPermissionsPerUser({ path: { uid: authStore.currentUID }, + throwOnError: true, }) .then((response) => response.data!) .then((permissions) => { @@ -146,6 +148,7 @@ export const useBucketStore = defineStore({ } return BucketService.bucketGetBucket({ path: { bucket_name: bucketName }, + throwOnError: true, }) .then((response) => response.data!) .then((bucket) => { @@ -158,6 +161,7 @@ export const useBucketStore = defineStore({ return BucketService.bucketDeleteBucket({ path: { bucket_name: bucketName }, query: { force_delete: true }, + throwOnError: true, }) .then((response) => response.data!) .then(() => { @@ -165,7 +169,10 @@ export const useBucketStore = defineStore({ }); }, createBucket(bucket: BucketIn): Promise<BucketOut> { - return BucketService.bucketCreateBucket({ body: bucket }) + return BucketService.bucketCreateBucket({ + body: bucket, + throwOnError: true, + }) .then((response) => response.data!) .then((createdBucket) => { this.bucketMapping[createdBucket.name] = createdBucket; @@ -185,6 +192,7 @@ export const useBucketStore = defineStore({ } return BucketPermissionService.bucketPermissionListPermissionsPerBucket({ path: { bucket_name: bucketName }, + throwOnError: true, }) .then((response) => response.data!) .then((permissions) => { @@ -199,6 +207,7 @@ export const useBucketStore = defineStore({ bucket_name: bucketName, uid: uid, }, + throwOnError: true, }) .then((response) => response.data!) .then(() => { @@ -221,6 +230,7 @@ export const useBucketStore = defineStore({ ): Promise<BucketPermissionOut> { return BucketPermissionService.bucketPermissionCreatePermission({ body: permissionIn, + throwOnError: true, }) .then((response) => response.data!) .then((permission) => { @@ -247,6 +257,7 @@ export const useBucketStore = defineStore({ uid: uid, }, body: permissionParams, + throwOnError: true, }) .then((response) => response.data!) .then((permissionOut) => { @@ -275,6 +286,7 @@ export const useBucketStore = defineStore({ body: { public: public_, }, + throwOnError: true, }) ).data!; this.bucketMapping[bucketName] = bucket; @@ -291,11 +303,13 @@ export const useBucketStore = defineStore({ size_limit: size_limit, object_limit: object_limit, }, + throwOnError: true, }).then((response) => response.data!); }, acceptBucketOtr(otr: OwnershipTransferRequestOut): Promise<BucketOut> { return BucketService.bucketAcceptBucketOtr({ path: { bucket_name: otr.target_id }, + throwOnError: true, }) .then((response) => response.data!) .then((bucket) => { diff --git a/src/stores/otrs.ts b/src/stores/otrs.ts index c68b09704aa2783a04c5aeaa347d44dd72baf67e..344eefad6455c3762f8c3e6f1da60ab2f5abd71e 100644 --- a/src/stores/otrs.ts +++ b/src/stores/otrs.ts @@ -58,28 +58,26 @@ export const useOTRStore = defineStore({ currentOwnerId?: string, newOwnerId?: string, ): Promise<OwnershipTransferRequestOut[]> { + const options = { + query: { + current_owner_id: currentOwnerId, + new_owner_id: newOwnerId, + }, + throwOnError: true, + }; switch (targetType) { case OwnershipTypeEnum.BUCKET: - return BucketService.bucketListBucketOtrs({ - query: { - current_owner_id: currentOwnerId, - new_owner_id: newOwnerId, - }, - }).then((response) => response.data!); + return BucketService.bucketListBucketOtrs(options).then( + (response) => response.data!, + ); case OwnershipTypeEnum.WORKFLOW: - return WorkflowService.workflowListWorkflowOtrs({ - query: { - current_owner_id: currentOwnerId, - new_owner_id: newOwnerId, - }, - }).then((response) => response.data!); + return WorkflowService.workflowListWorkflowOtrs(options).then( + (response) => response.data!, + ); case OwnershipTypeEnum.RESOURCE: - return ResourceService.resourceListResourceOtrs({ - query: { - current_owner_id: currentOwnerId, - new_owner_id: newOwnerId, - }, - }).then((response) => response.data!); + return ResourceService.resourceListResourceOtrs(options).then( + (response) => response.data!, + ); } }, fetchOwnOtrs( @@ -147,14 +145,17 @@ export const useOTRStore = defineStore({ case OwnershipTypeEnum.BUCKET: return BucketService.bucketDeleteBucketOtr({ path: { bucket_name: otr.target_id }, + throwOnError: true, }); case OwnershipTypeEnum.WORKFLOW: return WorkflowService.workflowDeleteWorkflowOtr({ path: { wid: otr.target_id }, + throwOnError: true, }); case OwnershipTypeEnum.RESOURCE: return ResourceService.resourceDeleteResourceOtr({ path: { rid: otr.target_id }, + throwOnError: true, }); } })(); @@ -176,16 +177,19 @@ export const useOTRStore = defineStore({ return BucketService.bucketCreateBucketOtr({ path: { bucket_name: targetId }, body: otr, + throwOnError: true, }); case OwnershipTypeEnum.WORKFLOW: return WorkflowService.workflowCreateWorkflowOtr({ path: { wid: targetId }, body: otr, + throwOnError: true, }); case OwnershipTypeEnum.RESOURCE: return ResourceService.resourceCreateResourceOtr({ path: { rid: targetId }, body: otr, + throwOnError: true, }); } })(); diff --git a/src/stores/resources.ts b/src/stores/resources.ts index 89ebe2499e9e248aaac8be3268ac0db366a52a25..a786ecc9744af986d5423a781699ab87bfb6cdcf 100644 --- a/src/stores/resources.ts +++ b/src/stores/resources.ts @@ -92,6 +92,7 @@ export const useResourceStore = defineStore({ return ResourceService.resourceGetResource({ path: { rid: resource_id }, query: { version_status: versionStatus }, + throwOnError: true, }) .then((response) => response.data!) .then((resource) => { @@ -112,7 +113,7 @@ export const useResourceStore = defineStore({ if (this.__syncRequestsFetched) { onFinally?.(); } - return ResourceService.resourceListSyncRequests() + return ResourceService.resourceListSyncRequests({ throwOnError: true }) .then((response) => response.data!) .then((requests) => { this.__syncRequestsFetched = true; @@ -142,6 +143,7 @@ export const useResourceStore = defineStore({ name_substring: searchString, public: _public, }, + throwOnError: true, }) .then((response) => response.data!) .then((resources) => { @@ -177,6 +179,7 @@ export const useResourceStore = defineStore({ rvid: resource_version_id, rid: resource_id, }, + throwOnError: true, }) .then((response) => response.data!) .then((tree) => { @@ -266,7 +269,10 @@ export const useResourceStore = defineStore({ }, async createResource(resource: ResourceIn): Promise<ResourceOut> { const createdResource = ( - await ResourceService.resourceCreateResource({ body: resource }) + await ResourceService.resourceCreateResource({ + body: resource, + throwOnError: true, + }) ).data!; this.ownResourceMapping[createdResource.resource_id] = createdResource; const nameStore = useNameStore(); @@ -291,6 +297,7 @@ export const useResourceStore = defineStore({ rvid: resourceVersion.resource_version_id, }, body: request, + throwOnError: true, }) .then((response) => response.data!) .then((changedResourceVersion) => { @@ -333,6 +340,7 @@ export const useResourceStore = defineStore({ rid: resourceVersion.resource_id, rvid: resourceVersion.resource_version_id, }, + throwOnError: true, }, ) .then((response) => response.data!) @@ -372,6 +380,7 @@ export const useResourceStore = defineStore({ rid: resource_id, }, body: version, + throwOnError: true, }) .then((response) => response.data!) .then((versionOut) => { @@ -399,6 +408,7 @@ export const useResourceStore = defineStore({ rvid: resourceVersion.resource_version_id, }, body: requestAnswer, + throwOnError: true, }) .then((response) => response.data!) .then(this._updateReviewableResourceVersion); @@ -413,6 +423,7 @@ export const useResourceStore = defineStore({ rvid: resourceVersion.resource_version_id, }, body: requestAnswer, + throwOnError: true, }) .then((response) => response.data!) .then((version) => { @@ -450,6 +461,7 @@ export const useResourceStore = defineStore({ rid: resourceVersion.resource_id, rvid: resourceVersion.resource_version_id, }, + throwOnError: true, }).then((response) => response.data!); }, deleteOnCluster( @@ -461,6 +473,7 @@ export const useResourceStore = defineStore({ rid: resourceVersion.resource_id, rvid: resourceVersion.resource_version_id, }, + throwOnError: true, }, ).then((response) => response.data!); }, @@ -472,11 +485,13 @@ export const useResourceStore = defineStore({ rid: resourceVersion.resource_id, rvid: resourceVersion.resource_version_id, }, + throwOnError: true, }).then((response) => response.data!); }, acceptResourceOtr(otr: OwnershipTransferRequestOut): Promise<ResourceOut> { return ResourceService.resourceAcceptResourceOtr({ path: { rid: otr.target_id }, + throwOnError: true, }) .then((response) => response.data!) .then((resource) => { diff --git a/src/stores/s3keys.ts b/src/stores/s3keys.ts index cf8054a4b186991392c02f7e4cd20dabd45a474b..d9b462685fa71f9a0842c38a703e35f1f8478ada 100644 --- a/src/stores/s3keys.ts +++ b/src/stores/s3keys.ts @@ -28,6 +28,7 @@ export const useS3KeyStore = defineStore({ } return S3KeyService.s3KeyGetUserKeys({ path: { uid: useUserStore().currentUID }, + throwOnError: true, }) .then((response) => response.data!) .then((keys) => { @@ -49,6 +50,7 @@ export const useS3KeyStore = defineStore({ access_id: access_id, uid: userRepository.currentUID, }, + throwOnError: true, }) .then((response) => response.data!) .then(() => { @@ -61,6 +63,7 @@ export const useS3KeyStore = defineStore({ const userRepository = useUserStore(); return S3KeyService.s3KeyCreateUserKey({ path: { uid: userRepository.currentUID }, + throwOnError: true, }) .then((response) => response.data!) .then((key) => { diff --git a/src/stores/users.ts b/src/stores/users.ts index f247111729d79ddf7fe8257e475bdea5bfabd902..e2bcb983bf6635fb2e7943402518f7ad816e6693 100644 --- a/src/stores/users.ts +++ b/src/stores/users.ts @@ -88,7 +88,7 @@ export const useUserStore = defineStore({ }, actions: { getCurrentUser(): Promise<UserOutExtended> { - return UserService.userGetLoggedInUser() + return UserService.userGetLoggedInUser({ throwOnError: true }) .then((response) => response.data!) .then((user) => { this.updateUser(user); @@ -128,6 +128,7 @@ export const useUserStore = defineStore({ name_substring: searchString, filter_roles: filterRoles, }, + throwOnError: true, }) .then((response) => response.data!) .then((users) => { @@ -145,7 +146,10 @@ export const useUserStore = defineStore({ if (this.apiTokens.length > 0) { onFinally?.(); } - return ApiTokenService.apiTokenListToken({ path: { uid: uid } }) + return ApiTokenService.apiTokenListToken({ + path: { uid: uid }, + throwOnError: true, + }) .then((response) => response.data!) .then((tokens) => { for (const token of tokens) { @@ -156,7 +160,10 @@ export const useUserStore = defineStore({ .finally(onFinally); }, createApiToken(tokenIn: ApiTokenIn): Promise<ApiTokenPrivateOut> { - return ApiTokenService.apiTokenCreateToken({ body: tokenIn }) + return ApiTokenService.apiTokenCreateToken({ + body: tokenIn, + throwOnError: true, + }) .then((response) => response.data!) .then((token) => { this.apiTokensMapping[token.token_id] = token as ApiTokenOut; @@ -164,7 +171,10 @@ export const useUserStore = defineStore({ }); }, deleteApiToken(tokenId: string): Promise<void> { - return ApiTokenService.apiTokenDeleteToken({ path: { tid: tokenId } }) + return ApiTokenService.apiTokenDeleteToken({ + path: { tid: tokenId }, + throwOnError: true, + }) .then((response) => response.data!) .then(() => { delete this.apiTokensMapping[tokenId]; @@ -176,10 +186,11 @@ export const useUserStore = defineStore({ body: { roles: roles, }, + throwOnError: true, }).then((response) => response.data!); }, inviteUser(userIn: UserIn): Promise<UserOutExtended> { - return UserService.userCreateUser({ body: userIn }) + return UserService.userCreateUser({ body: userIn, throwOnError: true }) .then((response) => response.data!) .then((user) => { useNameStore().addNameToMapping(user.uid, user.display_name); @@ -187,7 +198,10 @@ export const useUserStore = defineStore({ }); }, resendInvitationEmail(uid: string): Promise<UserOutExtended> { - return UserService.userResendInvitation({ path: { uid: uid } }) + return UserService.userResendInvitation({ + path: { uid: uid }, + throwOnError: true, + }) .then((response) => response.data!) .then((user) => { useNameStore().addNameToMapping(user.uid, user.display_name); @@ -197,6 +211,7 @@ export const useUserStore = defineStore({ searchUser(searchString: string): Promise<UserOut[]> { return UserService.userSearchUsers({ query: { name_substring: searchString }, + throwOnError: true, }) .then((response) => response.data!) .then((users) => { diff --git a/src/stores/workflowExecutions.ts b/src/stores/workflowExecutions.ts index 3f377ec9e721c7118692dfd82f611a89368c3af0..554ace50f4d508bb052d8234571c77002752ed44 100644 --- a/src/stores/workflowExecutions.ts +++ b/src/stores/workflowExecutions.ts @@ -131,6 +131,7 @@ export const useWorkflowExecutionStore = defineStore({ const userStore = useUserStore(); return WorkflowService.workflowGetDeveloperWorkflowStatistics({ query: { developer_id: userStore.currentUID }, + throwOnError: true, }) .then((response) => response.data!) .then((executions) => { @@ -179,6 +180,7 @@ export const useWorkflowExecutionStore = defineStore({ } return WorkflowExecutionService.workflowExecutionGetWorkflowExecution({ path: { eid: executionId }, + throwOnError: true, }) .then((response) => response.data!) .then((execution) => { @@ -201,7 +203,7 @@ export const useWorkflowExecutionStore = defineStore({ return parameters; } return WorkflowExecutionService.workflowExecutionGetWorkflowExecutionParams( - { path: { eid: executionId } }, + { path: { eid: executionId }, throwOnError: true }, ) .then((response) => response.data!) .then((parameters) => { @@ -217,6 +219,7 @@ export const useWorkflowExecutionStore = defineStore({ deleteExecution(executionId: string): Promise<void> { return WorkflowExecutionService.workflowExecutionDeleteWorkflowExecution({ path: { eid: executionId }, + throwOnError: true, }) .then((response) => response.data!) .then(() => { @@ -226,6 +229,7 @@ export const useWorkflowExecutionStore = defineStore({ cancelExecution(executionId: string): Promise<void> { return WorkflowExecutionService.workflowExecutionCancelWorkflowExecution({ path: { eid: executionId }, + throwOnError: true, }) .then((response) => response.data!) .then(() => { @@ -243,6 +247,7 @@ export const useWorkflowExecutionStore = defineStore({ ): Promise<WorkflowExecutionOut> { return WorkflowExecutionService.workflowExecutionStartWorkflow({ body: executionIn, + throwOnError: true, }) .then((response) => response.data!) .then((execution) => { @@ -255,6 +260,7 @@ export const useWorkflowExecutionStore = defineStore({ ): Promise<WorkflowExecutionOut> { return WorkflowExecutionService.workflowExecutionStartArbitraryWorkflow({ body: executionIn, + throwOnError: true, }) .then((response) => response.data!) .then((execution) => { diff --git a/src/stores/workflows.ts b/src/stores/workflows.ts index 3615316bc0d7af9b23c2a5c0a93d3fc4ebb32837..367e493e27912992fae1d5cdc31feb5ea2e2e3aa 100644 --- a/src/stores/workflows.ts +++ b/src/stores/workflows.ts @@ -94,7 +94,7 @@ export const useWorkflowStore = defineStore({ if (Object.keys(this.workflowMapping).length > 0) { onFinally?.(); } - return WorkflowService.workflowListWorkflows() + return WorkflowService.workflowListWorkflows({ throwOnError: true }) .then((response) => response.data!) .then((workflows) => { for (const workflow of workflows) { @@ -128,6 +128,7 @@ export const useWorkflowStore = defineStore({ version_status: Object.values(WorkflowVersionStatus), developer_id: authStore.currentUID, }, + throwOnError: true, }) .then((response) => response.data!) .then((workflows) => { @@ -187,6 +188,7 @@ export const useWorkflowStore = defineStore({ document: document, mode_id: mode_id, }, + throwOnError: true, }, ) .then((response) => response.data!) @@ -211,6 +213,7 @@ export const useWorkflowStore = defineStore({ query: { version_status: [WorkflowVersionStatus.CREATED], }, + throwOnError: true, }) .then((response) => response.data!) .then((workflows) => { @@ -275,6 +278,7 @@ export const useWorkflowStore = defineStore({ ? Object.values(WorkflowVersionStatus) : undefined, }, + throwOnError: true, }) .then((response) => response.data!) .then((workflow) => { @@ -342,6 +346,7 @@ export const useWorkflowStore = defineStore({ wid: workflow_id, git_commit_hash: version_id, }, + throwOnError: true, }) .then((response) => response.data!) .then((version) => { @@ -391,6 +396,7 @@ export const useWorkflowStore = defineStore({ return WorkflowService.workflowUpdateWorkflow({ path: { wid: workflow_id }, body: version, + throwOnError: true, }) .then((response) => response.data!) .then((updatedVersion) => { @@ -411,6 +417,7 @@ export const useWorkflowStore = defineStore({ deleteWorkflow(workflow_id: string): Promise<void> { return WorkflowService.workflowDeleteWorkflow({ path: { wid: workflow_id }, + throwOnError: true, }) .then((response) => response.data!) .then(() => { @@ -420,7 +427,10 @@ export const useWorkflowStore = defineStore({ }); }, createWorkflow(workflow: WorkflowIn): Promise<WorkflowOut> { - return WorkflowService.workflowCreateWorkflow({ body: workflow }) + return WorkflowService.workflowCreateWorkflow({ + body: workflow, + throwOnError: true, + }) .then((response) => response.data!) .then((workflowOut) => { this.comprehensiveWorkflowMapping[workflowOut.workflow_id] = @@ -441,6 +451,7 @@ export const useWorkflowStore = defineStore({ { path: { wid: workflow_id }, body: credentials, + throwOnError: true, }, ) .then((response) => response.data!) @@ -459,7 +470,7 @@ export const useWorkflowStore = defineStore({ }, deleteWorkflowCredentials(workflow_id: string): Promise<void> { return WorkflowCredentialsService.workflowCredentialsDeleteWorkflowCredentials( - { path: { wid: workflow_id } }, + { path: { wid: workflow_id }, throwOnError: true }, ) .then((response) => response.data!) .then(() => { @@ -486,6 +497,7 @@ export const useWorkflowStore = defineStore({ git_commit_hash: version_id, }, body: icon, + throwOnError: true, }) .then((response) => response.data!) .then((response) => { @@ -531,6 +543,7 @@ export const useWorkflowStore = defineStore({ wid: workflow_id, git_commit_hash: version_id, }, + throwOnError: true, }) .then((response) => response.data!) .then(() => { @@ -578,6 +591,7 @@ export const useWorkflowStore = defineStore({ git_commit_hash: version_id, }, body: { status: status }, + throwOnError: true, }) .then((response) => response.data!) .then(() => { @@ -609,6 +623,7 @@ export const useWorkflowStore = defineStore({ git_commit_hash: version_id, }, body: extension, + throwOnError: true, }, ) .then((response) => response.data!) @@ -656,6 +671,7 @@ export const useWorkflowStore = defineStore({ wid: workflow_id, git_commit_hash: version_id, }, + throwOnError: true, }, ) .then((response) => response.data!) @@ -696,6 +712,7 @@ export const useWorkflowStore = defineStore({ acceptWorkflowOtr(otr: OwnershipTransferRequestOut): Promise<WorkflowOut> { return WorkflowService.workflowAcceptWorkflowOtr({ path: { wid: otr.target_id }, + throwOnError: true, }) .then((response) => response.data!) .then((workflow) => { diff --git a/src/views/admin/AdminUsersView.vue b/src/views/admin/AdminUsersView.vue index 03725538734caf26cb25924d551eaec25e7ff925..9fbb8b96c0fa84270b72f3d1fe30986980988947 100644 --- a/src/views/admin/AdminUsersView.vue +++ b/src/views/admin/AdminUsersView.vue @@ -66,7 +66,7 @@ function saveUserRoles(index: number) { successRoleToast?.show(); }) .catch((err) => { - userState.errorMessage = err.body?.detail; + userState.errorMessage = err.response?.data?.["detail"]; errorToast?.show(); }) .finally(() => { diff --git a/src/views/workflows/ArbitraryWorkflowView.vue b/src/views/workflows/ArbitraryWorkflowView.vue index dab17257e6512b774a0e880709c0671e8b20a925..2cc8579fecf769fd3ffb176741034ea5b49b22cc 100644 --- a/src/views/workflows/ArbitraryWorkflowView.vue +++ b/src/views/workflows/ArbitraryWorkflowView.vue @@ -167,7 +167,9 @@ function startWorkflow( }) .catch((err) => { console.error(err); - if (err.body["detail"].includes("workflow execution limit")) { + if ( + err.response?.data?.["detail"].includes("workflow execution limit") + ) { workflowExecutionState.errorType = "limit"; } errorToast?.show(); diff --git a/src/views/workflows/StartWorkflowView.vue b/src/views/workflows/StartWorkflowView.vue index e6930937f2f1025a642fc5498cdd2682f54ba766..e84885ded48e880fec6450a0d0619f9ce0bc7d10 100644 --- a/src/views/workflows/StartWorkflowView.vue +++ b/src/views/workflows/StartWorkflowView.vue @@ -93,7 +93,7 @@ function startWorkflow( }) .catch((err) => { console.error(err); - versionState.errorText = err.body["detail"] ?? ""; + versionState.errorText = err.response?.data?.["detail"] ?? ""; errorToast?.show(); }) .finally(() => {